LDAP / ActiveDirectory BindDN-Syntax

8

Ich behebe eine Linux-basierte Hardware-Firewall für einen Client. Diese Hardware-Firewall stellt eine Verbindung zu ActiveDirectory für die Single SignOn-Authentifizierung her.

ActiveDirectory ist nach meinem besten Wissen nur eine perverse Version von LDAP und verwendet dieselbe BindDN-Syntax - korrigieren Sie mich, wenn ich falsch liege.

Der Client hat dies als BindDN konfiguriert. Die tatsächlichen Zeichenfolgen wurden aus Datenschutzgründen ersetzt, Sonderzeichen und Leerzeichen bleiben jedoch erhalten. "somerandomplace \ fubar fubaz"

Dies scheint mir keine gültige BindDN-Syntax zu sein, und ich habe bereits mit LDAP gearbeitet. Wenn wir jedoch auf die Schaltfläche Test klicken, um diesen BindDN zu testen, ist der Test erfolgreich. Wenn ich nur eines der Zeichen im BindDN ändere und den Test erneut ausführe, schlägt der Test fehl.

Ich versuche herauszufinden, wo das Problem liegt:

A) Dass ich die Nuancen von BindND und die damit verbundene Syntax nicht vollständig verstehe

oder

B) Dass die Appliance die Eingaben nicht ordnungsgemäß überprüft und den Test fälschlicherweise als erfolgreich identifiziert

Kerl
quelle

Antworten:

14

LDAP ist nur ein Protokoll. Und wie Greg sagte, entspricht die Implementierung von Microsoft in Active Directory den verschiedenen RFCs, die es definieren. (+1 zu ihm)

Dougs Antwort ist teilweise richtig, da er ein Beispiel für einen gültigen Bindungs-DN gibt. Active Directory ermöglicht jedoch speziell, dass der Bind-DN-Wert auch als andere Formulare gesendet wird. Die meiner Meinung nach beste Form ist die, UserPrincipalName (UPN)die normalerweise in der folgenden Form vorliegt, sofern sie nicht ausdrücklich geändert wurde.

Dies hat gegenüber einem normalen DN-Wert den Vorteil, dass das Benutzerkonto in AD verschoben werden kann und die Anwendung, die die Anmeldeinformationen verwendet, ihre Konfiguration nicht aktualisieren muss.

Es kann sich auch um das ältere NetBIOS-Formular handeln, das so aussieht und das zu sein scheint, was Ihr Client verwendet.

  • <Domain NetBIOS Name> \ <sAMAccountName> (z. B. CONTOSO \ user1)

Dies hat den gleichen Vorteil wie der UPN-Wert, wird jedoch erneut als Legacy betrachtet. NetBIOS-Namen sollten schon vor langer Zeit gestorben sein, aber das ist ein Scherz für einen anderen Thread.

Ryan Bolger
quelle
Vielen Dank! Dieser Kommentar zu den 3 Formen von DN ist das Puzzleteil, das mir gefehlt hat.
Mark E. Haase
Hatte keine Ahnung, dass Sie UPN als LDAP-DN verwenden könnten. Süss.
Jonathon Reinhart
1
Ich bin erstaunt, wie viele Anwendungsanbieter, die nur externe Authentifizierung gegen AD (über LDAP) unterstützen, dies ebenfalls nicht wissen.
Ryan Bolger
2

Der Bindungs-DN wäre CN = Benutzername, CN = Benutzer, DC = Ihre Domäne, DC = com für einen Benutzer, der sich im Benutzercontainer befindet.

Es könnte funktionieren, wenn Sie nur den Benutzernamen eingeben, da es wahrscheinlich nach der Eigenschaft sAMAccountname sucht, wenn es Active Directory kennt. Stellen Sie dem Benutzernamen nur nicht die Domain voran.

Doug
quelle
1

Die LDAP-Implementierung von Microsoft ist kompatibel. Jedes Zeichen ist in einem DN gültig. Wenn es Sonderzeichen gibt, müssen diese maskiert werden. Whitespace muss nicht maskiert werden, es sei denn, es führt oder folgt. Ein Zeichen kann entweder mit einem Backslash oder dem Hex-Äquivalent \ nn maskiert werden.

Distinguished Names
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366101%28v=vs.85%29.aspx

space or # character at the beginning of a string    0x20
space character at the end of a string    0x20
,    comma    0x2C
+    plus sign    0x2B
"    double quote    0x22
\    backslash    0x5C
<    left angle bracket    0x3C
>    right angle bracket    0x3E
;    semicolon    0x3B
LF   line feed    0x0A
CR   carriage return    0x0D
=    equals sign    0x3D
/    forwards slash    0x2F 
Greg Askew
quelle