Autenticazione LDAP

Top  Previous  Next

Si attiva selezionando dalla pagina di configurazione il tipo di autenticazione "LDAP". Presupposto è naturalmente di disporre di un server LDAP (Lightweight Directory Access Protocol).

 

Attivando questa modalità di autenticazione, l'utente inserisce le credenziali, nome utente e password, poi ci sono due passaggi distinti:

1.le credenziali vengono controllate dal server LDAP;
2.se questa verifica ha esito positivo, si usa un attributo dell'utente fornito dal server LDAP (potrebbe essere lo stesso nome inserito o un altro) per cercare l'utente di StartWeb corrispondente.

L'utente di StartWeb viene ricercato nella tabella utenti con un confronto del solo nome utente, cioè in questa fase la password non viene controllata (ma LDAP la controlla). Se anche questa ricerca ha successo, l'autenticazione è completata con successo.

 

In una realtà aziendale dove c'è un dominio Windows, è disponibile il servizio detto Active Directory, che è l’implementazione di Microsoft del protocollo LDAP. Le applicazioni possono interrogare il server LDAP per chiedere l’esistenza di certe risorse, come gli account utente. In genere sono disponibili elenchi di vario genere, come: nomi utente, nomi di macchine, di stampanti.

 

Configurare l'autenticazione LDAP

Per il funzionamento, bisogna definire alcuni parametri nella pagina a cui si accede con il login da amministratore. E' necessario anche definire gli utenti di StartWeb con un nome che corrisponde all'attributo dell'utente configurato (vedi sotto).

In questa fase, è indispensabile il supporto della persona che, presso il cliente, amministra LDAP. Sono utili anche gli strumenti:

AdExplorer.exe, di SysInternals: permette di esplorare l’albero LDAP, disponendo di credenziali valide per l’accesso.
TestAD.exe: è una utility presente nella cartella “utility” del sito di StartWeb. Va usata per verificare i parametri di LDAP, prima di riportarli in StartWeb.

 

Percorso

Un servizio LDAP è un archivio organizzato in forma di directory e quindi in una gerarchia a più livelli rappresentabile da un albero. Ogni elemento dell’albero è detto entry, ogni entry è caratterizzata da una espressione che la identifica in modo univoco, detta Distinguished Name (DN in breve), e da una serie di attributi.

 

Il percorso si deve definire con la sintassi di LDAP, in forma generale è “LDAP://server:porta/DN_radice”. In questa scrittura, la parte “DN_radice” è il DN della entry nella directory LDAP, su cui si fa la ricerca. Ad esempio, un valore potrebbe essere il seguente:

 

LDAP://domainServer/DC=PRODUZIONE,DC=AziendaSpa,DC=it

 

Questo parametro va chiesto a chi amministra LDAP aziendale.

E' possibile indicare fino ad un massimo di 3 percorsi, su righe diverse: se la ricerca in un percorso fallisce, vengono provati gli altri percorsi finché la ricerca ha successo.

 

Filtro di ricerca

E' la definizione del filtro che si applica nell'interrogazione di AD. Nel filtro si possono usare questi segnaposto:

“{0}” viene sostituito, dovunque si trova, dal nome inserito dall'utente nella pagina di login. Se si usa l’autenticazione integrata, questo è il nome dell’utente Windows corrente completo di dominio.
“[username]” viene sostituito, dovunque si trova, con il nome senza la parte di dominio. Se si usa l’autenticazione integrata, questo è il nome dell’utente Windows corrente senza la parte di dominio.

 

Esempi di filtri:

 

(&(objectClass=user)(objectCategory=person)(sAMAccountName={0}))

(&(objectClass=user)(objectCategory=person)(userPrincipalName={0}))

 

In questa definizione, il segnaposto {0} viene sostituito dal nome inserito dall'utente nella pagina di login. Con questa query si sta ricercando una entry che appartiene alla classe "user", alla categoria "person" e ha l'attributo indicato uguale al nome scritto nella form.

Il filtro di ricerca effettivo sarà quindi, dopo la sostituzione:

 

