+ All Categories

LDAP

Date post: 15-Jan-2016
Category:
Upload: orsen
View: 55 times
Download: 0 times
Share this document with a friend
Description:
LDAP. Problémové okruhy adresářové služby LDAP Struktura, organizace a identifikace informací Operace nad uloženými informacemi Zabezpečení přístupu k uloženým informacím. Lightweight Directory Access Protocol Adresářová služba. LDAP. K čemu je LDAP určen - PowerPoint PPT Presentation
34
1 LDAP Lightweight Directory Access Protocol Adresářová služba Problémové okruhy adresářové služby LDAP • Struktura, organizace a identifikace informací Operace nad uloženými informacemi Zabezpečení přístupu k uloženým informacím LDAP
Transcript
Page 1: LDAP

1

LDAPLightweight Directory Access Protocol

Adresářová služba

Problémové okruhy adresářové služby LDAP• Struktura, organizace a identifikace informací• Operace nad uloženými informacemi• Zabezpečení přístupu k uloženým informacím

LDAP

Page 2: LDAP

LDAP• K čemu je LDAP určen

– Jeden se základních nástrojů zabezpečení komunikace autentizací

– Je podporou dalších komunikačních služeb (Web, e-mail ..) a vytváření uživatelských sessions.

• K čemu LDAP není určen– K prezentaci dat– K přenosu objemných dat

2LDAP

Page 3: LDAP

LDAP

3LDAP

Page 4: LDAP

4

LDAP• LDAP – otevřený standardní protokol Internetu

pro přístup k adresářovým službám• Podpora lokalizace organizací, osob a dalších

zdrojů (soubory, zařízení …..) - v síti Internet a intranetech

• Původ – protokol DAP ze specifikace X.500 (ITU-T) a ISO/IEC 9594 (ISO)

• Implementace LDAP– Nekomerční – University of Michigan – OpenLDAP

(http://www.openldap.org)– Komerční – Microsoft (Active Directory), Netscape

LDAP

Page 5: LDAP

5

LDAP• Charakteristika protokolu LDAP

– protokol aplikační vrstvy TCP/IP (klient – server)– transport protokolem TCP nebo UDP – port 389– při použití SSL/TLS – port 636 (LDAPS)

• Distribuovaný systém – hlavní adresář a replikace (princip master server a slave server)– synchronizace periodická (replikační démon)

• Implementace - programový balík– Server démon– Replikační démon– Knihovní funkce (pro implementace klienta do různých aplikací)– Samostatné implementace klienta

LDAP

Page 6: LDAP

LDAP• Základní funkční model (klient – server)

6

LDAP klient LDAP server

Databáze

požadavek

odpověď

LDAP operace• Autentizace• Prohledávání databáze• Manipulace s daty databáze

LDAP

Page 7: LDAP

7

LDAP• Současná verze – LDAPv3 (RFC 3377)• Dokumentace – RFC 4510 - 4521• Charakteristika protokolu

– IPv4 a IPv6– Podpora silné autentizace (certifikát) a bezpečnosti informace

(důvěrnost a integrita kryptografickými mechanizmy)– Bezpečný transport (SSL/TLS)– Internacionalizace (podpora Unicode)– Server vrací v odpovědi data nebo odkaz na jiný server (rekurze

nebo iterace)– Podpora nespojované komunikace (nad UDP) pro aplikace s

jednoduchými dotazy – pro urychlení odpovědí

LDAP

Page 8: LDAP

8

LDAP

• LDAP Message – „obálka“ s daty

– messageID - identifikátor zprávy (pro párování request – response)

– protocolOp - typ operace (20 typů request/response)– controls - volitelná položka obsahující rozšiřující data

zprávy

messageID protocolOp controls LDAP dataTCPIP

LDAP

Page 9: LDAP

LDAP• Komunikace • Klient naváže spojení (operace „binding“) – klient musí znát IP adresu +

port LDAP serveru)– Bez autentizace (anonymní) – veřejná data– S autentizací (prokázání identity) – privátní data

• Klient vysílá požadavky – operace nad daty• Server vysílá odpovědi na požadavky

Příklad:

BindRequest - BindResponse

ModifyRequest - ModifyResponse

AddRequest – AddResponse

DelRequest - DelResponse• Klient uzavře spojení (operace „unbinding“)

