Lightweight Directory Access Protocol
Lightweight Directory Access Protocol (LDAP) – protokół przeznaczony do korzystania z usług katalogowych, bazujący na standardzie X.500. Jest to również nazwa usługi katalogowej pozwalającej na wymianę informacji za pośrednictwem TCP/IP.
LDAP jest wykorzystywany praktycznie w adresacji sieci Internet/Intranet w celu zapewnienia niezawodności, skalowalności i bezpieczeństwa danych. W odróżnieniu od X.500 nie potrzebuje ani szerokiego pasma, ani dużej mocy obliczeniowej. Pracuje w oparciu o protokół TCP/IP lub inne połączeniowe usługi transportu. Dane grupowane są w strukturze przypominającej drzewo katalogów. Każdy obiekt jest jednoznacznie identyfikowany poprzez swoje położenie w drzewie, tzw. Distinguished Name (DN).
LDAP w wielu sytuacjach uznawane jest za rozwiązanie lepsze od innych usług katalogowych, ponieważ korzystając z TCP/IP (które działa tylko w warstwie transportowej modelu OSI), daje niezwykle szybkie odpowiedzi na żądania zgłaszane przez klienta[1].
Funkcje protokołu
Klient LDAP ma możliwość wykonania następujących operacji:
- bind – uwierzytelnienie użytkownika, czyli powiązanie jego tożsamości (i obiektu LDAP) z połączeniem sieciowym i sesją. Wymaga potwierdzenia odbioru od serwera, w którym znajduje status żądania klienta. Operacja ta może też przestawić sesję w stan „anonimowy” jeśli podany zostanie pusty DN i hasło. W ramach jednej sesji można wielokrotnie dokonywać operacji bind, zmieniając w ten sposób kontekst uwierzytelniania.
- unbind – zakończenie sesji i połączenia sieciowego LDAP. Nie potrzebuje potwierdzenia. Nie jest (wbrew popularnemu przekonaniu) odwrotnością operacji bind.
- search – zgłoszenie żądania poszukiwanego zasobu, które będzie realizowane przez serwer, co pozwala na pobieranie oraz wyszukiwanie informacji
- modify – umożliwia klientowi modyfikowanie wpisów w bazie danych znajdującej się na serwerze
- add – daje klientowi możliwość zgłoszenia żądania dodania wpisów do katalogu, zmiany istniejącego wpisu oraz zmiany nazwy wpisu.
- delete – umożliwia klientowi żądanie usunięcia wpisów z katalogu.
Wpisy i klasy
Informacje w katalogu są przechowywane w postaci wpisów (ang. Entries). Każdy wpis jest obiektem jednej lub wielu klas. Klasy mogą być dziedziczone. Każda klasa składa się z jednego lub wielu atrybutów, które mogą być opcjonalne lub obowiązkowe.
Istnieje wiele podstawowych typów atrybutów. Atrybuty mogą mieć więcej niż jedną wartość. Można tworzyć własne klasy i atrybuty.
Wszystkie wpisy zorganizowane są w postaci struktury drzewa katalogowego, najczęściej bazującego na politycznej, geograficznej lub organizacyjnej strukturze (struktura hierarchiczna). Są identyfikowane jednoznacznie przez DN (ang. Distinguished Name), mogą być również identyfikowane względem nadrzędnego wpisu (kontekstu) poprzez RDN (ang. Relational Distinguished Name).
Dostęp do danego wpisu chroniony jest poprzez listy kontroli dostępu (ACL, ang. Access Control List). Można tworzyć uprawnienia dla kontekstów, wpisów oraz poszczególnych atrybutów.
Dane zawarte w systemie LDAP mogą być eksportowane/importowane do/z plików tekstowych w specjalnym formacie LDIF (ang. LDAP Data Interchange Format).
Atrybuty
Atrybuty występujące w pliku schematów core.schema:
- UID (ang. User Identifier) – identyfikator użytkownika
- RID (ang. Relative Identifier) – liczba reprezentująca względny identyfikator użytkownika
- CN (ang. Common Name) – imię
- SN (ang. Surname) – nazwisko
- OU (ang. Organizational Unit) – jednostka organizacyjna
- O (ang. Organization) – jednostka lub organizacja
- DC (ang. Domain Component) – składnik nazwy domenowej
- C (ang. Country) – państwo
Uwierzytelnianie i autoryzacja
W LDAP istnieją następujące sposoby uwierzytelnień:
- anonimowe – klient ma prawa „wbudowanego” użytkownika guest,
- na hasło – użytkownik loguje się poprzez podanie DN i hasła,
- z użyciem SSL – następuje wymiana certyfikatów,
- z użyciem PROXY – wykorzystywane przez aplikację, która uwierzytelnia się na hasło użytkownika PROXY, a następnie działa w imieniu zadanego użytkownika. Takie uwierzytelnienie stosuje usługa Active Directory firmy Microsoft, będąca jedną z komercyjnych implementacji LDAP.
Autoryzacja wykonywana jest podczas wykonywania operacji, a nie po uwierzytelnieniu.
LDAPS
Jest to niestandardowe rozszerzenie protokołu LDAP wykorzystujące SSL do szyfrowania komunikacji między serwerem a klientem. Serwery udostępniają połączenie LDAPS na oddzielnym porcie TCP, domyślnie 636. Ponieważ w obecnej (trzeciej) wersji protokołu LDAP zdefiniowany jest – niewymagający osobnego portu – standardowy tryb szyfrowania oparty na funkcji StartTLS, LDAPS jest niepotrzebne.
Przypisy
- ↑ System Administration Guide: Naming and Directory Services (DNS, NIS, and LDAP). Oracle. [dostęp 2013-01-05].