(&(objectClass=user)(objectCategory=person)(sAMAccountName=andrea)

(&(objectClass=user)(objectCategory=person)(userPrincipalName=andrea@produzione.aziendaspa.it)

Il nome inserito dall'utente viene in realtà manipolato in questo modo: se LDAP prevede la ricerca di "sAMAccountName", allora si estrae il solo nome utente dal nome completo. Altrimenti, il nome viene completato con eventuali componenti di dominio mancanti nel nome ma definite nel percorso di ricerca LDAP.

Ad esempio, questi sono possibili casi quando il il percorso è LDAP://domainServer/DC=PRODUZIONE,DC=AziendaSpa,DC=it

 

#

Cosa scrive l'utente

Filtro configurato

Filtro effettivo

1

andrea

(&(objectCategory=person) (sAMAccountName={0}))

(& (objectCategory=person) (sAMAccountName=andrea))

2

andrea@produzione

(&(objectCategory=person) (sAMAccountName={0}))

(& (objectCategory=person) (sAMAccountName=andrea))

3

andrea

(&(objectCategory=person) (userPrincipalName={0}))

(& (objectCategory=person) (userPrincipalName=

andrea@produzione.azienedaspa.it)

4

andrea@produzione

(&(objectCategory=person) (userPrincipalName={0}))

(& (objectCategory=person) (userPrincipalName=

andrea@produzione.azienedaspa.it)

5

andrea@assistenza

(&(objectCategory=person) (userPrincipalName={0}))

(& (objectCategory=person) (userPrincipalName=

andrea@assistenza)

 

1: il più semplice, l'utente scrive semplicemente il nome con cui è riconosciuto nel dominio.

2: l'utente inserisce un nome esteso, ma la parte di dominio viene ignorata.

3: l'utente scrive solo il nome, ma questo viene esteso con le informazioni di dominio mancanti.

4: l'utente scrive il nome e parte del dominio, il dominio è quello che si trova nel percorso LDAP, allora il nome completo viene esteso con le informazioni di dominio mancanti.

5: l'utente scrive il nome e parte del dominio, il dominio non è quello che si trova nel percorso LDAP, il nome completo non viene esteso ma viene inserito nel filtro così com'è.

 

Attributo dell'utente

Indica quale attributo dell'utente, già individuato dall'interrogazione, deve essere utilizzato per cercare l'utente di StartWeb.

Esempi: se vale "userPrincipalName", e la ricerca con LDAP ha trovato l'utente il cui userPrincipalName è "andrea@produzione.aziendaspa.it", allora deve esistere un utente di StartWeb con questo nome. La corrispondenza permette di associare l'utente di StartWeb all'utente che si è autenticato.

Se invece vale "sAMAccountName", allora la ricerca dell'utente di StartWeb utilizzerà il solo nome utente "andrea" senza la parte di dominio.

 

Tipo di autenticazione del provider LDAP

Indica la modalità di autenticazione utilizzata dal provider LDAP. Se questo è Active Directory la proprietà può valere "Secure", altrimenti utilizzare "None". Il valore predefinito è "Secure". Per dettagli sul significato:https://msdn.microsoft.com/it-it/library/system.directoryservices.authenticationtypes(v=vs.100).aspx

Utente e password per il linterrogazione

Qui si indicano la coppia utente e password utilizzati per linterrogazione del server LDAP (operazione detta binding). E comune infatti la situazione in cui si interroga il server LDAP con un certo utente per poi verificare le credenziali di un altro utente. In questo caso, per la prima interrogazione, si utilizzano le credenziali da inserire nelle due caselle “Utente per linterrogazione”. Ci sono 3 possibilità distinte:

1.lutente per linterrogazione non è indicato: allora linterrogazione usa lo stesso nome utente inserito in StartWeb;
2.è una espressione che contiene “{0}”: allora il nome utente per accedere a LDAP si ottiene dal nome utente di StartWeb inserito nellespressione al posto di “{0}” e la password è la stessa inserita nel login;
3.è una espressione che non contiene “{0}”, allora questa espressione è utilizzata così comè nellinterrogazione e va indicata anche la password.

Esempio (caso 2): questi sono i parametri come si vedono sul software di test TestAD.exe.

Qui, se l'utente è "admin", l'espressione usata per il binding è un DN: "uid=admin,ou=personale,dc=uniud,dc=it"

Esempio (caso 3):

Qui lutente che esegue linterrogazione è “admin”, con relativa password, ma lo si inserisce nellespressione completa “cn=authenticator,ou=admin,dc=uniud,dc=it”. Lutente di StartWeb è inserito nellespressione di filtro “(uid={0})”; se viene trovato allora si esegue un secondo accesso al server LDAP allo scopo di verificare le credenziali ed estrarre gli attributi.

 

Applica per accesso da dispositivi mobile
Di norma, l'accesso da dispositivi mobile non utilizzerà l'autenticazione LDAP, anche se configurata, cioè un login che proviene da un dispositivo riconosciuto come di tipo mobile utilizza l'autenticazione normale. Se però si attiva questa opzione, allora il login da mobile è assimilato ad un login normale e subisce la verifica LDAP.

Credenziali per la rappresentanza
La coppia username e password inserite in queste caselle devono essere delle credenziali valide di un utente che ha i permessi di interrogare il server LDAP. Infatti, l’interrogazione è fatta da un processo che esegue con l’account predefinito "NETWORK SERVICE", il quale è fortemente limitato. Credenziali valide da inserire sono ad esempio quelle di un utente amministratore, ma anche un utente con meno privilegi può andar bene.

Queste credenziali sono salvate nel file di StartWeb di nome "web.xml", la password è in forma cifrata.

 

Per verificare la correttezza dei parametri, eseguire un test con il bottone “Verifica un nome” e controllare i messaggi mostrati nella casella sottostante.