R: ¿Existe un módulo de autenticación LDAP (mod_auth_ldap) para la versión de Apache que viene integrada en MacOS Server 10.5?
(Estoy bastante seguro de que no, pero tal vez alguien compiló uno).
B - Si no, ¿se puede compilar en la versión de Apache para MacOS?
(Hombre, eso estaría bien.)
3 - Si no puedo usar la versión Apple de Apache para esto, ¿cuál es la mejor manera de hacer que la autenticación LDAP de Apache funcione en MacOS Server 10.5?
(Preferiblemente uno que funcione con el software de administración de servidores MacOS)
Respuesta1
Buena suerte usando apsx para construir mod_authnz_ldap contra httpd de Apple.
tar -xzf httpd-2.2.15.tar.gz
cd httpd-2.2.15
cd modules/aaa
/usr/sbin/apxs -cia mod_authnz_ldap.c
mod_authnz_ldap.c:41:2: error: #error mod_authnz_ldap requires APR-util to have LDAP support built in.
...
Pero puedes construir tu propio httpd con ldap sin mucho esfuerzo.
tar -xzf httpd-2.2.15.tar.gz
cd httpd-2.2.15
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-ldap --enable-authnz-ldap --enable-ssl --with-included-apr --with-ldap
make; make test; make install
Deshabilite httpd de Apple en Server Admin y cree su propia lista de lanzamiento.
sudo cp -p /System/Library/LaunchDaemons/org.apache.httpd.plist /System/Library/LaunchDaemons/your_domain_name.httpd.plist
Edite su plist para que apunte a su httpd (reemplace /usr/sbin/httpd con /usr/local/apache2/bin/httpd) y cambie la etiqueta.
Actualice /usr/local/apache2/bin/apachectl para usar launchd según este parche:
--- /usr/local/apache2/bin/apachectl 2009-04-01 09:56:16.000000000 -0700
+++ apachectl 2009-04-02 20:30:33.000000000 -0700
@@ -65,6 +65,9 @@
# -------------------- --------------------
# |||||||||||||||||||| END CONFIGURATION SECTION ||||||||||||||||||||
+LAUNCHCTL="/bin/launchctl"
+LAUNCHD_JOB="/Library/LaunchDaemons/your_domain_name.httpd.plist"
+
# Set the maximum number of file descriptors allowed per child process.
if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then
$ULIMIT_MAX_FILES
@@ -76,8 +79,17 @@
fi
case $ARGV in
-start|stop|restart|graceful|graceful-stop)
- $HTTPD -k $ARGV
+start)
+ $LAUNCHCTL load -w $LAUNCHD_JOB
+ ERROR=$?
+ ;;
+stop|graceful-stop)
+ $LAUNCHCTL unload -w $LAUNCHD_JOB
+ ERROR=$?
+ ;;
+restart|graceful)
+ $LAUNCHCTL unload -w $LAUNCHD_JOB 2> /dev/null
+ $LAUNCHCTL load -w $LAUNCHD_JOB
ERROR=$?
;;
startssl|sslstart|start-SSL)
No, no podrá utilizar Apple Server Admin para configurar y administrar su httpd. Pero Server Admin no puede proporcionar una GUI que abarque todas las opciones de configuración de httpd de todos modos. Agregue /usr/local/apache2/bin a su RUTA (o especifique siempre las rutas completas). Configure y pruebe httpd y cárguelo mediante launchctl:
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
AuthType Basic
AuthName "Your Network"
AuthBasicProvider ldap
AuthzLDAPAuthoritative on
AuthLDAPURL ldap://ldap.your_domain_name/dc=xxx,dc=yyy
AuthLDAPGroupAttributeIsDN off
AuthLDAPGroupAttribute memberuid
Require valid-user
# Require ldap-group cn=accounting,cn=groups,dc= xxx,dc=yyy
Satisfy any
/usr/local/apache2/bin/apachectl -S
sudo launchctl load -w /Library/LaunchDaemons/your.domain_name.httpd.plist
http://www.opensource.apple.com/yhttp://www.macports.org/son buenas fuentes de sugerencias sobre cómo compilar software de código abierto para OSX.
Respuesta2
Ha sido una molestia, pero finalmente logré compilar exitosamente Apache 2.2.15 con soporte LDAP en Mac OS X 10.5.8 (PowerBook G4). Espero que los pasos a continuación se puedan utilizar también para la versión del servidor. Este documento: http://www.grahamcox.co.uk/serendipity/index.php?/archives/30-Compiling-LDAP-support-for-Apache-2.2.4.html ayudó mucho. Esto es lo que hice:
- Primero descargué y compilé openldap y lo instalé
/opt/openldap
(afortunadamente pude usar las bibliotecas BerkeleyDB de Subversion que había instalado previamente). - Luego descargué Apache 2.2.15 y compilé e instalé apr (el directorio de instalación de Apache, como ves, es
/opt/apache-2.2.15
, lo sé, soy fanático de/opt
, adivina dónde instalé Subversion):
cd ~/Descargas/httpd-2.2.15/srclib/apr ./configurar --prefix=/opt/apache-2.2.15 --enable-threads --enable-other-child hacer sudo hacer instalar
- Luego compilé e instalé apr-util especificando ../apr como ruta apr:
cd ~/Descargas/httpd-2.2.15/srclib/apr-util ./configure --prefix=/opt/apache-2.2.15 --with-apr=../apr --with-ldap-lib=/opt/openldap/lib --with-ldap-include=/opt/ openldap/incluir --with-ldap=ldap hacer sudo hacer instalar
- Luego compilé Apache de la siguiente manera:
cd ~/Descargas/httpd-2.2.15 exportar RUTA=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin ./configure --prefix=/opt/apache-2.2.15 --enable-access --enable-actions --enable-alias --enable-asis --enable-auth --enable-auth_dbm --enable-auth_digest --enable-autoindex --enable-cache --enable-cgi --enable-dav --enable-dav_fs --enable-deflate --enable-dir --enable-disk_cache --enable-dumpio --enable-env --enable-expires --enable-fastcgi --enable-file_cache --enable-headers --enable-imap --enable-include --enable-info --enable-log_config --enable-log_forensic --enable-logio --enable-mem_cache --enable-mime --enable-mime_magic --enable-negotiation --enable-perl --enable-rewrite --enable-setenvif --enable-speling --enable-ssl --enable-status --enable-suexec --enable-unique_id --enable-userdir --enable-usertrack --enable-version --enable-vhost_alias --enable-module=all **--enable-authnz-ldap --con- ldap --enable-ldap** --enable-so **--with-apr=/opt/apache-2.2.15** -**-with-apr-util=/opt/apache-2.2.15* * --enable-mods-shared=most --enable-auth-basic **--with-ldap-lib=/opt/openldap/lib --with-ldap-include=/opt/openldap/include** hacer sudo hacer instalar
Ahora funciona como un encanto!
Con suerte, esto también funcionará para usted.
Respuesta3
mod_auth_ldap/mod_authnz_ldap no están integrados en la versión de Apache que viene con OS X (por qué no lo sé, ya que incluyen mod_ldap...suspiro)
No estoy seguro de (B) -- Túpodríaposiblemente descargue Apache desde httpd.apache.org, compílelo (especifique mod_authnz_ldap como módulo compartido), copie el módulo mod_authnz_ldap.so en /usr/libexec/apache2/ y edite manualmente la configuración de Apache de OS X para cargar el módulo. En teoría, eso debería funcionar.
Si intenta esto, le sugiero que utilice el código fuente que coincida con la versión de Apache en su Mac (probablemente 2.2.13, pero marque "httpd -v" en la terminal para obtener el número de versión).
Investigaremos un poco sobre esto durante el fin de semana. No es tan simple como habilitar authnz_ldap para apache 2.2.x: ¡no se basa en OS X!
Re: #3, hasta donde yo sé, no hay otra versión de Apache que se integre con el administrador del servidor OS X (nuevamenteteóricamente) cualquier versión 2.2.xdeberíafunciona siempre que utilice los archivos de configuración que escribe el administrador del servidor).
Me interesaría saber si existe una forma menos pirateada de habilitar la autenticación LDAP.
Respuesta4
Puede descargar el código fuente de Apache de Apple desdesu sitio. Si construye esto usando su Makefile, debería terminar con una versión de Apache prácticamente idéntica a la que viene instalada con Mac OS X. A partir de ahí, intentaría cambiar algunas de las opciones en el proceso de compilación para habilitar el mod_authnz_ldap
módulo. Un buen comienzo sería agregar --enable-authnz-ldap
parte Configure_Flags
del Makefile y ver qué sucede.
Es probable que necesite la fuente OpenLDAP para su sistema, que también puede obtenerde manzana. Luego puede agregar otro indicador de configuración para que apunte a la fuente: --enable-ldap=<source dir>
.
Esto debería ayudarte a empezar, pero probablemente tendrás que solucionar algunos problemas a lo largo del camino. Recuerde, si necesita las fuentes/encabezados de cualquier componente del sistema, simplemente descárguelos del sitio de Apple para que coincidan con las versiones de su máquina.