Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 8768|Odpowiedź: 1

Polecenia OpenLDAP Series (3) OpenLDAP są szczegółowo wyjaśnione

[Skopiuj link]
Opublikowano 23.06.2020 22:34:54 | | | |
Podsumowanie poleceń OpenLDAP

  • ldapsearch: Wyszukaj wpisy w drzewie katalogów OpenLDAP.
  • ldapadd: Dodaje wpisy w drzewie katalogów w formacie LDIF.
  • ldapdelete: Usuwa wpisy drzewa katalogowego OpenLDAP.
  • ldapmodify: Zmodyfikuj wpis drzewa katalogowego OpenLDAP.
  • ldapwhoami: Potwierdza tożsamość użytkowników OpenLDAP.
  • ldapmodrdn: Ocenia wpis DN w drzewie katalogowym OpenLDAP.
  • ldapcompare: Określa, czy wartość DN i określony parametr należą do tego samego wpisu.
  • ldappasswd: Zmodyfikuj wpis użytkownika drzewa katalogów OpenLDAP, aby zresetować hasło.
  • slaptest: Weryfikuj plik slapd.conf lub katalog cn=konfiguracja.
  • slapindex: Tworzy indeks drzewa katalogów OpenLDAP, aby zapewnić efektywność zapytań.
  • slapcat: Konwertuje dane na pliki LDIF dla OpenLDAP.


Polecenie ldapadd

Opcje
opis
-x
Wykonaj prostą autentyzację
-D
DN używany do powiązania serwera
-h
Adres usługi katalogowej
-w
Przypisz hasło DN
-f
Pliki wykorzystujące pliki LDIF do dodawania wpisów


Najpierw przygotowujemy plik test.ldif z następującym poleceniem:



Treść jest następująca:

dn: uid=xzz,ou=Users,dc=itsvse,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
homeDirectory: /home/itsvse_xzz
loginShell: /bin/bash
cn: xzz
uidNumber: 1000
gidNumber: 1000
sn: System Administrator
mail: xzz@itsvse.com
postalAddress: shanghai
mobile: 13788888888



Dodaj polecenia w następujący sposób:



Po wpisaniu hasła zostaje ono pomyślnie dodane, jak pokazano na poniższym rysunku:



Polecenie ldapModify

Polecenie ldapmodify jest stałe i głównie implementuje różne funkcje modyfikacji poprzez pliki konfiguracyjne.



Plik demo.ldif wygląda następująco, co oznacza, że parametr uidNumber użytkownika uid=xzz jest modyfikowany.



Komenda LDAPPASSWD

ldappasswd otwiera połączenie z serwerem LDAP i zmienia hasło wejściowe.

Opcje
opis
-x
Wykonaj prostą autentyzację
-D
DN używany do powiązania serwera
-w
Przypisz hasło DN
-S
Wprowadź hasło po wywołaniu
-s
Pass to ustawić hasło na pass
-a
Pass ustaw stare passwd na pass
-A
Prompt setting of old passwd
-H
odnosi się do serwera do powiązania
-Ja
Użyj metody sesji SASL




Polecenie LDAPSEARCH

Polecenie wyszukiwania LDAP

[root@VM_0_9_centos ~]# ldapsearch -h
ldapsearch: option requires an argument -- 'h'
ldapsearch: unrecognized option -h
usage: ldapsearch [options] [filter [attributes...]]
where:
  filtr LDAP zgodny z RFC 4515
  Lista opisów atrybutów oddzielonych przez odstępy
    które mogą obejmować:
      1.1 Brak atrybutów
      * wszystkie atrybuty użytkownika
      + wszystkie atrybuty operacyjne
