LDAP (skrót od Lightweight Directory Access Protocol) jest standardem przemysłowym, szeroko stosowanym zestawem protokołów dostępu do usług katalogowych.
Usługa katalogowa w prostych słowach jest scentralizowaną, opartą na sieci bazą danych zoptymalizowaną pod kątem dostępu do odczytu. Przechowuje i zapewnia dostęp do informacji, które muszą być współdzielone między aplikacjami lub są wysoce rozproszone.
Usługi katalogowe odgrywają ważną rolę w tworzeniu aplikacji intranetowych i internetowych, pomagając w udostępnianiu informacji o użytkownikach, systemach, sieciach, aplikacjach i usługach w całej sieci.
Typowym przypadkiem użycia LDAP jest scentralizowane przechowywanie nazw użytkowników i haseł. Umożliwia to różnym aplikacjom (lub usługom) łączenie się z serwerem LDAP w celu sprawdzania poprawności użytkowników.
Po skonfigurowaniu działającego serwera LDAP należy zainstalować na kliencie biblioteki umożliwiające łączenie się z nim. W tym artykule pokażemy, jak skonfigurować klienta LDAP, aby łączył się z zewnętrznym źródłem uwierzytelniania.
Mam nadzieję, że masz już działające środowisko serwera LDAP, jeśli nie, skonfiguruj Up LDAP Server for LDAP-based Authentication.
How to Install and Configure LDAP Client in Ubuntu and CentOS
Na systemach klienckich będziesz musiał zainstalować kilka niezbędnych pakietów, aby mechanizm uwierzytelniania działał poprawnie z serwerem LDAP.
Konfiguracja klienta LDAP w Ubuntu 16.04 i 18.04
Najpierw zacznij od zainstalowania niezbędnych pakietów, wykonując następujące polecenie.
$ sudo apt update && sudo apt install libnss-ldap libpam-ldap ldap-utils nscd
Podczas instalacji zostaniesz poproszony o podanie szczegółów dotyczących twojego serwera LDAP (podaj wartości zgodne z twoim środowiskiem). Zauważ, że pakiet ldap-auth-config, który jest automatycznie instalowany, wykonuje większość konfiguracji na podstawie wprowadzonych danych.

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. Jeśli chcesz wprowadzić jakieś zmiany, otwórz i edytuj ten plik za pomocą ulubionego edytora wiersza poleceń.
Następnie skonfiguruj profil LDAP dla NSS, uruchamiając.
$ sudo auth-client-config -t nss -p lac_ldap
Następnie skonfiguruj system tak, aby używał LDAP do uwierzytelniania, aktualizując konfigurację PAM. Z menu wybierz LDAP i wszelkie inne mechanizmy uwierzytelniania, których potrzebujesz. Powinieneś być teraz w stanie zalogować się używając poświadczeń opartych na LDAP.
$ sudo pam-auth-update

W przypadku, gdy chcesz, aby katalog domowy użytkownika był tworzony automatycznie, to należy wykonać jeszcze jedną konfigurację w pliku common-session PAM.
$ sudo vim /etc/pam.d/common-session
Dodaj w nim tę linię.
session required pam_mkhomedir.so skel=/etc/skel umask=077
Zapisz zmiany i zamknij plik. Następnie uruchom ponownie usługę NCSD (Name Service Cache Daemon) za pomocą następującego polecenia.
$ sudo systemctl restart nscd$ sudo systemctl enable nscd
Uwaga: Jeśli używasz replikacji, klienci LDAP będą musieli odwoływać się do wielu serwerów określonych w pliku /etc/ldap.conf. Możesz określić wszystkie serwery w tej formie:
uri ldap://ldap1.example.com ldap://ldap2.example.com
Zakłada to, że żądanie będzie czasowo wyłączone i jeśli Dostawca (ldap1.example.com) przestanie odpowiadać, Konsument (ldap2.example.com) będzie próbował zostać osiągnięty, aby je przetworzyć.
Aby sprawdzić wpisy LDAP dla konkretnego użytkownika z serwera, uruchom polecenie getent, na przykład.
$ getent passwd tecmint
Jeśli powyższe polecenie wyświetli szczegóły określonego użytkownika z pliku /etc/passwd, twoja maszyna kliencka jest teraz skonfigurowana do uwierzytelniania z serwerem LDAP, powinieneś być w stanie zalogować się używając poświadczeń opartych na LDAP.
Konfiguracja klienta LDAP w CentOS 7
Aby zainstalować niezbędne pakiety, wykonaj następujące polecenie. Zwróć uwagę, że w tej sekcji, jeśli używasz systemu jako użytkownik administracyjny niebędący rootem, użyj polecenia sudo, aby uruchomić wszystkie polecenia.
# yum update && yum install openldap openldap-clients nss-pam-ldapd
Następnie włącz uwierzytelnianie systemu klienta za pomocą LDAP. Możesz użyć narzędzia authconfig, które jest interfejsem do konfiguracji zasobów uwierzytelniania systemu.
Uruchom następujące polecenie i zastąp example.com swoją domeną, a dc=example,dc=com swoim kontrolerem domeny LDAP.
# authconfig --enableldap --enableldapauth --ldapserver=ldap.example.com --ldapbasedn="dc=example,dc=com" --enablemkhomedir --update
W powyższym poleceniu, opcja --enablemkhomedir
tworzy lokalny katalog domowy użytkownika przy pierwszym połączeniu, jeśli żaden nie istnieje.
Następnie, przetestuj, czy wpisy LDAP dla konkretnego użytkownika z serwera, na przykład użytkownika tecmint.
$ getent passwd tecmint
Powyższe polecenie powinno wyświetlić dane określonego użytkownika z pliku /etc/passwd, co sugeruje, że maszyna kliencka jest teraz skonfigurowana do uwierzytelniania z serwerem LDAP.
Ważne: Jeżeli SELinux jest włączony w twoim systemie, musisz dodać regułę zezwalającą na automatyczne tworzenie katalogów domowych przez mkhomedir.
Więcej informacji znajdziesz w odpowiedniej dokumentacji z katalogu dokumentów oprogramowania OpenLDAP.
Podsumowanie
.