Autenticação Apache LDAP (mod_auth_ldap) no servidor MacOS (10.5)

Autenticação Apache LDAP (mod_auth_ldap) no servidor MacOS (10.5)

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:

  1. Primeiro baixei e compilei o openldap e instalei-o /opt/openldap(felizmente pude usar as bibliotecas BerkeleyDB do Subversion que havia instalado anteriormente).
  2. 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
  1. 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

  1. 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_ldapmódulo. Um bom começo seria adicionar --enable-authnz-ldapparte Configure_Flagsdo 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.

informação relacionada