LDAP - Comment vérifier une combinaison nom d'utilisateur/mot de passe?

en utilisant LDAP, est-ce que vérifier un nom d'utilisateur / mot de passe est aussi simple que tenter de lier que cet utilisateur et noter les résultats, ou y a-t-il une fonction spéciale LDAP "vérifier mot de passe"?

j'essaie d'obtenir un peu plus de compréhension "dans les coulisses" tout en travaillant sur un problème de configuration de dépôt LDAP.

(Note: Ceci est pour les situations dans lesquelles le mot de passe n'est pas stocké comme un hachage dans une propriété personnalisée; cette situation est facile à gérer)

22
demandé sur DrStalker 2010-11-01 05:11:28

4 réponses

LDAP supporte une comparaison de userPassword. Vous envoyez le mot de passe, le serveur fait la comparaison et renvoie true ou false. C'est la façon non-nécessitant une connexion pour authentifier les utilisateurs.

17
répondu geoffc 2010-11-02 10:21:55

examinez le système WhoAmI Extended Operation (RFC 4532).

WhoAmI sert un but vraiment-valider les justificatifs d'identification soumis. Il ne devrait pas affecter ni provoquer de "restrictions de connexion" (que je connais).

WhoAmI peut être fait en utilisant un binaire dédié (tel que "ldapwhoami"), ou il peut être fait en utilisant Net::LDAP::Extension::WhoAmI (Perl) ou un autre langage qui supporte les opérations LDAP. Notez que "tester un mot de passe" en utilisant une fonction de "recherche" est une mauvaise méthode d'essai.

par exemple, si mon DN est "uid=max, ou = users, dc=company, dc=com" et que mon mot de passe est "@secret", on peut le faire via le binaire dédié sur une machine Linux (note-ZZ est utilisé pour la confidentialité TLS, qui est peut-être non supportée ou optionnelle dans votre environnement):

ldapwhoami -x -w "@secret" -D uid=max,ou=users,dc=company,dc=com -ZZ -H ldap://address.of.your.ldapserver/

si la combinaison user/pass est correcte, la réponse retournée est:

dn:uid=max,ou=utilisateurs,dc=company,dc=com

Si le la combinaison utilisateur/passe N'est pas correcte, la réponse retournée est (habituellement):

(49) Lettres De Créance Non Valides

cela pourrait signifier, comme je l'ai dit, que le mot de passe et/ou le nom d'utilisateur est erroné, que l'utilisateur n'existe pas, ou que les ACLs du serveur LDAP sont brisés de telle sorte que l'authentification n'est pas possible. Le plus souvent, c'est la combinaison utilisateur/pass qui est mal orthographiée, ou l'utilisateur n'existe pas.

en conclusion, L'opération LDAPWhoAmI est très légère et méthode simple de validation des références. Il fonctionne également par d'autres mécanismes (e. G: Kerberos Single Sign-On, Digest-MD5, etc).

6
répondu maximum ldap 2015-08-20 12:53:32

attention en utilisant bind pour vérifier le nom d'utilisateur / mot de passe, sur certains systèmes il comptera comme un login, et avec des restrictions de login il pourrait échouer.

utiliser la comparaison est une meilleure option pour simplement vérifier le mot de passe.

4
répondu casperghst42 2010-11-22 18:37:20

Liaison en tant que cet utilisateur est suffisant. Le mot de passe est cochée dans le processus de liaison.

3
répondu user207421 2012-08-21 05:48:56