R - Existe um módulo de autenticação LDAP (mod_auth_ldap) para a versão do Apache que vem integrada ao MacOS Server 10.5?
(Tenho certeza que não, mas talvez alguém tenha compilado um.)
B - Se não, ele pode ser compilado na versão do Apache para MacOS?
(Cara, isso seria legal.)
3 - Se eu não puder usar a versão Apple do Apache para isso, qual é a melhor maneira de fazer com que a autenticação LDAP do Apache funcione no MacOS Server 10.5?
(De preferência um que funcione com software de gerenciamento de servidores MacOS)
Responder1
Boa sorte ao usar o apsx para construir o mod_authnz_ldap no httpd da 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.
...
Mas você pode criar seu próprio httpd com ldap sem muito esforço.
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
Desative o httpd da Apple no Server Admin e crie seu próprio launchd plist.
sudo cp -p /System/Library/LaunchDaemons/org.apache.httpd.plist /System/Library/LaunchDaemons/your_domain_name.httpd.plist
Edite seu plist para apontar para seu httpd (substitua /usr/sbin/httpd por /usr/local/apache2/bin/httpd) e altere o rótulo.
Atualize /usr/local/apache2/bin/apachectl para usar o launchd conforme este patch:
--- /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)
Não, você não poderá usar o Apple Server Admin para configurar e administrar seu httpd. Mas o Server Admin não pode fornecer uma GUI que englobe todas as opções de configuração do httpd. Adicione /usr/local/apache2/bin ao seu PATH (ou sempre especifique caminhos completos). Configure e teste o httpd e carregue-o via 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/ehttp://www.macports.org/são boas fontes de dicas sobre como compilar software de código aberto para OSX.
Responder2
Foi um saco, mas finalmente consegui compilar com sucesso o Apache 2.2.15 com suporte LDAP no Mac OS X 10.5.8 (PowerBook G4). Espero que as etapas abaixo também possam ser usadas para a versão Server. Esse documento: http://www.grahamcox.co.uk/serendipity/index.php?/archives/30-Compiling-LDAP-support-for-Apache-2.2.4.html ajudou muito. Isto é o que eu fiz:
- Primeiro baixei e compilei o openldap e instalei-o
/opt/openldap
(felizmente pude usar as bibliotecas BerkeleyDB do Subversion que havia instalado anteriormente). - Então baixei o Apache 2.2.15 e compilei e instalei o apr (o diretório de instalação do Apache como você vê é
/opt/apache-2.2.15
, eu sei, sou fã dele/opt
, adivinhe onde instalei o Subversion):
cd ~/Downloads/httpd-2.2.15/srclib/apr ./configure --prefix=/opt/apache-2.2.15 --enable-threads --enable-other-child fazer sudo make install
- Então compilei e instalei o apr-util especificando ../apr como caminho apr:
cd ~/Downloads/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 fazer sudo make install
- Então compilei o Apache da seguinte maneira:
cd ~/Downloads/httpd-2.2.15 exportar PATH=/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=todos **--enable-authnz-ldap --com- 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** fazer sudo make install
agora isso trabalha como charme.
Esperamos que isso também funcione para você.
Responder3
mod_auth_ldap / mod_authnz_ldap não estão integrados à versão do Apache que vem com o OS X (por que não sei, já que incluem mod_ldap ...suspirar)
Não tenho certeza sobre (B) - Vocêpoderiaconcebivelmente baixe o Apache de httpd.apache.org, compile-o (especifique mod_authnz_ldap como um módulo compartilhado), copie o módulo mod_authnz_ldap.so em /usr/libexec/apache2/ e edite manualmente a configuração do Apache do OS X para carregar o módulo. Teoricamente isso deveria funcionar.
Se você tentar isso, sugiro usar o código-fonte que corresponda à versão do Apache no seu Mac (provavelmente 2.2.13, mas marque "httpd -v" no terminal para obter o número da versão)
Pesquisando um pouco sobre isso no fim de semana - Não é tão simples quanto habilitar o authnz_ldap para o Apache 2.2.x: ele não é baseado no OS X!
Re: # 3, até onde eu sei, não há outra versão do Apache que se integre ao gerenciador de servidor OS X (novamenteteoricamente) qualquer versão 2.2.xdevefuncionar, desde que use os arquivos de configuração que o gerenciador do servidor grava).
Eu estaria interessado se houvesse uma maneira menos hackeada de ativar a autenticação LDAP.
Responder4
Você pode baixar o código-fonte Apache da Apple emo site deles. Se você construir isso usando o Makefile, deverá obter uma versão do Apache praticamente idêntica àquela que vem instalada com o Mac OS X. A partir daí, tentaria alterar algumas das opções no processo de construção para ativar o mod_authnz_ldap
módulo. Um bom começo seria adicionar --enable-authnz-ldap
parte Configure_Flags
do Makefile e ver o que acontece.
Provavelmente, você precisará da fonte OpenLDAP para o seu sistema, que também pode ser obtidada maçã. Então você pode adicionar outro sinalizador de configuração para apontar para a fonte: --enable-ldap=<source dir>
.
Isso deve ajudá-lo a começar, mas provavelmente você terá que resolver alguns problemas ao longo do caminho. Lembre-se, se você precisar da fonte/cabeçalhos de qualquer componente do sistema, basta baixá-los do site da Apple para que correspondam às versões da sua máquina.