Je dépanne un pare-feu matériel basé sur Linux pour un client. Ce pare-feu matériel se connecte à ActiveDirectory pour l'authentification Single SignOn.
ActiveDirectory est en gros juste une version pervertie de LDAP à ma connaissance, et utilise la même syntaxe BindDN - corrigez-moi si je me trompe.
Le client a configuré ceci comme leur BindDN - les chaînes réelles ont été remplacées pour des raisons de confidentialité mais des caractères spéciaux et des espaces restent. "somerandomplace \ fubar fubaz"
Cela ne semble pas être une syntaxe BindDN valide pour moi et j'ai déjà travaillé avec LDAP, mais lorsque nous avons appuyé sur le bouton Test pour tester ce BindDN, le test réussit. Lorsque je modifie un seul des caractères dans le BindDN et réexécute le test, le test échoue.
J'essaie de comprendre quel est le problème ici:
A) Que je ne comprends pas complètement les nuances de BindND et la syntaxe associée
ou
B) Que l'appareil ne parvient pas à vérifier correctement les entrées et identifie à tort le test comme un succès
Le DN de liaison serait CN = nom d'utilisateur, CN = Users, DC = yourdomain, DC = com pour un utilisateur situé dans le conteneur Users.
Cela peut fonctionner si vous entrez simplement le nom d'utilisateur, car il recherche probablement la propriété sAMAccountname si son Active Directory est au courant. Il suffit de ne pas faire précéder le nom d'utilisateur du domaine.
la source
L'implémentation LDAP de Microsoft est conforme. Tout caractère est valide dans un DN. S'il y a des caractères spéciaux, ils doivent être échappés. L'espace blanc n'a pas besoin d'être échappé sauf s'il est en tête ou en fin. Un caractère peut être échappé avec une barre oblique inverse ou l'équivalent \ nn hex.
Noms distingués
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366101%28v=vs.85%29.aspx
la source