Sintassi LDAP / ActiveDirectory BindDN


8

Sto risolvendo un firewall hardware basato su Linux per un client. Questo firewall hardware si collega ad ActiveDirectory per l'autenticazione Single SignOn.

ActiveDirectory è largamente solo una versione perversa di LDAP per quanto ne so, e utilizza la stessa sintassi BindDN - correggimi se sbaglio.

Il client lo ha configurato come BindDN: le stringhe effettive sono state sostituite per motivi di privacy ma rimangono caratteri speciali e spazi bianchi. "somerandomplace \ fubar fubaz"

Questa non sembra essere una sintassi BindDN valida per me e ho già lavorato con LDAP, ma quando si preme il pulsante Test per testare questo BindDN, il test ha esito positivo. Quando cambio solo uno dei caratteri in BindDN ed eseguo nuovamente il test, il test ha esito negativo.

Sto cercando di capire qual è il problema qui:

A) Che non capisco completamente le sfumature di BindND e la sintassi associata

o

B) Che l'apparecchiatura non riesca a verificare correttamente gli input e sta identificando erroneamente il test come un successo

Risposte:


14

LDAP è solo un protocollo. E come ha detto Greg, l'implementazione di Microsoft in Active Directory è conforme ai vari RFC che lo definiscono. (+1 per lui)

La risposta di Doug è parzialmente corretta in quanto fornisce un esempio di DN vincolante valido. Ma Active Directory consente specificamente di inviare anche il valore DN di bind come altri moduli. La migliore forma da usare secondo me è quella UserPrincipalName (UPN)che di solito è nella seguente forma a meno che non sia stata esplicitamente cambiata.

  • <sAMAccountName> @ <FQDN dominio> (ad es. user1@contoso.com)

Il vantaggio di questo su un normale valore DN è che l'account utente può essere spostato in AD e l'applicazione che utilizza le credenziali non deve aggiornare la sua configurazione.

Può anche essere nel modulo NetBIOS legacy che assomiglia a questo e sembra essere quello che sta usando il tuo client.

  • <Nome NetBIOS dominio> \ <sAMAccountName> (es. CONTOSO \ user1)

Questo ha lo stesso vantaggio del valore UPN, ma è di nuovo considerato legacy. I nomi NetBIOS avrebbero dovuto morire molto tempo fa, ma questo è un rant per un altro thread.


Grazie! Questo commento sulle 3 forme di DN è il pezzo del puzzle che mi mancava.
Mark E. Haase,

Non avevo idea di poter usare UPN come DN LDAP. Dolce.
Jonathon Reinhart,

1
Sono sorpreso da quanti produttori di applicazioni che supportano solo l'autorizzazione esterna contro AD (tramite LDAP) non lo sappiano.
Ryan Bolger,

2

Il DN di bind sarebbe CN = nome utente, CN = Utenti, DC = tuo dominio, DC = com per un utente situato nel contenitore Users.

Potrebbe funzionare anche solo inserendo il nome utente poiché probabilmente cerca la proprietà sAMAccountname se la sua Active Directory è a conoscenza. Basta non prefigurare il nome utente con il dominio.


1

L'implementazione LDAP di Microsoft è conforme. Qualsiasi carattere è valido in un DN. Se ci sono personaggi speciali, devono essere sfuggiti. Lo spazio bianco non ha bisogno di essere evitato a meno che non sia in testa o in coda. Un personaggio può essere evitato con una barra rovesciata o l'equivalente esadecimale \ nn.

Nomi distinti
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 
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.