Dlaczego LDAP ma ponad 30 lat, a nadal nie odchodzi na emeryturę?
Kto pamięta czasy Novell NetWare 3.12? W latach 90. był to w Polsce jeden z najpopularniejszych sieciowych systemów operacyjnych. Można go było spotkać w firmach, urzędach, szkołach, na uczelniach i w ośrodkach szkoleniowych. Były dyskietki instalacyjne, protokół IPX/SPX, sterowniki ODI, mapowane dyski i charakterystyczna konsola serwera. Użytkownik logował się do sieci, otrzymywał dostęp do plików i drukarek, a administrator zarządzał kontami oraz uprawnieniami. Jak na tamte czasy był to ogromny krok naprzód.
Dzisiaj świat zarządzania tożsamością wygląda zupełnie inaczej. Mówimy o Entra ID, Identity Governance, automatycznym provisioningu, recertyfikacji i dostępie warunkowym. Mimo to u podstaw wielu współczesnych systemów nadal znajduje się LDAP – protokół opracowany ponad trzy dekady temu.
Jak zarządzano użytkownikami przed usługami katalogowymi?
NetWare 3.x korzystał z mechanizmu nazywanego bindery. Informacje o użytkownikach, grupach i zasobach były przechowywane lokalnie na konkretnym serwerze. W niewielkiej sieci działało to całkiem dobrze. Problem pojawiał się wtedy, gdy serwerów przybywało. Konta trzeba było zakładać i utrzymywać w kilku miejscach, a użytkownik często miał różne hasła oraz uprawnienia na poszczególnych serwerach.
Novell odpowiedział na ten problem w NetWare 4, wprowadzając w 1993 roku Novell Directory Services, czyli NDS. Zamiast osobnych baz pojawił się hierarchiczny katalog obejmujący całe środowisko. Później NDS rozwinął się w wieloplatformowy produkt znany jako eDirectory. Jego historia została opisana w dokumentacji Novella (novell.com).
Po co powstały usługi katalogowe?
Problem rozproszonych kont nie dotyczył wyłącznie Novella. Wraz z rozwojem sieci rosła liczba użytkowników, komputerów, serwerów, drukarek i aplikacji. Informacje o nich znajdowały się w wielu oddzielnych bazach. Potrzebny był wspólny katalog, pozwalający na przechowywanie informacji o obiektach, porządkowanie ich w hierarchii i szybkie wyszukiwanie.
Taką rolę miał pełnić standard X.500, rozwijany przez ITU-T i ISO. Zakładał stworzenie rozproszonej usługi katalogowej, w której obiekty otrzymywały jednoznaczne nazwy i miejsce w strukturze organizacji. Problemem był sposób dostępu do katalogu. Protokół DAP korzystał z rozbudowanego stosu OSI i wymagał znacznych zasobów. Dla komputerów i aplikacji z początku lat 90. był po prostu zbyt ciężki.
Dlaczego LDAP miał być lekki?
Odpowiedzią był Lightweight Directory Access Protocol. Pierwsza specyfikacja LDAP została opublikowana w 1993 roku jako RFC 1487, a rok później zastąpił ją RFC 1777.
Celem było zapewnienie dostępu do katalogu X.500 bez konieczności korzystania z pełnego i skomplikowanego DAP. Zamiast stosu OSI LDAP wykorzystywał TCP/IP.
Aplikacja mogła połączyć się z serwerem katalogowym, wyszukać użytkownika, odczytać jego atrybuty albo zmodyfikować wpis. LDAP nie był przy tym osobnym katalogiem, lecz protokołem komunikacji z usługą katalogową. Współczesną podstawą standardu pozostaje RFC 4511, opublikowany w 2006 roku.
Jak wyglądają dane w LDAP?
Informacje są przechowywane w postaci drzewa. Każdy wpis reprezentuje obiekt, na przykład użytkownika, grupę, komputer albo jednostkę organizacyjną. Obiekt ma zestaw atrybutów, takich jak imię, nazwisko, adres e-mail, identyfikator logowania czy numer telefonu. Jego miejsce w katalogu określa Distinguished Name, czyli DN:
cn=Jan Kowalski,ou=Warszawa,dc=firma,dc=pl Schemat katalogu definiuje, jakie klasy obiektów mogą istnieć oraz jakie atrybuty są dla nich wymagane. Model ten opisano szczegółowo w RFC 4512.
Dzisiaj takie podejście wydaje się naturalne. W latach 90. możliwość przechowywania użytkowników i zasobów w jednym hierarchicznym katalogu była jednak poważną zmianą.
Dlaczego LDAP przetrwał ponad 30 lat?
LDAP rozwiązuje konkretny problem i jest wspierany przez wielu producentów. To otwarty standard, który nie należy do jednej firmy ani platformy. Korzystają z niego między innymi OpenLDAP, eDirectory i Active Directory. Nadal spotyka się go również w aplikacjach biznesowych, systemach linuksowych, urządzeniach sieciowych, VPN-ach, narzędziach deweloperskich i starszych systemach ERP.
Microsoft opisuje Active Directory Domain Services jako hierarchiczny magazyn informacji o użytkownikach, komputerach, drukarkach i usługach, umożliwiający ich wyszukiwanie oraz wykorzystanie w sieci (learn.microsoft.com). LDAP bywa najprostszym wspólnym językiem między aplikacją a katalogiem firmowym. Nie oznacza to jednak, że każda implementacja jest bezpieczna. Proste uwierzytelnianie bez szyfrowania może narazić dane logowania. Mechanizmy TLS i SASL opisano między innymi w RFC 4513, ale wymagają one poprawnej konfiguracji.
Czego LDAP nie potrafił rozwiązać?
LDAP uporządkował sposób przechowywania i wyszukiwania informacji o użytkownikach. Nie rozwiązał jednak całego problemu zarządzania tożsamością.
Nie określał:
- kto ma utworzyć konto nowego pracownika,
- kiedy dostęp powinien zostać odebrany,
- jakie uprawnienia wynikają ze stanowiska,
- kto powinien zaakceptować dodatkowy dostęp
- czy jak zarządzać komputerami i politykami bezpieczeństwa.
Katalog potrafił przechowywać obiekty. Potrzebny był jeszcze system, który połączy katalog, uwierzytelnianie, administrację komputerami, polityki bezpieczeństwa i zarządzanie dostępem. LDAP uporządkował informacje o użytkownikach, ale nie rozwiązał problemu zarządzania nimi. W kolejnym artykule opowiemy, jak zrobiło to Active Directory.




