Eu tenho tentado configurar servidores LDAP redundantes com o Apache 2.2.3.
/etc/httpd/conf.d/authn_alias.conf
<AuthnProviderAlias ldap master>
AuthLDAPURL ldap://192.168.5.148:389/dc=domain,dc=vn?cn
AuthLDAPBindDN cn=anonymous,ou=it,dc=domain,dc=vn
AuthLDAPBindPassword pa$$w0rd
</AuthnProviderAlias>
<AuthnProviderAlias ldap slave>
AuthLDAPURL ldap://192.168.5.199:389/dc=domain,dc=vn?cn
AuthLDAPBindDN cn=anonymous,ou=it,dc=domain,dc=vn
AuthLDAPBindPassword pa$$w0rd
</AuthnProviderAlias>
/etc/httpd/conf.d/authz_ldap.conf
#
# mod_authz_ldap can be used to implement access control and
# authenticate users against an LDAP database.
#
LoadModule authz_ldap_module modules/mod_authz_ldap.so
<IfModule mod_authz_ldap.c>
<Location />
AuthBasicProvider master slave
AuthzLDAPAuthoritative Off
AuthType Basic
AuthName "Authorization required"
AuthzLDAPMemberKey member
AuthUserFile /home/setup/svn/auth-conf
AuthzLDAPSetGroupAuth user
require valid-user
AuthzLDAPLogLevel error
</Location>
</IfModule>
Se eu entendi corretamente, mod_authz_ldap
tentará pesquisar os usuários no segundo LDAP se o primeiro servidor estiver inativo ou o OpenLDAP não estiver em execução.
Mas na prática, isso não acontece. Testado parando o LDAP no master, recebo o "500 Internal Server Error" ao acessar o repositório do Subversion. O error_log
mostra:
[11061] auth_ldap authenticate: user quanta authentication failed;
URI / [LDAP: ldap_simple_bind_s() failed][Can't contact LDAP server]
Eu entendi mal? AuthBasicProvider ldap1 ldap2
significa apenas que, se mod_authz_ldap
não conseguir localizar o usuário em ldap1, ele continuará com ldap2. Não inclui o recurso de failover (o ldap1 deve estar em execução e funcionando bem)?