9LDAP

Page 10: LDAP

LDAP• Forma uložení dat – adresářový model

– Položka – entry– Atribut položky - attribute– Jméno – name– Typ atributu

• int (integer)

• bin (binary data)

• cis (case insensitive string)

• ces (case exact string)

• dn (distinguished name)

• tel (telephone number)

– Hodnota - value 10LDAP

Page 11: LDAP

LDAP• Typ atributu určuje

– Způsob zápisu hodnoty atributu, tj. syntaxi– Způsob zacházení s hodnotou atributu při manipulaci

s daty (add, delete, replace)• „Schema“ - pravidla pro strukturu a obsah adresářového

stromu DIT– Definuje třídy objektů (objectClass) pro všechny

záznamy v adresáři – každý záznam má přiřazen min. jednu třídu - objectClass je povinným atributem

– Definuje množinu povinných a nepovinných atributů (MUST, MAY)

– Definuje jednotlivé atributy11LDAP

Page 12: LDAP

LDAP• Schémata dostupná pro danou implementaci –

např. OpenLDAP

• Jsou připojeny k LDAP démonu prostřednictvím konfiguračního souboru

• Možnost vytváření lokálních schémat - http://www.openldap.org/doc/admin23/schema.html

12

File Description

core.schema OpenLDAP core (required)

cosine.schema Cosine and Internet X.500 (useful)

inetorgperson.schema InetOrgPerson (useful)

misc.schema Assorted (experimental)

nis.schema Network Information Services (FYI)

openldap.schema OpenLDAP Project (experimental

LDAP

Page 13: LDAP

13

attributetype ( 2.5.4.11 NAME ( 'ou' 'organizationalUnitName' ) DESC 'RFC2256: organizational unit this object belongs to' SUP name )

attributetype ( 2.5.4.42 NAME ( 'givenName' 'gn' ) DESC 'RFC2256: first name(s) for which the entity is known by' SUP name )

objectclass ( 2.5.6.5 NAME 'organizationalUnit' DESC 'RFC2256: an organizational unit' SUP top STRUCTURAL MUST ou MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $

x121Address $ registeredAddress $ destinationIndicator $ preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $

telephoneNumber $ internationaliSDNNumber $ facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $

postalAddress $ physicalDeliveryOfficeName $ st $ l $ description ) ) objectclass ( 2.5.6.6 NAME 'person'

DESC 'RFC2256: a person' SUP top STRUCTURAL MUST ( sn $ cn ) MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) ) LDAP

Page 14: LDAP

14

LDAPStromová hierarchie objektů – DIT (Directory Information Tree)

DNS Geografická

uzly

listy

LDAP

Page 15: LDAP

LDAP• Jednoznačná identifikace položek v globálním jmenném

prostoru DIT – DN (Distinguished Name). • Pojem „Relative Distinguished Name“ – jednoznačná

identifikace položky v rámci jedné větve DIT. • Řetězec RDN vytváří DN.

15LDAP

Page 16: LDAP

LDAP• Třída objektu popisuje konkrétní objekt (osobu,

organizaci, ….), má třídu nadřazenou a může mít třídy podřazené

• Definice tříd objektů pro všechny typy položek v adresáři jsou ve schematu

• Tři typy tříd objektů: abstraktní (abstract), strukturální (structural) a doplňkové (auxiliary)

• Hierarchie tříd objektů –

princip dědičnosti

16LDAP

Page 17: LDAP

LDAP• Využití OID (Object Identifier) v LDAP službě –

