LDAP - kalkowski.name

Transkrypt

LDAP - kalkowski.name
LDAP
Grzegorz Bandur
Jakub Stasiński
Historia
W 1980 roku Międzynarodowy Związek Telekomunikacyjny (ITU) w 1980
rok stowrzył specyfikacje X500.
Usługi katalogowania X.500 używały X.500 Directory Access Protocol
(DAP), wymagała ona protokołów Open Systems Interconnection (OSI).
LDAP był początkowo lekkim protokołem alternatywnym korzystającym z
TCP/IP. Został nazwany lekkim z powodu mniejszych wymagań
sieciowych niż jego poprzednicy(DAP).
Wstęp
LDAP to skrót od terminu „Lighweight Directory Access Protocol”, czyli „Lekki
Protokół Dostępu do Usług Katalogowych”.
LDAP można potraktować jak zwykłą bazę danych: Są w niej rekordy, w
rekordach są pola z danymi, można dopisywać i kasować rekordy oraz
wyszukiwać rekordy spełniające podane kryteria. Są jednak spore róznice
miedzy zwykłą bazą a LDAPem:
●
●
baza LDAP jest heterogeniczna
baza LDAP jest hierarchiczna (drzewiasta)
O protokole
Klient łączy się z serwem LDAP Directory System Agend (DSA).
Klient może wykonać następujące operacje:
● StartTLS
● bind
● unbind
● search
● modify
● add
● delete.
● Compare
● Abandon
● Extended Operation
Dodatkowo serwer moze zwracać notyfikacje nie bedace odpowiedziami na
żądania.
OpenLDAP
OpenLDAP to, należąca do Wolnego Oprogramowania, implementacja
protokołu LDAP (wersji 2 i 3). Zawiera serwer usług katalogowych, biblioteki
oraz klientów do komunikacji z serwerem. Oprogramowanie przeznaczone jest
na Linuksa oraz systemy uniksopodobne, można też użwyać na Microsoft
Windows (2000, XP).
Rozwijany jest przez OpenLDAP Project (projekt założony w 1998 roku przez
Kurt D. Zeilenga), OpenLDAP wywodzi się z U-M LDAP rozwijanego na
początku przez Uniwersytet Michigan.
AD a LDAP
Active Directory jest usługą katalogową (hierarchiczna baza danych) dla
systemów Windows.
Zapewnia mozliwość uwierzytelniania, autoryzacji obiektów (np. użytkowników,
komputerów), którzy mają prawo lub nie dostępu do innych obiektów Active
Directory (dowolnych, np. kontenera lub obiektu użytkownika) oraz do zasobów
innych, w tym dyskowych, sieciowych itd.
LDAP (Lightweight Directory Access Protocol) jest protokołem używaym przez
usługi takie jak AD do komunikacji. LDAP jest znacznie starszy od Active
Directory i nie jest rozwiązaniem należącym jakiejkolwiek firmy. Ogromna część
Active Directory pochodzi z LDAP.
Adresowanie rekordów
LDAP do wskazania rekordów wykorzystuje ścieżkę do rekordu(distinguished
name, DN). W obrębie jednego poziomu hierarchii (jednego rekordu
nadrzędnego) stosowany jest skrót, nazwa rekordu (relative distinguished
name, RDN).
Przykładowy adres LDAP to np:
„cn=Jarek,ou=People,dc=asl,dc=com”
Adresowanie rekordów
„cn=Jarek,ou=People,dc=asl,dc=com”
Podana nazwa składa się z 4 części, czytanych od prawej do lewej i
oddzielonych przecinkami. Każda część ma postać typ=nazwa. Typ określa
charakter danej opisanej nazwą:
● cn – nazwa rekordu (od common name) – to jest najbliższe kluczowi
głównemu.
● dc – fragment adresu DNS podmiotu opisanego DN, czyli asl.coml staje się
dc=asl, dc=com (od directory context)
Możliwe są jeszcze:
● o – nazwa (od organization)
● ou – oddział (od organizational unit)
● c – kraj (od country)
● l – miasto (od locality)
Adresowanie rekordów
Ostatnia część DN, wspólna dla wszystkich rekordów w bazie LDAP to tzw
adres bazowy (base distingushed name). Może być konstruowany na kilka
sposobów:
● od adresu DNS firmy: dc=asl,dc=com (forma preferowana) bądź o=asl.com
(forma przestarzała)
● od nazwy: o=Super asl,c=pl
Przykład
Rozwiązanie z przykładem faktuy VAT.
LDAP
● jest drzewo ogólnych danych firmy dc=Firma,dc=pl
● jest tam poddrzewo ‚faktury’ ou=faktury,dc=Firma,dc=pl
● każda faktura jest rekordem zawierającym dane faktury – datę, numer,
dane kontrahenta, itd. cn=FV01/13,ou=faktury,dc=Firma,dc=pl
● szczegóły faktury są podrekordami danej faktury: zawierają towar, ilość,
cenę, podatek cn=1,cn=FV01/13,ou=faktury,dc=Firma,dc=pl
Instalacja
Instalujemy:
apt-get install slapd
Konfiguracja:
dpkg-reconfigure -plow slapd
Omit OpenLDAP server configuration? No
DNS domain name: asl.com
Organization name? asl.com
Administrator password: password
Confirm password: password
Database backend to use: HDB
Do you want the database to be removed when slapd is purged? yes
Move old database:yes, wazne jesli istnieje juz backup całość sie nie
powiedzie
Allow LDAPv2 protocol? No - już przestarzałe
Instalacja
Ldap-utils zawiera szereg narzędzi, które mogą być używane do wykonywania
zapytań na serwerze LDAP.
apt-get install ldap-utils
Podstawowe komendy:
ldapsearch - wyszukiwanie i wyświetlanie wpisów
manipulować wpisy
ldapmodify - zmodyfikować wpis
ldapadd - dodać nowy wpis
ldapdelete - usuń i wejście
ldapmodrdn - zmień wpis
ldappasswd - zmienić hasło do wejścia * Uwaga: To nie jest zamiennikiem
dla passwd
Inne operacje
ldapwhoami: wyświetlacz z którym wpis jestem związany z serwerem
ldapcompare porównanie pola w wejściu do pewnej wartości
Instalacja
Modyfikacja " /etc/ldap/ldap.conf"
"
ldap_version 3
URI ldap://localhost:389
SIZELIMIT 0
TIMELIMIT 0
DEREF never
BASE dc=asl, dc=com
"
Przykład search:
ldapsearch -b'dc=asl,dc=com’ -x
Dodanie organizationalUnit
W pliku /var/tmp/ou.ldif :
"
dn: ou=People,dc=asl,dc=com
ou: People
objectClass: organizationalUnit
dn: ou=Group,dc=asl,dc=com
ou: Group
objectClass: organizationalUnit
"
invoke-rc.d slapd stop
slapadd -c -v -l /var/tmp/ou.ldif
invoke-rc.d slapd start
ldapsearch -b'ou=people,dc=asl,dc=com' -x
Tworzenie użytkownika
tworzymy plik: /var/tmp/user1.ldif plik
Wgrywamy do bazy poleceniem:
ldapadd -c -x -D cn=admin,dc=asl,dc=com -W -f /var/tmp/user1.ldif
Wybieramy Hasło dla Jarka
ldappasswd -x -D cn=admin,dc=asl,dc=com -W -S uid=Jarek,ou=people,
dc=asl,dc=com
Szukanie nowo utworzonego użytkownika
ldapsearch -b'dc=grzegorz,dc=jakub' -x 'uid=jarek'
Konfiguracja NSS
Gdy mamy utworzonego użytkownika w LDAP, powinniśmy pozwolić, aby
system go zobaczył. Na przykład, załóżmy przetestujmy czy istnieje Jarek.
id root
uid=0(root) gid=0(root) groups=0(root)
id Jarek
id: Jarek: No such user
Konfiguracja NSS
Aby system zobaczył konta LDAP, należy zainstalować i skonfigurować libnssldap.
apt-get install libnss-ldap nscd
Odpowiedzi na debconf
LDAP server Uniform Resource Identifier: ldap://localhost/ (Note the "ldap://",
NOT "ldapi://"!)
Distinguished name of the search base: dc=asl,dc=com
LDAP version to use: 3
Does the LDAP database require login? No
Special LDAP privileges for root? No
Make the configuration file readable/writeable by its owner only? No
Make local root Database admin. No
Does the LDAP database require login? No
Local crypt to use when changing passwords. crypt
Konfiguracja NSS
W pliku :/etc/libnss-ldap.conf.
base dc=asl,dc=com
uri ldap://localhost/
Oraz w /etc/nsswitch.conf podmieniamy na:
passwd:
files ldap
group:
files ldap
shadow:
files ldap
hosts:
networks:
files dns ldap
files ldap
Zatrzymaj nscd, demona buforowania Name Service, ale zostaw uruchamianie
przy następnym starcie systemu:
sudo invoke-rc.d nscd stop
W konću Jarek jest widoczny:
id jarek
uid=10000(jarek) gid=20000(students) groups=20000(students)
Dziękujemy za uwagę

Podobne dokumenty