Czym jest Lightweight Directory Access Protocol (LDAP)?
- Słownik IAM
- Czym jest Lightweight Directory Access Protocol (LDAP)?
Lightweight Directory Access Protocol (LDAP) to otwarty, neutralny wobec dostawców protokół używany przez aplikacje do uzyskiwania dostępu do informacji katalogowych i zarządzania nimi przez sieć. Katalog to scentralizowany magazyn danych o użytkownikach, grupach i urządzeniach w organizacji, a protokół LDAP jest najczęściej wykorzystywany do uwierzytelniania użytkowników w tym katalogu. Protokół LDAP działa w tle, gdy użytkownicy logują się na służbowe konto e-mail, do sieci VPN lub do wewnętrznej aplikacji firmowej za pomocą jednej nazwy użytkownika i hasła. Zamiast utrzymywania przez każdą aplikację własnej listy użytkowników protokół LDAP pozwala wielu aplikacjom weryfikować dane uwierzytelniające w oparciu o wspólny, scentralizowany katalog — co czyni go fundamentalną technologią logowania do systemów firmowych.
Protokół LDAP został zaprojektowany jako prostsza i bardziej wydajna alternatywa dla protokołu Directory Access Protocol (DAP) — starszego, obciążającego zasoby protokołu dostępu ze standardu katalogowego X.500. Protokół LDAP zachował podstawową ideę ustrukturyzowanego katalogu, eliminując jednocześnie skomplikowaną implementację i zmniejszając nakład pracy, co znacznie ułatwiło jego wdrożenie.
LDAP czy Active Directory?
Choć często uważa się, że LDAP i Active Directory to konkurujące ze sobą alternatywy, nie należy ich tak traktować. LDAP to standardowy zestaw reguł, czyli wspólny język, służący do uzyskiwania dostępu do informacji katalogowych i zarządzania nimi. Sam w sobie nie przechowuje żadnych danych — zamiast tego jest protokołem, którego aplikacje używają do komunikacji z katalogiem.
Active Directory (AD) to usługa katalogowa firmy Microsoft służąca do przechowywania informacji o użytkownikach, grupach i urządzeniach w sieci oraz zarządzania nimi. LDAP to protokół używany przez usługę Active Directory, aby umożliwić aplikacjom odczytywanie danych z jej katalogu i zapisywanie ich w nim. W prostych słowach: LDAP to język, którym posługuje się usługa Active Directory. Ponieważ LDAP jest otwartym, niezależnym od dostawców standardem, jest obsługiwany przez różnorodne produkty i usługi katalogowe, w tym OpenLDAP, JumpCloud i Oracle Internet Directory. Aplikacje mogą korzystać z tego samego protokołu bez względu na to, z jakiego katalogu korzysta organizacja. Ta elastyczność jest jednym z głównych powodów tak powszechnego stosowania protokołu LDAP.
Jak działa LDAP?
Protokół LDAP opiera się na modelu klient-serwer, w którym klientem jest aplikacja potrzebująca informacji z katalogu (ekran logowania lub program pocztowy), a serwerem jest sam katalog. Typowa interakcja z katalogiem LDAP polega na wysłaniu żądania przez klienta, przetworzeniu go w katalogu przez serwer LDAP oraz odesłaniu odpowiedzi przez serwer. Aby zrozumieć strukturę katalogu, warto wiedzieć, jakie elementy mogą być w nim przechowywane:
- Wpis: pojedynczy rekord w katalogu. Wpis zwykle reprezentuje jedną rzecz, na przykład osobę, grupę lub urządzenie.
- Atrybuty: elementy danych przypisane do wpisu, w tym nazwa, adres e-mail, numer telefonu lub dział. Każdy atrybut ma typ i wartość.
- Nazwa wyróżniająca (DN): niepowtarzalny „adres” identyfikujący wpis w katalogu — żadne dwa wpisy nie mogą mieć tej samej nazwy wyróżniającej. Jest zapisywana jako ścieżka utworzona z nazwy wpisu oraz kategorii, do których należy, i dokładnie wskazuje katalogowi, gdzie znaleźć wpis.
Wpisy są zorganizowane w hierarchię zwaną drzewem informacji katalogowych (Directory Information Tree — DIT). Podobnie jak schemat organizacyjny firmy drzewo DIT rozgałęzia się od szerokiego korzenia w dół do węższych grup, takich jak działy, a ostatecznie do pojedynczych wpisów, takich jak użytkownicy. Ta struktura drzewa sprawia, że nazwa DN jest czytelna jako ścieżka, a nazwa DN każdej osoby wyznacza trasę od szczytu drzewa w dół do jej wpisu.
Typowe zastosowania protokołu LDAP
Niemal wszystko, do czego wykorzystuje się LDAP, sprowadza się do jednego głównego zamysłu: wiele aplikacji może współdzielić centralne źródło prawdziwych informacji o użytkownikach i zasobach, zamiast utrzymywać własne. Poniżej przedstawiono najczęstsze sposoby wykorzystywania protokołu LDAP przez organizacje.
Uwierzytelnianie i autoryzacja
Główny przypadek użycia protokołu LDAP obejmuje zarówno uwierzytelnianie, jak i autoryzację. Uwierzytelnianie polega na weryfikacji tożsamości użytkownika, która odbywa się poprzez operację powiązania LDAP: aplikacja przesyła tożsamość użytkownika oraz hasło, które katalog potwierdza lub odrzuca. Autoryzacja polega na określaniu, do wykonywania jakich czynności uprawniony jest uwierzytelniony użytkownik. Katalogi LDAP organizują użytkowników w grupy, a aplikacje sprawdzają przynależność do grup, aby przyznać lub odmówić dostępu. Przykład: tylko członkowie grupy „HR” mogą edytować dane w systemie płacowym.
Centralne zarządzanie użytkownikami
Tradycyjnie każda aplikacja prowadziła własną listę użytkowników i haseł. Onboarding nowego pracownika oznaczał kiedyś tworzenie kont w wielu miejscach pojedynczo, a offboarding wiązał się z wyszukiwaniem i wyłączaniem każdego z tych kont, co stwarzało realne zagrożenie w przypadku pominięcia choćby jednego. Dzięki usłudze LDAP istnieje jeden katalog, na podstawie którego uwierzytelnia się każda aplikacja. Rezultatem jest szybszy onboarding, sprawniejszy offboarding, spójne zasady dotyczące haseł oraz centralne miejsce umożliwiające sprawdzanie tego, kto ma do czego dostęp.
Podstawy logowania jednokrotnego (SSO)
Ponieważ każda aplikacja może wskazywać ten sam katalog, LDAP stanowi podstawę logowania jednokrotnego (SSO), w którym jeden zestaw danych uwierzytelniających funkcjonuje w różnych systemach. Dla jasności: LDAP stanowi podstawę SSO, a nie jest samym SSO. Pełne środowisko SSO, w którym użytkownik loguje się raz i przechodzi między aplikacjami bez ponownego wpisywania hasła, zazwyczaj obejmuje dodatkowe protokoły, ale wspólnym źródłem tożsamości jest często katalog LDAP.
Wyszukiwanie kontaktów
Ponieważ katalog zawiera osoby wraz z ich atrybutami, aplikacje mogą odpytywać go jako współdzieloną książkę adresową dla całej firmy. Na przykład klient poczty e-mail może automatycznie uzupełnić adres współpracownika, gdy ktoś zacznie wpisywać jego imię i nazwisko, lub wyszukiwanie w „katalogu pracowników” w narzędziu wewnętrznym może zwrócić informacje o współpracowniku. W tym przypadku LDAP działa dokładnie zgodnie z przeznaczeniem: katalogi są zoptymalizowane pod kątem odczytu i stworzone do obsługi dużej liczby szybkich wyszukiwań, dzięki czemu dobrze nadają się do tego rodzaju zapytań.
Przechowywanie informacji o konfiguracji
Oprócz osób katalog może przechowywać wpisy dotyczące zasobów maszynowych, w tym drukarek sieciowych, serwerów i urządzeń współdzielonych. Umożliwia to aplikacjom i użytkownikom wykrywanie tych zasobów i łączenie się z nimi z jednego centralnego miejsca, zamiast ręcznego konfigurowania każdego z nich. Stacja robocza może zlokalizować pobliską drukarkę za pośrednictwem katalogu, a system może pobrać ustawienia urządzenia podczas uruchamiania. Choć jest to mniejszy przypadek użycia, pokazuje elastyczność protokołu LDAP.
Porty i bezpieczeństwo protokołu LDAP
Domyślnie protokół LDAP komunikuje się przez port 389, który jest standardowym portem dla ruchu LDAP. Jednak sam protokół LDAP nie jest szyfrowany, więc dane są przesyłane w postaci jawnego tekstu. Każdy, kto zdoła przechwycić ten ruch, może go odczytać, poznając na przykład dane wrażliwe, takie jak nazwy użytkowników i hasła. To poważne zagrożenie w przypadku protokołu tak często wykorzystywanego do obsługi logowania, dlatego zdecydowanie zaleca się szyfrowanie. Oto dwa z najczęstszych sposobów zabezpieczenia protokołu LDAP:
- LDAPS używa portu 636. W tym przypadku połączenie jest szyfrowane zaraz po jego nawiązaniu, dzięki czemu ruch jest chroniony przez całą sesję. Litera „S” oznacza „secure” (bezpieczny), podobnie jak w protokole HTTPS.
- StartTLS działa na standardowym porcie 389. Zamiast korzystać z oddzielnego bezpiecznego portu, rozpoczyna się jako zwykłe połączenie LDAP, a następnie uaktualnia je do połączenia szyfrowanego przy użyciu protokołu TLS. Efekt końcowy jest podobny do LDAPS, ale jest negocjowany na tym samym porcie zamiast dedykowanego.
Główny wniosek jest taki, że zwykły protokół LDAP na porcie 389 sam w sobie nie zapewnia żadnej ochrony. Szyfrowanie należy uznać za niezbędne — czy to poprzez LDAPS na porcie 636, czy StartTLS na porcie 389.
Zalety i wady protokołu LDAP
Zalety protokołu LDAP wyjaśniają, dlaczego od dawna stanowi on filar tożsamości w przedsiębiorstwach, podczas gdy jego ograniczenia wskazują sytuacje, w których wymaga narzędzi wspierających lub nie jest najlepszym rozwiązaniem.
| Zalety protokołu LDAP | Wady protokołu LDAP |
|---|---|
Zalety protokołu LDAP
| Wady protokołu LDAP
|