numerická jednoznačná globální identifikace objektů (http://www.oid-info.com/ )

• Sufix 1.3.6.1.4.1.XXXXX přidělí IANA pro privátní větve adresářové hierarchie (např. Cisco - 1.3.6.1.4.1.9, IBM - 1.3.6.1.4.1.4, Stanford University - 1.3.6.1.4.1.255 …)

• OID 1.3.6.1.4.1.1466.115.121.1 – syntaxe datových formátů LDAPv3 – 1.3.6.1.4.1.1466.115.121.1.5 - Binary syntax

– 1.3.6.1.4.1.1466.115.121.1.6 - Bit string syntax

– 1.3.6.1.4.1.1466.115.121.1.16 - DIT Content Rule syntax

– 1.3.6.1.4.1.1466.115.121.1.50 - Telephone number syntax17LDAP

Page 18: LDAP

LDAP• Globální prostor identifikátorů informačních objektů

18

internet (1)

org (3)iso-ccitt (2)iso (1)ccitt (0)

experimental (3)mgmt (2)

dod (6)

private (4) snmpV2 (6)

security (5)

Internetová SMI

IBM (4) Cisco (9)Stanford Univ. (299)

Privátní OID1.3.6.1.4.1.41.3.6.1.4.1.9……

IANA- registered private enterprises (1)

LDAP

iso-memeber-body (2)

czech_rep (203)usa (840)

directory (1)

Page 19: LDAP

LDAP• Záznam uživatele v /etc/passwdobjectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount' SUP top AUXILIARY

DESC 'Abstraction of an account with POSIX attributes'

MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )

MAY ( userPassword $ loginShell $ gecos $ description ) )

• Záznam uživatele v /etc/shadowobjectclass ( 1.3.6.1.1.1.2.1 NAME 'shadowAccount' SUP top AUXILIARY

DESC 'Additional attributes for shadow passwords'

MUST uid

MAY ( userPassword $ shadowLastChange $ shadowMin $ shadowMax $ shadowWarning $ shadowInactive $ shadowExpire $ shadowFlag $

description ) )

19LDAP

Page 20: LDAP

LDAP• Některé obvyklé atributy:

20

LDIF zkratka

jméno objectClass popis

dc domainComponent dcObject Část doménového jména

c countryName country 2 znakový kód země podle ISO 3166

o organizationName organization Jméno organizace

ou organisationalUnitName organizationUnit Jednotka/útvar organizace

cn commonName personorganizationalPerson

organizationalRolegroupOfNames

applicationProcessapplicationEntity

Obecné jméno

uid userid personorganization

organizationUnit

Identifikační číslo uživatele

mobile mobileTelephoneNumber inetOrgPerson Číslo mobilního telefonu

jpegPhoto inetOrgPerson Fotografie formátu jpgLDAP

Page 21: LDAP

LDAP• Textový formát adresářových položek LDIF (LDAP

Interchange Format)– Pro zápis adresářových položek – Pro zápis příkazů modifikace položek– Pro hromadné změny dat a export a import mezi servery

• Struktura LDIF– Každá položka je reprezentována jedním blokem– Bloky jsou odděleny prázdným řádkem– Struktura bloku:

dn: <rozlišovací jméno>

objectClass: <třída objektu>

<jméno atributu>: <hodnota atributu> ..

21LDAP

Page 22: LDAP

LDAP• Příklad LDIF souboru: base.ldif

dn: dc=lab,dc=net

dc: lab

objectClass: top

objectClass: domain

dn: ou=People,dc=lab,dc=net

ou: People

objectClass: top

objectClass: organizationalUnit

dn: ou=Group,dc=lab,dc=net

ou: Group

objectClass: top

objectClass: organizationalUnit

LDAP 22

Page 23: LDAP

LDAP• Příklad záznamu ze souboru passwd_students_ipi.ldifdn: uid=xhemala0,ou=People,dc=lab,dc=net

uid: xhemala0

cn: Jakub Hemala

sn: Hemala

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

objectClass: posixAccount

objectClass: top

objectClass: shadowAccount

userPassword: {MD5}gWkZi09CZV3f+RzvpGgrKA==

shadowLastChange: 13907

shadowMax: 99999

shadowWarning: 7

loginShell: /bin/bash

uidNumber: 11124

gidNumber: 11000

homeDirectory: /home/xhemala0

LDAP 23

Page 24: LDAP

LDAP• Příklad LDIF záznamu pro uživatele elektronické pošty:dn: uid=john,o=Example Corp,c=US

objectClass: top

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

objectClass: inetLocalMailRecipient

objectClass: xyzMailUser

cn: John Doe

sn: Doe

uid: john

userPassword: {crypt}y2KxtbzMYnApU

mail: [email protected]

mailLocalAddress: [email protected]

24LDAP

Page 25: LDAP

LDAP

• Alternativa LDIF – DSML (Directory Service Markup Language) – Současná verze DSMLv2.0 – XML formát pro adresářová data– Perspektivní způsob zajištění adresářových služeb v

