AddEdit
operacja ADD wstawia nowy wpis do bazy danych directory-server. Jeśli wyróżniona nazwa w żądaniu add już istnieje w katalogu, wtedy serwer nie doda zduplikowanego wpisu, ale ustawi kod wyniku w wyniku add na dziesiętne 68, „entryAlreadyExists”.
- serwery zgodne z LDAP nigdy nie dereferują wyróżnionej nazwy przesyłanej w żądaniu dodaj podczas próby zlokalizowania wpisu, tzn. wyróżnione nazwy nigdy nie są usuwane z aliasu.,
- serwery zgodne z LDAP zapewnią, że wyróżniona nazwa i wszystkie atrybuty są zgodne ze standardami nazewnictwa.
- wpis do dodania nie może istnieć, a bezpośredni przełożony musi istnieć.
w powyższym przykładzieuid=user,ou=people,dc=example,dc=com
nie może istnieć, aou=people,dc=example,dc=com
musi istnieć.
Bind (authenticate)Edytuj
gdy tworzona jest sesja LDAP, czyli gdy klient LDAP łączy się z serwerem, stan uwierzytelniania sesji ustawiony jest na anonimowy. Operacja BIND określa stan uwierzytelniania sesji.,
Simple BIND i SASL PLAIN mogą wysyłać DN i hasło użytkownika w postaci zwykłego tekstu, więc połączenia wykorzystujące Simple lub SASL Plain powinny być szyfrowane przy użyciu Transport Layer Security (TLS). Serwer zazwyczaj sprawdza hasło pod kątem atrybutu userPassword
w nazwanym wpisie. Anonymous BIND (z pustym DN i hasłem) resetuje połączenie do stanu anonimowego.
SASL (Simple Authentication and Security Layer) BIND zapewnia usługi uwierzytelniania za pośrednictwem szerokiego zakresu mechanizmów, np. Kerberos lub certyfikatu klienta wysyłanego ztls.,
BIND ustawia również wersję protokołu LDAP poprzez wysłanie numeru wersji w postaci liczby całkowitej. Jeśli klient zażąda wersji, której serwer nie obsługuje, serwer musi ustawić kod wyniku w odpowiedzi BIND na kod błędu protokołu. Zwykle klienci powinni używać LDAPv3, który jest wartością domyślną w protokole, ale nie zawsze w bibliotekach LDAP.
BIND musiał być pierwszą operacją w sesji w LDAPv2, ale nie jest wymagany od LDAPv3., W LDAPv3 każde udane żądanie wiązania zmienia stan uwierzytelniania sesji, a każde nieudane żądanie wiązania resetuje stan uwierzytelniania sesji.
DeleteEdit
aby usunąć wpis, klient LDAP przesyła poprawnie utworzone żądanie usunięcia na serwer.,
- żądanie usunięcia musi zawierać wyróżnioną nazwę wpisu do usunięcia
- kontrolki żądania mogą być również dołączone do żądania usunięcia
- Serwery Nie dereferują aliasów podczas przetwarzania żądania usunięcia
- tylko wpisy leaf (wpisy bez podwładnych) mogą być usuwane przez żądanie usunięcia., Niektóre serwery obsługują atrybut operacyjny
hasSubordinates
, którego wartość wskazuje, czy dany wpis ma jakiekolwiek pozycje podrzędne, a niektóre serwery obsługują atrybut operacyjnynumSubordinates
wskazujący liczbę pozycji podrzędnych do wpisu zawierającego atrybutnumSubordinates
. - niektóre serwery obsługują poddtree delete request control pozwalając na usunięcie DN i wszystkich obiektów podległych DN, podlegających kontroli dostępu., Żądania usunięcia podlegają kontroli dostępu, to znaczy, czy połączenie z danym stanem uwierzytelniania będzie mogło usunąć dany wpis, jest regulowane przez specyficzne dla serwera mechanizmy kontroli dostępu.
Szukaj i Porównujedytuj
operacja wyszukiwania służy zarówno do wyszukiwania, jak i odczytywania wpisów. Jego parametry to:
baseObject Nazwa wpisu obiektu podstawowego (lub ewentualnie głównego) względem którego ma być przeprowadzone wyszukiwanie. zakres jakie elementy poniżej obiektu baseObject szukać., Może to byćBaseObject
(szukaj tylko nazwanego wpisu, zwykle używanego do odczytu jednego wpisu),singleLevel
(wpisy bezpośrednio poniżej podstawowego DN) lubwholeSubtree
(cały podztrój zaczynający się od podstawowego DN). kryteria filtrowania stosowane przy wyborze elementów w zakresie., Na przykład filtr(&(objectClass=person)(|(givenName=John)(mail=john*)))
wybierze „persons”(elementy objectClassperson
), gdzie reguły dopasowania dlagivenName
Imail
określają, czy wartości tych atrybutów pasują do twierdzenia filtra. Należy zauważyć, że powszechnym błędem jest to, że dane LDAP uwzględniają wielkość liter, podczas gdy w rzeczywistości reguły dopasowywania i reguły porządkowania określają dopasowanie, porównania i relatywne relacje wartości., Jeśli przykładowe filtry były wymagane, aby dopasować wielkość liter wartości atrybutu, należy użyć rozszerzalnego filtra dopasowania, na przykład(&(objectClass=person)(|(givenName:caseExactMatch:=John)(mail:caseExactSubstringsMatch:=john*)))
derefAliases, czy i jak śledzić wpisy aliasów (wpisy, które odnoszą się do innych wpisów), atrybuty, które atrybuty zwracać w pozycjach wynikowych. sizeLimit, timeLimit Maksymalna liczba wpisów do powrotu i maksymalny czas uruchomienia wyszukiwania. Wartości te nie mogą jednak zastąpić żadnych ograniczeń nałożonych przez serwer na limit rozmiaru i limit czasu. typesOnly zwraca tylko typy atrybutów, a nie wartości atrybutów.,
serwer zwraca pasujące wpisy i potencjalnie kontynuujące odniesienia. Można je zwrócić w dowolnej kolejności. Wynik końcowy będzie zawierał kod wyniku.
operacja porównywania pobiera DN, nazwę atrybutu i wartość atrybutu i sprawdza, czy nazwany wpis zawiera ten atrybut o tej wartości.
ModifyEdit
operacja MODIFY jest używana przez klientów LDAP do żądania, aby serwer LDAP wprowadził zmiany do istniejących wpisów. Próby modyfikacji nieistniejących wpisów nie powiodą się. Żądania modyfikacji podlegają kontroli dostępu zaimplementowanej przez serwer.,
operacja MODIFY wymaga podania nazwy wyróżniającej (DN) wpisu oraz sekwencji zmian. Każda zmiana w sekwencji musi być jedna z:
- add (Dodaj nową wartość, która nie może jeszcze istnieć w atrybucie)
- delete (Usuń istniejącą wartość)
- replace (zamień istniejącą wartość na nową wartość)
LDIF przykład dodawania wartości do atrybutu:
dn: dc=example,dc=comchangetype: modifyadd: cncn: the-new-cn-value-to-be-added-
aby zastąpić wartość atrybutu istniejący atrybut, użyj słowa kluczowego replace., Jeśli atrybut jest wielowartościowy, klient musi określić wartość atrybutu do aktualizacji.
aby usunąć atrybut z wpisu, użyj słowa kluczowego delete i oznacznika typu changetype modify. Jeśli atrybut jest wielowartościowy, klient musi określić wartość atrybutu do usunięcia.
istnieje również rozszerzenie Modify-Increment, które pozwala na zwiększenie wartości atrybutu incrementable o określoną kwotę., W poniższym przykładzie używanie przyrostów LDIF o 5:
dn: uid=user.0,ou=people,dc=example,dc=comchangetype: modifyincrement: employeeNumberemployeeNumber: 5-
gdy serwery LDAP znajdują się w replikowanej topologii, klienci LDAP powinni rozważyć użycie kontrolki post-read do weryfikacji aktualizacji zamiast wyszukiwania po aktualizacji. Kontrola post-read została zaprojektowana tak, aby aplikacje nie musiały wysyłać żądania wyszukiwania po aktualizacji – pobieranie wpisu jest złą formą wyłącznie w celu sprawdzenia, czy aktualizacja działa ze względu na ewentualny model spójności replikacji., Klient LDAP nie powinien zakładać, że łączy się z tym samym serwerem katalogowym dla każdego żądania, ponieważ architekci mogli umieścić Równoważniki obciążenia lub proxy LDAP lub oba między klientami i serwerami LDAP.
Modify DNEdit
Modify DN (przenieś / Zmień nazwę wpisu) pobiera nowy RDN (względną nazwę wyróżniającą), opcjonalnie nowy rodzic ' s DN, i znacznik, który wskazuje, czy usunąć wartości z wpisu, które pasują do starego RDN. Serwer może obsługiwać zmianę nazwy całych podtypów katalogów.,
operacja aktualizacji jest atomic: inne operacje zobaczą albo nowy wpis, albo Stary. Z drugiej strony, LDAP nie definiuje transakcji wielu operacji: jeśli przeczytasz wpis, a następnie zmodyfikujesz go, inny klient może go w międzyczasie zaktualizować. Serwery mogą jednak implementować rozszerzenia, które to obsługują.
operacje Rozszerzoneedytuj
operacja rozszerzona jest ogólną operacją LDAP, która może definiować nowe operacje, które nie były częścią oryginalnej specyfikacji protokołu. StartTLS jest jednym z najważniejszych rozszerzeń., Inne przykłady to anuluj i zmień hasło.
StartTLSEdit
operacja StartTLS ustanawia zabezpieczenie warstwy transportowej (potomek SSL) na połączeniu. Może zapewnić poufność danych (w celu ochrony danych przed obserwacją przez osoby trzecie) i/lub ochronę integralności danych (która chroni dane przed manipulacją). Podczas negocjacji TLS serwer wysyła swój certyfikat X. 509, aby udowodnić swoją tożsamość. Klient może również wysłać certyfikat potwierdzający jego tożsamość. Następnie klient może użyć SASL / EXTERNAL., Korzystając z SASL / EXTERNAL, klient żąda od serwera uzyskania swojej tożsamości z poświadczeń podanych na niższym poziomie (np. TLS). Chociaż technicznie serwer może używać wszelkich informacji o tożsamości ustalonych na dowolnym niższym poziomie, zazwyczaj serwer będzie używał informacji o tożsamości ustalonych przez TLS.
serwery często obsługują również niestandardowy protokół „LDAPS” („Secure LDAP”, powszechnie znany jako „LDAP over SSL”) na oddzielnym porcie, domyślnie 636., LDAPS różni się od LDAP na dwa sposoby:1) po połączeniu klient i serwer ustanawiają TLS przed przesłaniem jakichkolwiek wiadomości LDAP (bez operacji StartTLS) oraz 2) połączenie LDAPS musi zostać zamknięte po zamknięciu TLS.
niektóre biblioteki klienckie „LDAPS” szyfrują tylko komunikację; nie sprawdzają nazwy hosta względem nazwy w dostarczonym certyfikacie.
AbandonEdit
operacja Abandon żąda, aby serwer przerwał operację o nazwie ID wiadomości. Serwer nie musi respektować żądania. Ani Abandon, ani pomyślnie zaniechana operacja nie wysyłają odpowiedzi., Podobna operacja Cancel extended wysyła odpowiedzi, ale nie wszystkie implementacje to obsługują.
UnbindEdit
operacja Unbind porzuca wszelkie zaległe operacje i zamyka połączenie. Nie ma odpowiedzi. Nazwa ma pochodzenie historyczne i nie jest przeciwieństwem operacji Bind.
klienci mogą przerwać sesję po prostu zamykając połączenie, ale powinni użyć Unbind. Unbind pozwala serwerowi z wdziękiem zamknąć połączenie i uwolnić zasoby, które w przeciwnym razie przechowywałby przez jakiś czas, aż do odkrycia, że klient porzucił połączenie., Poleca również serwerowi anulowanie operacji, które można anulować, i nie wysyłanie odpowiedzi na operacje, których nie można anulować.