Debian Apache2 et LDAP

Top Page

Reply to this message
Author: Yves Martin
Date:  
To: Guilde ML
Subject: Debian Apache2 et LDAP
Bonjour,

Je m'arrache les cheveux sur un os probablement même un grain de sable mais je coince. J'en appelle à vos expériences.

Ma préproduction en Wheezy fonctionne nickel... mais pas la prod !

Mon vhost Apache2 authentifie en Kerberos/SPNEGO avec mod_auth_kerb, tout est OK.

Mon utilisateur est ensuite recherché dans LDAP puis validé comme membre d'un groupe

AuthLDAPBindDN "service@???"
AuthLDAPBindPassword "servicepassword"
AuthLDAPURL "ldap://10.10.11.11 10.10.11.12/dc=domain,dc=local?userPrincipalName?sub?(objectClass=*)"

Require ldap-group CN=projetX,OU=Projects,OU=Groups,DC=domain,DC=local


J'ai comparé le traffic LDAP:

- bindRequest
- bindResponse success
- searchRequest "dc=domain,dc=local"
- searchResEntry "CN=Yves Martin,OU=Users,OU=Accounts,DC=domain,DC=local"

Dans tous les cas, la réponse est bien "success" mais avec un "MatchedDN" vide

Sur la préproduction qui fonctionne, pas de soucis, ça poursuit avec:
- compareRequest "CN=projetX,OU=Projects,OU=Groups,DC=domain,DC=local"
- compareResponse compareTrue

Sur la production, rien à voir:
- bindRequest "<ROOT>" simple
- bindResponse success
(3 fois)
- searchRequest "CN=Configuration,DC=domain,DC=local"
et encore quelques autres qui finissent en
- LDAPMessage searchResDone(7) operationsError (000004DC: LdapErr: DSID-0C0906E8, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1) [0 results]


Dans les logs en mode debug, en préproduction:

[Wed Jul 10 10:12:30 2013] [debug] src/mod_auth_kerb.c(1641): [client 10.10.113.23] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Wed Jul 10 10:12:30 2013] [debug] src/mod_auth_kerb.c(1579): [client 10.10.113.23] matched previous auth request
[Wed Jul 10 10:12:30 2013] [debug] mod_authnz_ldap.c(643): [client 10.10.113.23] ldap authorize: Creating LDAP req structure
[Wed Jul 10 10:12:30 2013] [debug] mod_authnz_ldap.c(773): [client 10.10.113.23] [26290] auth_ldap authorise: require group: testing for group membership in "CN=projetX,OU=Projects,OU=Groups,DC=domain,DC=local"
[Wed Jul 10 10:12:30 2013] [debug] mod_authnz_ldap.c(779): [client 10.10.113.23] [26290] auth_ldap authorise: require group: testing for member: CN=projetX,OU=Projects,OU=Groups,DC=domain,DC=local (CN=projetX,OU=Projects,OU=Groups,DC=domain,DC=local)
[Wed Jul 10 10:12:30 2013] [debug] mod_authnz_ldap.c(788): [client 10.10.113.23] [26290] auth_ldap authorise: require group: authorisation successful (attribute member) [Comparison true (cached)][Compare True]

Et en production (par Basic sur http):

[Wed Jul 10 11:57:48 2013] [debug] src/mod_auth_kerb.c(1641): [client 10.10.113.23] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Wed Jul 10 11:57:48 2013] [debug] src/mod_auth_kerb.c(1000): [client 10.10.113.23] Using HTTP/service.domain.local@??? as server principal for password verification
[Wed Jul 10 11:57:48 2013] [debug] src/mod_auth_kerb.c(704): [client 10.10.113.23] Trying to get TGT for user yma@???
[Wed Jul 10 11:57:48 2013] [debug] src/mod_auth_kerb.c(1082): [client 10.10.113.23] kerb_authenticate_user_krb5pwd ret=0 user=yma@??? authtype=Basic
[Wed Jul 10 11:57:48 2013] [debug] mod_authnz_ldap.c(643): [client 10.10.113.23] ldap authorize: Creating LDAP req structure
[Wed Jul 10 11:58:08 2013] [debug] mod_authnz_ldap.c(655): [client 10.10.113.23] auth_ldap authorise: User DN not found, ldap_search_ext_s() for user failed


OK, le "MatchedDN" est vide et c'est étrange mais ça passe alors d'un côté.
Est-ce que les query seraient case-sensitive uniquement d'un côté ?

J'ai déjà tenter de basculer plusieurs options notamment les "AuthLDAPBindAuthoritative", "AuthzLDAPAuthoritative", "AuthLDAPDereferenceAliases never" sans succès.
Ça fonctionne toujours d'un côté mais pas de l'autre.

Merci d'avance pour toute idée de diagnostique ou option à tester

--
Yves Martin