Opcje wyszukiwania:
  -a deref jeden z nigdy (domyślnie), zawsze, szukaj lub znajdź
  -Pobiera tylko nazwy atrybutów (bez wartości)
  -b baza DN dla wyszukiwania
  -c tryb ciągłej pracy (nie zatrzymywać się na błędach)
  -E [!] <ext>[=<extparam>] rozszerzenia wyszukiwania (! wskazuje krytyczność)
             [!] domainScope (domain scope)
             !dontUseCopy (Nie używaj Copy)
             [!] mv=<filter> (filtr dopasowanych wartości RFC 3876)
             [!] pr=<size>[/prompt|noprompt] (RFC 2696 wyniki/prompt stronicowany)
             [!] sss=[-]<attr[:OID]>[/[-]<attr[:OID]>...]
                                         (Sortowanie po stronie serwera RFC 2891)
             [!] podwpisy[=true|false] (podwpisy RFC 3672)
             [!] sync=ro[/<cookie>] (RFC 4533 LDAP Sync refreshOnly)
                     rp[/<cookie>][/<slimit>] (refreshAndPersist)
             [!] vlv=<before>/<after>(/<offset>/<count>|:<value>)
                                         (widoki wirtualnej listy LDAPV3-VLV-09)
             [!] deref=derefAttr:attr[,...] [; derefAttr:attr[,...] [; ...]]
             [!] <oid>[=:<b64value>] (sterowanie ogólne; brak obsługi odpowiedzi)
  -f operacje odczytu pliku z 'pliku'
  -Prefiks URL z prefiksem F dla plików (domyślnie: file:///tmp/)
  -l limit czasu (w sekundach, czyli "żadny" lub "maksymalny") dla wyszukiwania
  -L drukuj odpowiedzi w formacie LDIFv1
  -LL drukuje odpowiedzi w formacie LDIF bez komentarzy
  -Oficjalne odpowiedzi LLL w formacie LDIF bez komentarzy
             oraz wersję
  -M włącz Zarządzanie DSA Control IT (-MM dla ustawienia krytycznego)
  -P wersja protokołu (domyślnie: 3)
  -s Zakres jeden bazowy, jedyny, pod(under) (zakres wyszukiwania)
  -S attr sortuj wyniki według atrybutu 'attr'
  -t zapisuje wartości binarne do plików w katalogu tymczasowym
  -tt zapisz wszystkie wartości do plików w katalogu tymczasowym
  -T path zapisuje pliki do katalogu określonego przez ścieżkę (domyślnie: /tmp)
  -u zawiera przyjazne użytkownikowi nazwy wpisów w wyjściu
  -z limit rozmiaru (w pozycjach, czyli "brak" lub "maks") dla wyszukiwania
Typowe opcje:
  -d poziom debugowania LDAP na 'level'
  -D binddn bind bind DN
  -e [!] <ext>[=<extparam>] rozszerzenia ogólne (! oznacza krytyczność)
             [!] assert=<filter> (RFC 4528; ciąg filtrów RFC 4515)
             [!] authzid=<authzid> (RFC 4370; "dn:<dn>" lub "u:<user>")
             [!] łańcuchowanie[=<resolveBehavior>[/<continuationBehavior>]]
                     jeden z "chainingPreferred", "chainingRequired",
                     "zalecane skierowania", "wymagane skierowania"
             [!] manageDSAit (RFC 3296)
             [!] Nie
             Ppolicy
             [!] postread[=<attrs>] (RFC 4527; lista elementów oddzielonych przecinkami)
             [!] preread[=<attrs>] (RFC 4527; lista elementów oddzielonych przecinkami)
             [!] Spokojnie
             [!] Sessiontracking
             porzucić, anulować, zignorować (SIGINT wysyła porzucenie/anulowanie,
             lub ignoruje odpowiedź; jeśli jest krytyczne, nie czeka na SIGINT.
             nie do końca sterowanie)
  -h host LDAP serwer
  -Uniform Resource Identifier(y) H URI LDAP
  -Używam trybu interaktywnego SASL
  -Pokaż, co by się zrobiło, ale nie rób tego tak naprawdę
  -N nie używaj odwrotnego DNS do kanonizacji nazwy hosta SASL
  -Właściwości bezpieczeństwa SASL O props
  -o <opt>[=<optparam>] opcje ogólne
             nettimeout=<timeout> (w sekundach, czyli "żadna" lub "maksymalna")
             ldif-wrap=<width> (w kolumnach lub "no" dla braku wrappingu)
  port -p na serwerze LDAP
  -Q użyj trybu SASL Quiet
  -R realm SASL
  -U authcid SASL authentication identity
  -v uruchamiany w trybie rozłącznym (diagnostyka do standardowego wyjścia)
  -Informacje o wersji druku V (-tylko VV)
  -w passwd do wiązania hasła (dla prostej uwierzytelniania)
  -W prompt do przypisania hasła
  -x Prosta autentyzacja
  -X authzid SASL autoryzacyjnej tożsamości ("dn:<dn>" lub "u:<user>")
  -y plik Czytaj hasło z pliku
  -Mechanizm SASL z mechanizmem Y
  -Z Start TLS request (-ZZ wymaga skutecznej odpowiedzi)

Polecenie brzmi następująco:


Wyniki zapytań są następujące:


Zapytaj wszystkich użytkowników:


Wyjaśnienie rzeczownika LDAP

Klasa obiektowa

Klasa obiektu LDAP to model danych wbudowany w LDAP. Każda objectClass ma własną strukturę danych, na przykład objectClass o nazwie "Phone Book", która na pewno będzie miała wiele wbudowanych atrybutów, takich jak nazwa (uid), numer ID (uidNumber), nazwa jednostki (gid), adres domowy (homeDirectory) itd., jednocześnie istnieje objectClass o nazwie "Classmate Record", która posiada "książkę telefoniczną" Niektóre atrybuty (takie jak uid, homeDirectory) również mają atrybuty nieobecne w "książce telefonicznej" (np. opis itp.).

Wpis

Wpis może być nazywany wpisem, wpis to rekord, podstawowa jednostka pamięci w LDAP; Można ją również traktować jako zbiór DN i zestaw atrybutów. Należy zauważyć, że wpis może zawierać wiele klas obiektów, na przykład zhang3 może istnieć jednocześnie w "Książce telefonicznej" lub w "Rekordzie kolegi z klasy".

DN

Distinguished Name, unikalna wyróżniająca nazwa wpisu w LDAP, pełna pisownia DN: uid=zhang3, ou=People, dc=163, dc=com. Tylko wpis w LDAP jest unikalny dla serwera LDAP.

Filtr wyszukiwania LDAP

Użyj filtra, aby wyszukać LDAP. Filtr zazwyczaj składa się z jednostki takiej jak (attribute=value), na przykład: (&(uid=ZHANGSAN)(objectclass=person)) wskazuje, że wpis LDAP użytkownika wyszukiwania to ZHANGSAN. Innym przykładem jest: (&(|( uid= ZHANGSAN)(uid=LISI))(objectclass=person)), wskazując, że wyszukiwanie użytkownika z identyfikatorem wyszukiwania to ZHANGSAN, czyli LISI; Możesz także użyć * do reprezentowania dowolnej wartości, na przykład (uid=ZHANG*SAN), oraz wyszukiwać wpisy z wartościami uid zaczynające się od ZHANG i kończące na SAN. Ponadto, zgodnie z różnymi zasadami dopasowania atrybutów LDAP, może istnieć następujący filtr: (&(createtimestamp>=20050301000000)(createtimestamp<=20050302000000)), który wskazuje, że czas tworzenia wyszukiwania mieści się między 20050301000000 a 20050302000000.

W Filter "&" oznacza "i"; “!” oznacza "nie"; “|” oznacza "lub". W zależności od reguł dopasowywania możemy użyć "=", "~=", ">=" oraz "<=".

Bazowy DN

Bazowy DN może być "dc=163,dc=com" lub "dc=People,dc=163,dc=com". Ponieważ LDAP jest strukturą danych drzewa, wyszukiwanie rozpocznie się od BaseDN po podaniu basedn, a zakres wyszukiwania możemy określić następująco: tylko przeszukiwanie bazowe (bazowe), bazowe podpoziom bezpośrednie (jeden poziom) oraz bazowe wszystkie podpoziomy drzewa.

Klasa obiektu

W LDAP wpis musi zawierać atrybut objectClass i być przypisany przynajmniej jednej wartości. Każda wartość będzie używana jako szablon do przechowywania danych przez wpis LDAP; Szablon zawiera atrybut, do którego wpis musi być przypisany, oraz opcjonalny atrybut. objectClass ma ścisłą hierarchię, z górą i aliasem na górze. Na przykład klasa obiektu w organialPerson jest podporządkowana osobie, a osoba jest podporządkowana górnej.

objectClass można podzielić na następujące 3 kategorie:
Strukturalne: takie jak osoba i organizacjaJednostka;
Pomocniczy: na przykład extensibeObject;
Streszczenie: Na przykład abstrakcyjna klasa objectClass nie może być używana bezpośrednio.
W schemacie OpenLDAP zdefiniowanych jest wiele klas obiektowych, a nazwy niektórych powszechnie używanych klas obiektów są wymienione poniżej.

  • Relacja
  • pseudonim
  • dcobject
  • domena
  • ipHost
  • Organizacja
  • Rola organizacyjna
  • jednostka organizacyjna
  • osoba
  • organizationalPerson
  • inetOrgPerson
  • Osoba mieszkalna
  • posixAccount
  • posixGroup


ObjectClass to zbiór atrybutów, a LDAP kapsuluje wiele powszechnych obiektów w ludzkich organizacjach i zapakowuje je do klas obiektów. Na przykład personel obejmuje nazwisko (sn), imię (cn), numer telefonu (telefonNumber), hasło (userPassword) oraz inne atrybuty, a organizationalPerson to klasa dziedziczenia osoby; oprócz powyższych atrybutów obejmuje także tytuł, kod pocztowy (postalCode) oraz adres pocztowy (postalAddress) oraz inne cechy.

Typy przedmiotów można łatwo definiować za pomocą klas obiektów. Każdy wpis może bezpośrednio dziedziczyć wiele klas obiektów, które dziedziczą różne właściwości. Jeśli istnieją 2 klasy obiektów o tym samym atrybucie, po odziedziczeniu wpisu zachowa się tylko jeden atrybut. Klasa obiektów określa również, które właściwości są podstawową informacją i muszą zawierać (Must Required): które właściwości są informacją rozszerzoną i mogą zawierać (May lub Optional).

Wyróżnia się trzy typy klas obiektów: strukturalne, abstrakcyjne i pomocnicze. Typy strukturalne to najbardziej podstawowe typy, które określają podstawowe właściwości ciała obiektu, a każdy wpis należy do jednej klasy obiektów strukturalnych i należy do niej. Typy abstrakcyjne mogą być typami strukturalnymi lub innymi rodzicami typów abstrakcyjnych, które organizują wspólne części właściwości obiektów, nazywane szablonami dla innych klas, a wpisy nie mogą bezpośrednio integrować abstrakcyjnych klas obiektów. Typ pomocniczy określa rozszerzone właściwości obiektu. Chociaż każdy pręt należy tylko do jednej klasy obiektów strukturalnych, może jednocześnie należeć do wielu klas obiektów pomocniczych.

Sama klasa obiektu może dziedziczyć się nawzajem, więc klasa korzeniowa klasy obiektu jest najwyższą abstrakcyjną klasą obiektu. Biorąc za przykład najczęściej używane typy ludzi, ich relacja dziedziczenia jest przedstawiona na rysunku:



Wbudowane atrybuty accout to: userid, description, host, localityName, organizationName, organizationalUnitName, zobacz również;

Wbudowane atrybuty inetOrgPerson to cn, sn, description, seeAlso, telephoneNumber, userPassword, destinationIndicator, facsimileTelephoneNumber, internationaliSDNNumber, l, ou, physicalDeliveryOfficeName、postOfficeBox、postalAddress、postalCode、preferredDeliveryMethod、registeredAddress、st、street、telephoneNumber、teletexTerminalIdentifier、 telexNumber、title、x121Address、audio、usinessCategory、carLicense、Department Number、is play Name、employeeNumber、employeeType、givenName、HomePhone、HomePostAddress、iûinitials、 jpegPhoto, labeledURI, mail, manager, mobile, o, pager, photo, preferredLanguage, roomNumber, secretary, uid, userCertificate itd.;

Jak widać, accout ustawia tylko kilka niezbędnych i przydatnych atrybutów (to zdecydowanie wystarczy, by zweryfikować logowanie), podczas gdy inetOrgPerson ma wiele wbudowanych atrybutów, takich jak numer telefonu, numer telefonu komórkowego, adres ulicy, numer e-mail, numer pokoju, awatar, menedżer, numer pracownika itd.

Dlatego podczas konfiguracji LDAP zaleca się ustawienie typu objectClass jako accout, jeśli służy to tylko weryfikacji logowania, oraz ustawienie objectClass na inetOrgPerson, jeśli chcesz stworzyć dużą i kompleksową skarbnicę informacji o pracownikach

Tutaj zwykle używam 'inetOrgPerson', 'posixAccount', 'shadowAccount'.

Wymagane atrybuty konta to userid, natomiast wymagane atrybuty posixAccount to cn, gidNumber, homeDirectory, uid, uidNumber; Wymaganą cechą shadowAccount jest uid, a opcjonalne atrybuty to shadowExpire, shadowInactive, shadowMax, shadowMin, userPassword itd. Najwyższą wymaganą własnością jest objectClass (widać, że top i inne objectClasses są relacjami dziedziczonymi).

Atrybut

Atrybuty są podobne do zmiennych w programowaniu i mogą być przypisane. Wiele powszechnie używanych atrybutów jest deklarowanych w OpenLDAP (użytkownicy mogą również definiować własne atrybuty). Znaczenia Common Attribute są następujące:

  • c: Country.
  • CN: Nazwa zwyczajowa, która odnosi się do nazwy obiektu. Jeśli odnosi się do osoby, należy użyć pełnego imienia i nazwiska.
  • DC:Domain component, często używany do określenia części nazwy domeny.
  • givenName: odnosi się do imienia osoby, a nie do nazwiska.
  • l: Odnosi się do nazwy miejsca, takiej jak nazwa miasta lub innego obszaru geograficznego.
  • poczta: adres e-mail.
  • o:organizationName, która odnosi się do nazwy organizacji.
  • ou:organizationalUnitName, która odnosi się do nazwy jednostki organizacyjnej.
  • SN: Nazwisko, odnosi się do nazwiska danej osoby.
  • Numer telefonu: Numer telefonu, który powinien zawierać kod kraju, w którym się znajduje.


Wskazówka: objectClass to specjalny atrybut, który zawiera inne używane atrybuty, a także samego siebie.

Dla różnych klas obiektów zwykle istnieją wymagane wartości właściwości oraz opcjonalne wartości właściwości. Na przykład można użyć klasy objectClass osoby, aby reprezentować wpis użytkownika w systemie, a użytkownik w systemie zwykle musi mieć jakieś informacje, takie jak imię i nazwisko, numer telefonu, hasło, opis itp. Jak pokazano na poniższym obrazku, dla osoby ustaw imię i nazwisko użytkownika za pomocą cn i sn, co jest obowiązkowe, podczas gdy inne atrybuty są opcjonalne.

Poniżej znajduje się lista niektórych często stosowanych wymagań objectClass, które są wymagane.

  • account:userid。
  • organizacja:o。
  • Osoba: CN i SN.
  • OsobaOrganizational: To samo co osoba.
  • organizationalRole:cn。
  • organizationUnit:ou。
  • posixGroup:cn、gidNumber。
  • posixAccount:cn、gidNumber、homeDirectory、uid、uidNumber。

(Koniec)




Poprzedni:OpenLDAP: Nie udało się uruchomić OpenLDAP Server Daemon.
Następny:Angular 9 Series (dziewięć) #id selektor zastosowany na stronie
Opublikowano 19.05.2023 11:23:09 |
uczony
Dzięki za podzielenie się~~~
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com