3 votes

openldap et digest-md5 : pas de secret dans la base de données

J'essaie de configurer openldap 2.4.33 (compilé à partir des sources sur OS X 10.8) pour supporter l'authentification digest-md5, et je n'y parviens pas. Je ne parviens pas à m'authentifier, j'obtiens l'erreur suivante no secret in database et je n'arrive pas à comprendre pourquoi.

La configuration jusqu'à présent...

J'ai un utilisateur spécifié comme suit :

dn: cn=eb01,ou=bennet,o=meryton
objectclass: Person
objectclass: inetOrgPerson
cn: eb01
givenname: Elizabeth
sn: Bennet
userPassword: pw1
# or try...
#userPassword:: cHcx
#userPassword: {CLEARTEXT}pw1

(et il n'y a pas d'espace à la fin, j'ai vérifié !) J'ai configuré les entrées olcAuthzRegexp appropriées pour le cn=config, afin de faire correspondre les identités d'authentification au bon dn :

olcAuthzRegexp: uid=([^,]*),cn=digest-md5,cn=auth
  ldap:///o=meryton??sub?(cn=$1)

Cependant, lorsque j'effectue une recherche, je ne parviens pas à m'authentifier :

% ldapsearch -H ldap://localhost:8389 -LLL -b o=meryton \
      -Y DIGEST-MD5 -X u:eb01 -w pw1
SASL/DIGEST-MD5 authentication started
ldap_sasl_interactive_bind_s: Invalid credentials (49)
    additional info: SASL(-13): user not found: no secret in database
%

Les messages de débogage du serveur suggèrent que j'ai effectué le mappage correctement :

5120be85 <==slap_sasl2dn: Converted SASL name to cn=eb01,ou=bennet,o=meryton
5120be85 slap_sasl_getdn: dn:id converted to cn=eb01,ou=bennet,o=meryton
5120be85 SASL Canonicalize [conn=1000]: slapAuthzDN="cn=eb01,ou=bennet,o=meryton"
5120be85 SASL [conn=1000] Failure: no secret in database
5120be85 send_ldap_result: conn=1000 op=1 p=3
5120be85 send_ldap_result: err=49 matched="" text="SASL(-13): user not found: no secret in database"

Cependant, bien que ce bavardage comprenne des registres de demandes d'accès, il n'en demeure pas moins qu'il n'est pas possible de le faire :

5120be85 => access_allowed: auth access to "cn=eb01,ou=bennet,o=meryton" "cn" requested

le bavardage fait pas inclure tout journal des demandes d'accès au userPassword attribut.

C'est-à-dire qu'il apparaît comme si le serveur, dans cette configuration, ne savait pas que les userPassword est le secret sur lequel il doit effectuer l'authentification digest-md5. Je ne l'ai pas configuré, mais (a) j'ai l'impression que c'est le secret par défaut, (b) je ne trouve rien dans les pages de manuel ou dans le manuel d'openldap qui semble indiquer comment le configurer, et (c) je ne trouve rien dans les divers conseils en ligne qui suggère même que c'est nécessaire.

L'authentification simple est suffisante.

Il s'agit d'une configuration un peu étrange - des mots de passe en clair et pas de base de données SASL, car il s'agit d'une configuration LDAP factice/légère pour effectuer des tests de régression - mais je n'ai plus aucune idée de ce qu'il faut lire ensuite, ni de mots-clés ou de fragments de fichiers journaux à rechercher sur Google. Personne sur la planète entière ne semble avoir eu ce problème précis (ce n'est pas que exotique), donc je soupçonne que j'ai brisé cela d'une manière ou d'une autre avec une autre partie de la configuration. Mais je crois que je comprends ce que font tous les autres éléments de la configuration, et ... il n'y a rien d'évident.

J'ai la désagréable impression qu'il va y avoir une solution très simple, mais pour l'instant, je suis ouvert à toutes les idées.

5voto

Norman Gray Points 183

Ce bang, bang, bang, bang que vous pouvez entendre est le son d'une tête et d'un mur en glorieuse harmonie.

Le problème n'était pas lié à la configuration, mais à la demande. Dans l'invocation de ldapsearch, j'avais -X u:eb01 . Mais il s'agit d'une autorisation par proxy ; pour se lier avec un nom d'utilisateur spécifique, il faut -U eb01 .

Gracias Howard Chu en 2003 .

1 votes

Je n'ai pas voté pour ce texte parce qu'il a résolu mon problème, mais parce que j'ai eu le plaisir de lire l'ensemble et la résolution prophétique :-) Merci de m'avoir détourné de mon propre problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X