aplikacích vycházejících z webových technologií a Java technologií

25LDAP

Page 26: LDAP

LDAP

Příklad XML-schema pro operaci LDAP „add-request“

<addRequest dn="CN=Alice,OU=HR,DC=Example,DC=COM">

<attr desc="objectclass"><value>top</value></attr>

<attr desc="objectclass"><value>person</value></attr>

<attr desc="objectclass"><value>organizationalPerson</value></attr>

<attr name="sn"><value>Johnson</value></attr>

<attr name="givenName"><value>Alice</value></attr>

<attr name="title"><value>Software Design Engineer</value></attr>

</addRequest>

26LDAP

Page 27: LDAP

LDAP• Bezpečnostní aspekty služby LDAP

– Autentizace (operace bind, unbind, abandon)• Přístup bez autentizace (anonymní) k veřejným informacím• Jednoduchá autentizace – klient zadá DN uživatele + heslo

(je uloženo jako hodnota atributu v příslušné položce)• Přes rozhraní SASL (Simple Authentication and Security

Layer)– Klient předá LDAP serveru DN autentizační entity, autentizační

mechanismus (TLS/SSL) a autentizační data (credentials)– Autentizační modul provede autentizaci klienta

– Autorizace• Na principu ACL – není součástí specifikace LDAP

– Zabezpečení proti odposlechu• Přes vrstvu SSL/TLS - port 636 (LDAPS)

27LDAP

Page 28: LDAP

28

LDAP• Konfigurovatelné oprávnění pro uživatele

– bez povolení přístupu k datům– k porovnání hodnot jmen (LDAPDN)– k vyhledání jmen (informace o jejich existenci)– ke čtení hodnot atributů jmen– k zápisu hodnot atributů jmen – k výmazu jména

• Adresář – soubor položek– položka „entry“ – množina atributů (typ – hodnota/hodnoty)– identifikace atributu – LDAPOID (řetězec oktetů v dekadické

tečkové notaci) nebo LDAPDN (mnemotechnický textový řetězec)

LDAP

Page 29: LDAP

LDAP• Distribuovaná služba LDAP – odkazy a replikace

– Odkazy (referrals)• Obecné – v základní konfiguraci serveru je odkaz na další

server (direktiva refferall – příklad: referral ldap://ldap-services.example.com:10389)

• Pro aktualizaci databáze na straně slave – konfiguraci je direktivou updateref – příklad updateref ldap://ldap-master.example.com)

• Odkazy objektů (objectClass referral) – viz dále

– Replikace• konfigurace master – slave (update z jednoho master serveru

na jeden nebo více slave serverů)• konfigurace multi-master (vzájemný update mezi dvěma nebo

více master servery)29LDAP

Page 30: LDAP

LDAP

30

• Princip řetězení dotazů atributy objectClass referral

Definice pro odkaz ze serveru LDAP1 na LDAP2:dn: o=grommets,dc=example,dc=com objectClass: referral objectClass: extensibleObject o: grommets ref: ldap://ldap2.example.com/o=grommets,dc=example,dc=net

LDAP

Page 31: LDAP

LDAP• Principy replikace master – slave a multi-master

31LDAP

Page 32: LDAP

LDAP• Implementace OpenLDAP

– LDAP servis• LDAP demon – slapd• Konfigurace demona - /etc/openldap/slapd.conf

– Správa databáze– Utility pro manipulaci s adresářovými daty na serveru se

spuštěným demonem - ldapadd, ldapsearch, ldap modify, ldapdelete ….

– Utility pro vytvářeni databáze (LDIF formátu) - slapcat, slapadd, slaptest …

• Další nástroje – LDAP browser32LDAP

Page 33: LDAP

33LDAP

Page 34: LDAP

LDAP• Související systémová nastavení• NSSWITCH – LDAP jako zdroj informací

/etc/nsswitch.confpasswd: files ldap

shadow: files ldap

group: files ldap

• NSCD (Name Service Cache Daemon) - vytváření cache systémové tabulky z ldap odpovědí - /etc/nscd.conf

• PAM_LDAP (autentizační modul) - /etc/pam_ldap.conf• http://etutorials.org/Server+Administration/

ldap+system+administration/

34LDAP


Recommended