Apache LDAP (Active Directory) não funciona

1

Eu tive algum sucesso com o Apache e o LDAP. Primeiro, está funcionando .. mas não inteiramente.

Então, uma configuração básica do LDAP, é assim:

AuthLDAPBindDN "omitting this"
AuthLDAPBindPassword "passwordyeah!"
AuthLDAPURL "ldap://DOMAIN.COM/ou=stuff,dc=domain,dc=com?userPrincipalName?sub?(objectClass=user)"
LDAPReferrals Off
AuthType Basic
AuthName "Use your email address to connect."
AuthBasicProvider ldap
AuthUserFile /dev/null

Isso está bem. Aqui é onde as coisas ficam estranhas. Se eu colocar isso:

Require user [email protected]

Eu posso autenticar. Eu posso usar vários usuários e tudo bem. Se eu colocar

Require valid-user 

A autenticação não funciona. Se eu tentar usuários do domínio, recebo falhas. (do qual todos os usuários fazem parte)

Require ldap-group CN=Domain Users,CN=Users,DC=DOMAIN,DC=COM

No entanto, se eu apontar para um grupo menor, funcionará.

Então, quando eu autentico com apenas requerer usuário [email protected] eu vejo isto:

AH01697: auth_ldap authenticate: accepting [email protected]

Quando coloco "Exigir usuário válido", recebo a mesma mensagem exata . No entanto, a caixa de diálogo de autenticação é exibida repetidamente. Cada vez, a autenticação é bem sucedida (de acordo com os logs)

Para fins de log. Quando eu necessito de ldap "Usuários de domínio" eu recebo isso nos logs:

didn't match with attr member [Comparison false (adding to cache)][5 - Compare False]

(Entenda que esse grupo é enorme também) Quando eu uso um grupo menor, os logs me mostram sucesso assim:

authorization successful (attribute member) [Comparison true (adding to cache)][6 - Compare True]

Eu não tenho certeza do que está acontecendo aqui. Mas eu realmente gostaria que o "usuário válido" funcionasse.

    
por jgauthier 26.04.2016 / 22:29

1 resposta

0

Acho que a base de pesquisa é ou = stuff, dc = domain, dc = com impede que objetos em outros containers sejam encontrados. Tente definir a base apenas para dc = domain, dc = com

Você também pode descartar o filtro objectclass = user. De acordo com link userprincipalname é usado somente em a classe de usuário, então é implícito. Na mesma página, você pode ler que está disponível na porta do catálogo global, portanto, você pode usá-la em vez da ligação normal do ldap (deve ser mais rápida).

Então, o seu AuthLDAPURL seria:

AuthLDAPURL ldap: //DOMAIN.COM: 3268 / dc = domínio, dc = com? userPrincipalName? sub

Que se parece muito com o exemplo na seção "Usando o Active Directory" do módulo mod_authnz_ldap: link

Uma última palavra de cautela: você usa a notação de host do domínio.com srv (kuddos!), mas o Apache não tem conhecimento dos sites do AD. Então, se você tem vários sites e as latências de rede são altas, você poderia estar consultando um servidor LDAP muito tempo e demorando muito para se autenticar.

    
por 27.04.2016 / 00:24