LDAP (abbreviazione di Lightweight Directory Access Protocol) è uno standard industriale, un insieme di protocolli ampiamente utilizzato per accedere ai servizi di directory.
Un servizio di directory in termini semplici è un database centralizzato, basato sulla rete e ottimizzato per l’accesso in lettura. Memorizza e fornisce l’accesso alle informazioni che devono essere condivise tra le applicazioni o che sono altamente distribuite.
I servizi di directory giocano un ruolo importante nello sviluppo di applicazioni intranet e Internet, aiutandovi a condividere informazioni su utenti, sistemi, reti, applicazioni e servizi in tutta la rete.
Un tipico caso d’uso di LDAP è quello di offrire un archivio centralizzato di nomi utente e password. Questo permette a varie applicazioni (o servizi) di connettersi al server LDAP per convalidare gli utenti.
Dopo aver impostato un server LDAP funzionante, sarà necessario installare le librerie sul client per connettersi ad esso. In questo articolo, mostreremo come configurare un client LDAP per connettersi a una fonte di autenticazione esterna.
Spero che tu abbia già un ambiente server LDAP funzionante, altrimenti configura Up LDAP Server per l’autenticazione basata su LDAP.
Come installare e configurare il client LDAP in Ubuntu e CentOS
Sui sistemi client, dovrai installare alcuni pacchetti necessari per far funzionare correttamente il meccanismo di autenticazione con un server LDAP.
Configurare il client LDAP in Ubuntu 16.04 e 18.04
Prima inizia installando i pacchetti necessari eseguendo il seguente comando.
$ sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
Durante l’installazione, ti verranno richiesti i dettagli del tuo server LDAP (fornisci i valori secondo il tuo ambiente). Si noti che il pacchetto ldap-auth-config che è auto-installato fa la maggior parte delle configurazioni in base agli input inseriti.
Next, enter the name of the LDAP search base, you can use the components of their domain names for this purpose as shown in the screenshot.
Also choose the LDAP version to use and click Ok.
Now configure the option to allow you to make password utilities that use pam to behave like you would be changing local passwords and click Yes to continue..
Next, disable login requirement to the LDAP database using the next option.
Also define LDAP account for root and click Ok.
Next, enter the password to use when ldap-auth-config tries to login to the LDAP directory using the LDAP account for root.
The results of the dialog will be stored in the file /etc/ldap.conf. Se vuoi fare delle modifiche, apri e modifica questo file usando il tuo editor di linea di comando preferito.
In seguito, configura il profilo LDAP per NSS eseguendo.
$ sudo auth-client-config -t nss -p lac_ldap
Poi configura il sistema per usare LDAP per l’autenticazione aggiornando le configurazioni PAM. Dal menu, scegliete LDAP e qualsiasi altro meccanismo di autenticazione di cui avete bisogno. Ora dovreste essere in grado di accedere usando credenziali basate su LDAP.
$ sudo pam-auth-update
In caso si voglia che la home directory dell’utente venga creata automaticamente, allora è necessario eseguire un’altra configurazione nel file PAM della sessione comune.
$ sudo vim /etc/pam.d/common-session
Aggiungi questa linea in esso.
session required pam_mkhomedir.so skel=/etc/skel umask=077
Salvare le modifiche e chiudere il file. Poi riavvia il servizio NCSD (Name Service Cache Daemon) con il seguente comando.
$ sudo systemctl restart nscd$ sudo systemctl enable nscd
Nota: Se stai usando la replica, i client LDAP dovranno fare riferimento a più server specificati in /etc/ldap.conf. Puoi specificare tutti i server in questa forma:
uri ldap://ldap1.example.com ldap://ldap2.example.com
Questo implica che la richiesta andrà in time out e se il Provider (ldap1.example.com) non risponde, il Consumer (ldap2.example.com) tenterà di essere raggiunto per elaborarla.
Per controllare le voci LDAP per un particolare utente dal server, esegui il comando getent, per esempio.
$ getent passwd tecmint
Se il comando precedente visualizza i dettagli dell’utente specificato dal file /etc/passwd, la tua macchina client è ora configurata per autenticarsi con il server LDAP, dovresti essere in grado di accedere usando le credenziali LDAP.
Configura il client LDAP in CentOS 7
Per installare i pacchetti necessari, esegui il seguente comando. Si noti che in questa sezione, se si sta operando il sistema come utente amministrativo non root, utilizzare il comando sudo per eseguire tutti i comandi.
# yum update && yum install openldap openldap-clients nss-pam-ldapd
In seguito, abilitare il sistema client ad autenticarsi utilizzando LDAP. Puoi usare l’utilità authconfig, che è un’interfaccia per configurare le risorse di autenticazione del sistema.
Esegui il seguente comando e sostituisci example.com con il tuo dominio e dc=example,dc=com con il tuo controller di dominio LDAP.
# authconfig --enableldap --enableldapauth --ldapserver=ldap.example.com --ldapbasedn="dc=example,dc=com" --enablemkhomedir --update
Nel comando precedente, l’opzione --enablemkhomedir
crea una home directory locale dell’utente alla prima connessione se non ne esiste nessuna.
In seguito, verifica se le voci LDAP per un particolare utente dal server, per esempio l’utente tecmint.
$ getent passwd tecmint
Il comando precedente dovrebbe visualizzare i dettagli dell’utente specificato dal file /etc/passwd, il che implica che la macchina client è ora configurata per autenticarsi con il server LDAP.
Importante: se SELinux è abilitato sul tuo sistema, devi aggiungere una regola per permettere la creazione automatica di home directory da parte di mkhomedir.
Per maggiori informazioni, consulta la documentazione appropriata dal catalogo documenti del software OpenLDAP.