Autenticazione LDAP
LDAP (Lightweight Directory Access Protocol) è un protocollo Internet per l'accesso e la gestione dei servizi di informazioni della directory distribuita su una rete. Se ci si basa su LDAP per autenticare gli utenti per le applicazioni Web, attendere un minuto per esaminare il contenuto di questo argomento prima di iniziare.
Linee guida di programmazione
- Utilizzare solo un'interfaccia LDAP -- Gli utenti possono essere autenticati solo tramite una connessione a un server LDAP.
- Active Directory -- L'utilizzo di un'interfaccia Active Directory è vietato, tuttavia, è supportata l'autenticazione LDAP con Active Directory .
- Proprietà amministratore -- L'amministratore LDAP deve avere accesso a tutte le proprietà LDAP dell'utente.
| Attributo | Definizione |
|---|---|
mail |
Indirizzo email SMTP dell'utente. |
cn |
Utilizzato internamente per determinare il nome comune dell'utente. |
sn |
Utilizzato internamente per determinare il cognome o il cognome dell'utente. |
givenname |
Utilizzato internamente per stabilire il nome dell'utente. |
Prefisso da Search dn |
Utilizzato come nome utente. |
Utilizzo di un server LDAP per l'autenticazione utente
attribute=value , separate da virgole. Ad esempio:cn=Ben Gray,ou=editing,o=New York Times,c=US
cn=Lucille White,ou=editing,o=New York Times,c=US
cn=Tom Brown,ou=reporting,o=New York Times,c=USQualsiasi attributo definito nello schema di directory può essere utilizzato per creare un DN. L'ordine delle coppie di valori di attributo del componente è importante. Il DN contiene un componente per ogni livello della gerarchia di directory dalla root fino al livello in cui risiede la voce. I DN LDAP iniziano con l'attributo più specifico (di solito un qualche tipo di nome) e continuano con attributi progressivamente più ampi, spesso terminando con un attributo paese. Il primo componente del DN viene indicato come RDN (Relative Distinguished Name). Identifica una voce distintamente da tutte le altre voci che hanno lo stesso elemento principale. Negli esempi precedenti, l'RDN "cn=Ben Gray" separa la prima voce dalla seconda, (con RDN "cn=Lucille White"). Questi due DN di esempio sono altrimenti equivalenti. Nella voce deve essere presente anche la coppia attributo=valore che costituisce l'RDN per una voce. (Questo non è vero per gli altri componenti del DN.)
Esempi
uid= e il suffisso utilizzato è ")", uid diventa l'attributo del nome utente. Il filtro di ricerca predefinito utilizzato è: (|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter})) e gli attributi utilizzati per il prefisso vengono aggiunti anche al filtro di ricerca. In questo caso, dove '(uid=' è il prefisso, quando si ricercano gli utenti, il filtro di ricerca diventa: (|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter}*)(uid={filter}*))dove {filter} è sostituito dal testo effettivo.Il DN di bind autenticato è un utente sul server LDAP esterno a cui è consentito richiamare i DN di base e ricercare la directory LDAP all'interno della base di ricerca definita. Dovrebbe anche essere in grado di leggere altre proprietà utente ed essere utilizzato se l'accesso anonimo a LDAP per ottenere i DN di base e per cercare e ottenere l'accesso agli attributi utente non è consentito. Quando viene eseguita una ricerca per Steve, viene utilizzato il filtro di query LDAP mostrato nel seguente esempio e la ricerca viene eseguita dal DN base specificato nella UI. Quando viene restituito il DN dell'utente, il DN e la password vengono utilizzati per autenticare l'utente:
(|(cn=Steve*)(sn=Steve*)(mail=Steve*)(givenName=Steve*)(uid=Steve*)).Per il bind durante le chiamate di login, la stringa di ricerca utilizzata è il prefisso. Ad esempio, se il prefisso è '(uid=', la stringa di ricerca utilizzata per ricercare un utente durante l'accesso diventa: (uid=Steve).- Utilizzo dell'attributo di posta come nome utente
- Quando si desidera utilizzare un indirizzo email come nome utente, (ad esempio, steve@company.com), generalmente si utilizza l'attributo di posta come prefisso '(
mail='. In questo caso, utilizzare la seguente stringa di ricerca per eseguire la ricerca internamente (supponendo '(mail=' come prefisso):
Nell'esempio precedente, se viene trovato il DN, la password viene utilizzata con il DN per eseguire un bind. Il primo risultato viene preso, quindi assicurarsi di utilizzare un attributo univoco per il nome utente. Successivamente, vengono lette le proprietà LDAP per l'utente ((|(cn=steve@company.com*)(sn=steve@company.com*)(mail=steve@company.com*) (givenName=steve@company.com*)(mail=steve@company.com*))cn,sn,mail,givenName). Se le proprietà LDAP non possono essere lette utilizzando l'utente collegato, vengono lette dal DN dell'utente utilizzando le credenziali di bind autenticate. Se l'attributo del nome utente è diverso, viene anche interrogato. Ad esempio, se il prefisso è '(uid=', l'attributouidviene letto anche dall'oggetto DN dell'utente:(|(cn={filter}*)(sn={filter}*)(mail={filter}*)(givenName={filter}*))Nota: il prefisso e il suffisso non possono essere utilizzati per ottenere direttamente il DN di un utente. Ad esempio, il seguente tentativo di ottenere direttamente il DN di un utente non riesce:Prefix: "uid=", Suffix: ",ou=users,dc=company,dc=com"
Riferimenti LDAP
I riferimenti LDAP consentono a una struttura di directory di essere partizionata e distribuita tra più server LDAP. Un riferimento LDAP è il modo di un controller di dominio di indicare a un'applicazione client che non dispone di una copia di un oggetto richiesto, mentre fornisce al client un'ubicazione che ha maggiori probabilità di contenere l'oggetto. Il client utilizza quindi l'oggetto come base per una ricerca DNS per un controller di dominio.
- Ricerca di utenti che fanno parte di più strutture ad albero e strutture ad albero Active Directory .
- Autenticazione degli utenti in Cloud Manager, API Manager e nel portale CMS.
- Un singolo host / porta LDAP è configurato con credenziali di amministratore e a tutti gli utenti si fa riferimento dal DN di base della struttura ad albero / server.
- Come parte della ricerca utente che segue il riferimento LDAP, le credenziali di amministratore vengono utilizzate nelle strutture ad albero / strutture ad albero downstream.
- L'autenticazione API LDAP non supporta il riferimento LDAP esterno. Il riferimento LDAP interno è supportato.