Embora eu não tenha feito exatamente o que você está perguntando, tenho certeza de que é possível. No meu trabalho, usamos LDAP authn / authz em um servidor ActiveDirectory.
Você configura o Apache para autenticar no LDAP, configurando uma tag Location com as várias diretivas do AuthLDAP. Um exemplo simples usando sAMAccountName
no AD:
<Location /secured>
AuthType Basic
AuthzLDAPAuthoritative on
AuthUserFile /dev/null
AuthName "Authorization required"
AuthBasicProvider ldap
AuthLDAPURL "ldap://ldap.example.com/ou=MyOrg,dc=myDC,dc=myDC?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "ldapQueryUser"
AuthLDAPBindPassword "ldapQueryPassword"
require valid-user
</Location>
Parece que você deve conseguir configurar locais para cada um dos grupos <a group name>
, cada um usando uma consulta LDAP diferente:
<Location /group_A>
AuthSetups blah blahblah
AuthLDAPURL "ldap://ldap.example.com/ou=MyOrg,dc=group_A?..."
</Location>
<Location /group_B>
AuthSetups blah blahblah
AuthLDAPURL "ldap://ldap.example.com/ou=MyOrg,dc=group_A?..."
</Location>
Ao trabalhar com o Apache e o LDAP, descobri que era melhor trabalhar com a consulta que retornaria os usuários corretamente antes de tentar integrá-los ao Apache. Meus erros acabaram sendo quase sempre erros LDAP, então obter a consulta correta facilitou a parte do apache authn / z.