Panoramica
Il protocollo LDAP (Lightweight Directory Access Protocol) aiuta gli utenti a trovare i dati relativi a organizzazioni, persone e altro. La soluzione ha due finalità principali: archivia i dati nella directory LDAP e autentica gli utenti che accedono alla directory. Fornisce anche il linguaggio di comunicazione necessario alle applicazioni per inviare e ricevere le informazioni dai servizi di directory; questi ultimi consentono di accedere alla posizione in cui si trovano le informazioni relative a organizzazioni, persone e altri dati all'interno di una rete.
Fornire una posizione centrale per l'accesso ai servizi di directory e la loro gestione è lo scenario di utilizzo più diffuso del protocollo LDAP. LDAP consente di archiviare, gestire e proteggere informazioni quali password e nomi utente dell'organizzazione e dei rispettivi utenti e risorse. Il protocollo semplifica l'accesso all'archivio perché organizza le informazioni in modo gerarchico ed è fondamentale per le aziende in crescita che acquisiscono e devono gestire sempre più dati e risorse.
LDAP è una valida soluzione anche per la gestione delle identità e degli accessi (IAM), in quanto è in grado di autenticare gli utenti e supporta Kerberos e Single Sign On (SSO), Simple Authentication Security Layer (SASL) e Secure Sockets Layer (SSL).
Differenze tra LDAP e Active Directory
Benché non sia esclusivo dell'azienda, LDAP è il principale protocollo utilizzato dal servizio di directory di Microsoft, Active Directory, un grande database di servizi di directory che contiene informazioni su ogni account utente presente in una rete. Nello specifico, LDAP è una versione più leggera di DAP (Directory Access Protocol) e fornisce una posizione centrale per accedere e gestire i servizi di directory eseguiti su TCP/IP (Transmission Control Protocol/Internet Protocol). La versione più recente è LDAPv3.
AD fornisce le funzioni di gestione e autenticazione di utenti e gruppi e, sostanzialmente, autentica un utente o un computer. Il database contiene un numero di attributi più alto di quelli che vengono inseriti in LDAP. Tuttavia, LDAP è specializzato nell'individuare un oggetto directory con poche informazioni, così da non dover estrarre tutti i propri attributi da AD o da qualsiasi altro servizio di directory in uso.
L'obiettivo principale di LDAP è di comunicare con gli oggetti (domini, utenti, gruppi, ecc.), archiviarli ed estrarli da AD in un formato utilizzabile dalla propria directory, che si trova nel server LDAP.
Illustriamo il concetto con un esempio. Immaginiamo AD come la libreria più grande del mondo, nella quale stai cercando un libro con un titolo che parla di zombi. Nel mondo LDAP, dettagli quali il fatto che il libro sia stato o meno pubblicato negli Stati Uniti, che contenga oltre 1.000 pagine o che sia una guida su come sopravvivere a un'apocalisse zombie non sono importanti, anche se possono aiutare a restringere il campo di ricerca. LDAP è il libraio esperto che sa esattamente dove trovare tutti i riferimenti che soddisfano la tua ricerca e che verifica che il libro trovato corrisponda esattamente a ciò che cerchi.
Risorse da Red Hat
Processo di autenticazione LDAP
Quali elementi include una ricerca LDAP, e come funziona?
Il processo di autenticazione LDAP è un modello di autenticazione client-server che prevede gli elementi seguenti:
- Directory System Agent (DSA): un server di directory che esegue LDAP nella propria rete.
- Directory User Agent (DUA): accede ai server DSA come client (ad esempio il PC di un utente).
- Distinguished Name (DN): il nome distinto contenente il percorso alla struttura informativa della directory utilizzato da LDAP per raggiungere l'informazione (ad esempio: cn=Susan, ou=users, o=Company).
- Relative Distinguished Name (RDN): il nome distinto relativo, ovvero ogni componente del percorso del DN (ad esempio cn=Susan).
- Application Programming Interface (API): l'interfaccia di programmazione delle applicazioni che consente ai tuoi prodotti o servizi di comunicare con altri prodotti o servizi anche senza sapere come sono stati adottati.
Il processo inizia quando un utente tenta di accedere dal proprio PC a un programma client compatibile con LDAP, ad esempio un'applicazione di posta elettronica aziendale. Con LDAPv3, gli utenti possono avvalersi di uno dei due metodi di autenticazione utente possibili: autenticazione semplice, come il SSO con credenziali di accesso, o autenticazione SASL, che vincola il server LDAP a un programma come Kerberos. Il tentativo di accesso invia una richiesta di autenticazione del DN assegnato all'utente. Il DN viene inviato tramite l'API client o il servizio che avvia il server DSA.
Il client stabilisce automaticamente la sessione con il DSA, e LDAP utilizza il DN per cercare l'oggetto o il set di oggetti corrispondente nei record presenti nel database LDAP. In questa fase hanno grande importanza gli RDN nel DN, perché forniscono tutti i passaggi della ricerca di LDAP verso il DIT per trovare la persona cercata. Se nel percorso manca un RDN di collegamento sul backend, il risultato ottenuto potrebbe non essere valido. In questo caso, l'oggetto che LDAP sta cercando è l'account utente della persona (cn=Susan); il protocollo potrà autenticare l'utente solo se l'uid e l'userPassword dell'account nella directory corrispondono. Nella directory LDAP anche i gruppi di utenti vengono identificati come oggetti.
Quando l'utente riceve una risposta, che sia valida o meno, il client si disconnette dal server LDAP. Gli utenti autenticati possono quindi accedere all'API e ai relativi servizi, inclusi i file necessari, le informazioni sull'utente e altri dati dell'applicazione, in funzione delle autorizzazioni concesse dall'amministratore di sistema.
Componenti di LDAP
La struttura leggera di LDAP e l'utilizzo di un DIT consentono la rapida esecuzione di una ricerca LDAP e forniscono risultati immediati. Comprendere il funzionamento del DIT è importante per utilizzare al meglio un server LDAP e capire come funzionano le ricerche LDAP.
Il DIT facilita la navigazione tra i diversi livelli della directory LDAP, per restringere i risultati della ricerca e fornire una risposta a una query. Il DIT inizia nella directory principale, è seguito dal paese, che poi si suddivide in due sottoclassi, Domain Component (dc) e Organization Name (o).
Domain Access Component (dc)
Il dc (ad esempio dc=com, dc=example) utilizza il mapping DNS per individuare i nomi di dominio Internet e tradurli in indirizzi IP.
La maggior parte degli utenti non è a conoscenza del nome di dominio e/o dell'indirizzo della persona che sta cercando. In questo caso, LDAP utilizza il DN assegnato all'utente come percorso per raggiungere velocemente il DIT e individuare il risultato ricercato. Qui interviene la sottoclasse o.
Organization Name (o)
La sottoclasse o (ad esempio o-Company) è una delle sottoclassi più generiche elencate nel DN, ed è in genere il punto di partenza della ricerca di LDAP. Ad esempio, un percorso semplice inizia solitamente con la sottoclasse o, che si suddivide nell'Organizational Unit (ou) seguita da un account utente o da un gruppo.
Organizational Unit (ou)
Come detto prima, ou è una sottoclasse di o ed è spesso indicata come ou=users o ou=groups, che a loro volta contengono un elenco di account o gruppi di utenti. Questo è l'aspetto che può assumere in una directory:
o-Company
ou=groups
cn=developers
ou=users
cn=Susan
Common name (cn)
Il cn, o nome comune, viene utilizzato per identificare il nome di un gruppo o di un account utente personale (ad esempio cn=developers, cn=Susan). Un utente può appartenere a un gruppo, perciò se Susan è una sviluppatrice può rientrare anche nel gruppo cn=developers.
Attributi e valori
Ogni sottoclasse nel DIT LDAP (ad esempio o, ou, cn) contiene attributi e valori o uno schema che contiene informazioni sulla struttura della directory LDAP che possono aiutare a restringere l'ambito di una ricerca. Gli attributi sono assimilabili a ciò che si trova nel record di una rubrica: nome, numero di telefono e indirizzo; a ogni attributo sono assegnati dei valori. Ad esempio, Susan corrisponde al valore dell'attributo del nome.
Nell'account cn=Susan, user id (uid) e userPassword sono gli attributi e le credenziali di accesso dell'utente sono i valori. In un gruppo come cn=developers, tuttavia, a Susan sarebbe associato l'attributo uniqueMember (ad esempio uniqueMember=cn-Susan,ou-Users,o-Company). Ciò corrisponde al percorso che porta alla posizione in cui si trova l'account utente personale di Susan, insieme alle informazioni cercate da LDAP. L'account utente si trova al termine della riga nel DIT, ed è il punto finale da cui LDAP estrae i risultati della ricerca.
Esistono molti altri tipi e sintassi di attributi che possono aiutare a restringere la ricerca, tra cui ObjectClasses come organizationalPerson (strutturale) o personal (strutturale). In LDAP, tuttavia, il numero di attributi è limitato, per garantire leggerezza e facilità di utilizzo.
Perché utilizzare LDAP?
Gli amministratori delle reti aziendali gestiscono in genere migliaia di utenti alla volta. Hanno quindi il compito di assegnare i controlli e i criteri di accesso in base al ruolo di un utente e alla necessità di accedere ai file per eseguire le attività quotidiane, come in una Intranet aziendale.
LDAP semplifica il processo di gestione degli utenti, fa risparmiare tempo agli amministratori di rete, e centralizza le procedure di autenticazione. Prima di integrare LDAP nel tuo ambiente, è importante considerare quanto segue:
Capacità: che volume di dati relativo alla gestione degli utenti devi archiviare? Occorre considerare se i prodotti che adottano le soluzioni LDAP hanno la capacità di archiviare e gestire tutti i dati necessari.
Frequenza di ricerca: se sono presenti dati a cui un utente deve accedere quotidianamente, come l'Intranet aziendale, un'applicazione o un servizio di posta, LDAP può essere la soluzione idonea.
Organizzazione: il semplice DIT in LDAP può essere sufficiente per organizzare i dati come necessario, o può essere utile un sistema più dettagliato?
LDAP viene frequentemente utilizzato in AD, ma può servire anche per autenticare gli utenti di altri strumenti e ambienti client, tra cui Red Hat Directory Server su UNIX e OpenLDAP, un'applicazione open source su Windows. Le funzionalità di gestione degli utenti e delle autenticazioni di LDAP sono valide anche per la gestione delle API, il controllo degli accessi basato sui ruoli (RBAC) o altre applicazioni e servizi come Docker e Kubernetes.
Autenticazione LDAP con Red Hat Enterprise Linux
Red Hat® Enterprise Linux® include capacità di gestione centralizzata delle identità che permettono di autenticare gli utenti e adottare il sistema RBAC utilizzando un'unica interfaccia scalabile per tutto il datacenter.
Red Hat Enterprise Linux facilita la gestione delle identità mediante una serie di funzionalità di autenticazione e autorizzazione, tra cui:
Controller di dominio per Linux: un archivio di identità centralizzato che consente di gestire da un'unica posizione attendibile e centrale identità, accesso e policy per tutti gli utenti, i servizi e gli host. Contribuisce a ridurre il lavoro amministrativo e semplifica la registrazione dei domini, creando un'affidabile barriera di sicurezza e garantendo agli utenti un'esperienza di autenticazione ottimale.
Integrazione con Active Directory: l'integrazione nativa di Red Hat Enterprise Linux con AD colma le lacune nella gestione delle identità degli utenti tra Linux e Windows. Active Directory diventa una singola fonte di attendibilità per le identità utente e per l'applicazione di policy di controllo su misura direttamente al dominio Linux, rendendo più efficienti le attività di amministrazione grazie a una posizione centrale di creazione delle policy.
SSO Kerberos: il sistema di autenticazione sicura per la gestione delle identità che consente di adottare l'accesso SSO per l'infrastruttura, semplificando il processo di autenticazione degli utenti. Con Kerberos puoi estendere ai servizi la possibilità di autenticarsi senza password e supportare l'autenticazione web mediante SSO (basata su Keycloak).
Ruoli di sistema: un utilizzo coerente e ripetibile dei flussi di lavoro di configurazione consente di risparmiare tempo e risorse. L'automazione può nettamente ridurre l'onere tecnico e le attività manuali associati al deployment e alla gestione delle identità nel tempo.
Red Hat fornisce anche il componente aggiuntivo Red Hat Directory Server, per soddisfare esigenze altamente specializzate.
Red Hat Directory Server è una directory scalabile basata su LDAP, adatta ad ambienti diversificati e di grandi dimensioni. Può sostituire alla perfezione i costosi prodotti LDAP esistenti e consente la gestione di topologie di directory distribuite e complesse con una vasta gamma di opzioni di replica. La soluzione garantisce flessibilità in quanto fornisce attributi e schemi personalizzabili per i dati della tua directory.
Il blog ufficiale di Red Hat
Leggi gli articoli del blog di Red Hat per scoprire novità e consigli utili sulle nostre tecnologie, e avere aggiornamenti sul nostro ecosistema di clienti, partner e community.