LDAP (Lightweight Directory Access Protocol) is een industriestandaard, veelgebruikte set protocollen voor toegang tot directorydiensten.
Een directorydienst is eenvoudig gezegd een gecentraliseerde, netwerkgebaseerde database die is geoptimaliseerd voor leestoegang. Het slaat informatie op en biedt toegang tot informatie die ofwel moet worden gedeeld tussen applicaties ofwel sterk gedistribueerd is.
Directory services spelen een belangrijke rol bij het ontwikkelen van intranet en Internet applicaties door u te helpen informatie te delen over gebruikers, systemen, netwerken, applicaties en diensten in het hele netwerk.
Een typische use case voor LDAP is het aanbieden van een gecentraliseerde opslag van gebruikersnamen en wachtwoorden. Hierdoor kunnen verschillende toepassingen (of diensten) verbinding maken met de LDAP-server om gebruikers te valideren.
Na het opzetten van een werkende LDAP-server, moeten bibliotheken op de client worden geïnstalleerd om er verbinding mee te maken. In dit artikel laten we zien hoe je een LDAP client kunt configureren om verbinding te maken met een externe authenticatie bron.
Ik hoop dat je al een werkende LDAP server omgeving hebt, zo niet, stel dan Up LDAP Server in voor LDAP gebaseerde authenticatie.
Hoe installeer en configureer je een LDAP client in Ubuntu en CentOS
Op de client systemen moet je een paar noodzakelijke pakketten installeren om het authenticatie mechanisme goed te laten functioneren met een LDAP server.
Configureer LDAP Client in Ubuntu 16.04 en 18.04
Start eerst met het installeren van de benodigde pakketten door het volgende commando uit te voeren.
$ sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
Tijdens de installatie wordt u gevraagd om de details van uw LDAP server (geef de waarden op die overeenkomen met uw omgeving). Merk op dat het ldap-auth-config pakket, dat automatisch wordt geïnstalleerd, de meeste configuraties uitvoert op basis van de door u ingevoerde gegevens.
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. Als u wijzigingen wilt aanbrengen, opent u dit bestand en bewerkt u het met uw favoriete opdrachtregel-editor.
Naar aanleiding hiervan configureert u het LDAP-profiel voor NSS door.
$ sudo auth-client-config -t nss -p lac_ldap
Daarna configureert u het systeem om LDAP te gebruiken voor authenticatie door de PAM-configuraties bij te werken. Kies LDAP in het menu en eventuele andere authenticatiemechanismen die u nodig heeft. U zou nu in moeten kunnen loggen met LDAP-gebaseerde credentials.
$ sudo pam-auth-update
In het geval dat u wilt dat de homedirectory van de gebruiker automatisch wordt aangemaakt, dan moet u nog een configuratie uitvoeren in het common-session PAM-bestand.
$ sudo vim /etc/pam.d/common-session
Voeg deze regel erin in.
session required pam_mkhomedir.so skel=/etc/skel umask=077
Sla de wijzigingen op en sluit het bestand. Start vervolgens de NCSD-service (Name Service Cache Daemon) opnieuw met het volgende commando.
$ sudo systemctl restart nscd$ sudo systemctl enable nscd
Note: Als u replicatie gebruikt, moeten LDAP-clients naar meerdere servers verwijzen die in /etc/ldap.conf zijn gespecificeerd. U kunt alle servers in deze vorm opgeven:
uri ldap://ldap1.example.com ldap://ldap2.example.com
Dit houdt in dat het verzoek een time-out krijgt en als de Provider (ldap1.example.com) niet meer reageert, zal de Consumer (ldap2.example.com) proberen te worden bereikt om het te verwerken.
Om de LDAP-regels voor een bepaalde gebruiker vanaf de server te controleren, voert u bijvoorbeeld het commando getent uit.
$ getent passwd tecmint
Als het bovenstaande commando details van de gespecificeerde gebruiker uit het /etc/passwd bestand laat zien, is uw client machine nu geconfigureerd om te authenticeren met de LDAP server, u zou zich moeten kunnen aanmelden met LDAP-gebaseerde credentials.
Configure LDAP Client in CentOS 7
Om de benodigde pakketten te installeren, voert u het volgende commando uit. Merk op dat in dit gedeelte, als u het systeem gebruikt als een niet-root administratieve gebruiker, u het sudo commando moet gebruiken om alle commando’s uit te voeren.
# yum update && yum install openldap openldap-clients nss-pam-ldapd
Volgende, schakel het client systeem in om te authenticeren met LDAP. U kunt hiervoor het hulpprogramma authconfig gebruiken, dat een interface is voor het configureren van systeemauthenticatiebronnen.
Uit het volgende commando uit en vervang example.com door uw domein en dc=example,dc=com door uw LDAP-domeincontroller.
# authconfig --enableldap --enableldapauth --ldapserver=ldap.example.com --ldapbasedn="dc=example,dc=com" --enablemkhomedir --update
In het bovenstaande commando maakt de --enablemkhomedir
optie een lokale gebruikers home directory aan bij de eerste verbinding als die er niet is.
Volgende, test of de LDAP entries voor een bepaalde gebruiker van de server, bijvoorbeeld gebruiker tecmint.
$ getent passwd tecmint
Het bovenstaande commando zou de details van de opgegeven gebruiker uit het bestand /etc/passwd moeten weergeven, wat impliceert dat de client-machine nu is geconfigureerd om met de LDAP-server te authenticeren.
Belangrijk: Als SELinux op uw systeem is ingeschakeld, moet u een regel toevoegen om het automatisch aanmaken van home directories door mkhomedir toe te staan.
Voor meer informatie, raadpleeg de juiste documentatie uit de OpenLDAP Software document catalogus.