Lightweight Directory Access protocol (LDAP) Projektování distribuovaných systémů Lekce 16 Ing. Jiří ledvina, CSc.

Slides:



Advertisements
Podobné prezentace
Základy databázových systémů
Advertisements

 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
SÍŤOVÉ SLUŽBY DNS SYSTÉM
ZMVŠ. Bezpečnost Windows 8 Dynamic Access Control (DAC) Volně – Dynamický kontrolní přístup) rozšíření NTFS access control listů (ACL) o složitá pravidla.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Protokol LDAP autor:Zdeněk Jonáš předmět:PSI un:A01144.
Databáze Jiří Kalousek.
Adresářová služba Active directory
D ATOVÉ MODELY Ing. Jiří Šilhán. D ATABÁZOVÉ SYSTÉMY Patří vedle textových editorů a tabulkových kalkulátorů k nejrozšířenějším představitelům programového.
VLAN Projektování distribuovaných systémů Lekce 2 Ing. Jiří ledvina, CSc.
Internet, WWW, HTML a spol.. Hlavní zásady inženýrství reprodukovatelnost měřitelnost a parametrizovatelnost přenositelnost typizace a standardizace dokumentace.
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Protokol TCP/IP a OSI model
Aplikace VT v hospodářské praxi internetové technologie Ing. Roman Danel, Ph.D. VŠB – TU Ostrava.
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost Číslo projektu: CZ.1.07/1.5.00/ Číslo materiálu: VY_32_INOVACE_PSK-4-14.
CZ.1.07/1.4.00/ VY_32_INOVACE_169_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
Relační databáze.
Databázové systémy. Práce s daty Ukládání dat Aktualizace dat Vyhledávání dat Třídění dat Výpočty a agregace.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Informatika pro ekonomy II přednáška 10
Celní služby 2000 Radek Sedláček TranSoft a.s Radek Sedláček TranSoft a.s
Dokumentace objektů a zveřejnění funkcí
Návrh a tvorba WWW Přednáška 5 Úvod do jazyka PHP.
Internet.  Celosvětový systém propojených počítačů  Funkce  Sdílení dat  Elektronická pošta.
Shrnutí A – Principy datové komunikace B – TCP/IP 1.
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
CZ.1.07/1.4.00/ VY_32_INOVACE_168_IT 9 Výukový materiál zpracovaný v rámci projektu Vzdělávací oblast: Informační a komunikační technologie Předmět:Informatika.
Asynchronous Transfer Mode Projektování distribuovaných systémů Lekce 1 Ing. Jiří ledvina, CSc.
Autentizace a účty v AD. Autentizace stanice v AD.
Databázové modelování
SAMBA umožňuje linuxovému systému sdílení prostředků a služeb prostřednictvím sítě používá SMB (server message block) protocol - identický protokolu.
Databázové systémy Informatika pro ekonomy, př. 18.
Copyright (C) 1999 VEMA počítače a projektování, spol. s r.o.
Selektivní šifrování dat v databázích
1 Protokol HTTP (Hypertext Transfer Protocol) HTTP je základem systému „World Wide Web“ (WWW) - Web … HTTP – jednoduchý protokol aplikační vrstvy, transport.
Klomfar Petr.  Adresářová služba  specializovaná databáze optimalizovaná pro čtení a vyhledávání.  popisující objekt pomocí atributů. Na rozdíl od.
Internet.
Internetové protokoly Autor: Milan Bílek. Internet Internet je celosvětová systém propojených počítačových sítí. Počítače mezi sebou komunikují pomocí.
Protokoly úrovně 3 nad ATM Projektování distribuovaných systémů Lekce 2 Ing. Jiří ledvina, CSc.
VPN - Virtual private networks Přednášky z Projektování distribuovaných systémů Ing. Jiří Ledvina, CSc.
Komunikace v DS Přednášky z distribuovaných systémů Ing. Jiří Ledvina, CSc.
Protokol LDAP.
Metro Ethernet Services Projektování distribuovaných systémů Ing. Jiří ledvina, CSc.
Lightweight Directory Access protocol (LDAP) Projektování distribuovaných systémů Lekce 16 Ing. Jiří ledvina, CSc.
Internet Key Exchange Projektování distribuovaných systémů Ing. Jiří ledvina, CSc.
VoIP Voice over IP Ing. Jiří Ledvina, CSc. Projektování distribuovaných systémů.
Správa MS Windows II Vladimír Pečený.
PV175 SPRÁVA MS WINDOWS I Podzim 2008 Síťové služby Administrátor systému: Pracovní doba administrátora se sestává z výměny magnetických pásek v zálohovacích.
E- MAIL Ing. Jiří Šilhán. E LEKTRONICKÁ POŠTA NEBOLI vývoj od počátku sítí – původní návrh pouze pro přenos krátkých textových zpráv (ASCII) základní.
Překlad jmen, instalace AD
Bezpečnostní popisovače ACL. Popisovač zabezpečení  Popisovač zabezpečení – sada informací o řízení přístupu - zabezpečení, spojené se zabezpečeným objektem.
© 2016 InterSystems Corporation. All rights reserved. Integrace OAuth 2.0 a OpenID Connect.
 = jedná se o vzájemné propojení lokálních počítačových sítí pomocí vysokorychlostních datových spojů  vznikl spojením mnoha menších sítí  v každé.
Bezpečnostní technologie I IPSec Josef Kaderka Operační program Vzdělávání pro konkurenceschopnost Projekt: Vzdělávání pro bezpečnostní systém státu (reg.
Unix a Internet 9. Samba © Milan Keršlágerhttp:// Obsah: ●
Databáze ● úložiště dat s definovaným přístupem ● typy struktury – strom, sekvence, tabulka ● sestává z uspořádaných záznamů ● databáze – struktura – záznam.
FTP-SSL FTP-SSL Martin Dušek Martin Fúsek Josef Vlček.
Transportní vrstva v TCP/IP Dvořáčková, Kudelásková, Kozlová.
Shrnutí A – Principy datové komunikace B – TCP/IP 1.
Management počítačových sítí
Bezpečnostní technologie I
NÁZEV ŠKOLY: S0Š Net Office, spol. s r.o, Orlová Lutyně
Informatika pro ekonomy přednáška 8
Číslo projektu OP VK Název projektu Moderní škola Název školy
TELNET, FTP.
Přednášky z distribuovaných systémů
Algoritmizace a datové struktury (14ASD)
Distribuovaný systém souborů
Transkript prezentace:

Lightweight Directory Access protocol (LDAP) Projektování distribuovaných systémů Lekce 16 Ing. Jiří ledvina, CSc.

Projektování distribuovaných systémů (72 stran)2 Agenda Motivace Pochopení LDAP Informační struktura Jména Funkce a operace Bezpečnost Model protokolu Mapování na transportní služby Protokol kódování Diskuse

Projektování distribuovaných systémů (72 stran)3 Adresáře Off-line adresáře – telefonní seznamy, … On-line adresáře – udržované v elektronické podobě a také přístupné v elektronické podobě Vlastnosti on-line adresářů Dynamické Vkládání, mazání, aktualizace záznamů Flexibilní Ukládání různých typů informací Text, video, audio, certifikáty, … Informace o nastavení aplikace Zabezpečené ACL – Access Control List – práva přístupu uživatelů Personalizovatelné Možnost uchovat specifické informace pro jednoho uživatele

Projektování distribuovaných systémů (72 stran)4 Typy adresářů podle použití Aplikační adresáře (IBM Lotus Notes, …) Vlastní systém ukládání záznamů, orientované na aplikaci Adresáře síťových OS Microsoft Active Directory (LDAP, Kerberos, CIFS – Common Interface File Systém) Novell Directory Services NIS – Network Information Services (SUN) Účelové adresáře DNS Univerzální standardizované adresáře X.500, LDAP

Projektování distribuovaných systémů (72 stran)5 Adresářové služby a databáze Databáze jsou složitější Složité dotazy Propojení mnoha tabulek Možnost realizace transakcí Srovnatelný poměr mezi čtením a ukládáním dat Velká režie Adresářové služby Jednoduché dotazy Převládá čtení nad zápisy Nepožadují transakční zpracování Decentralizované uložení informace Možnost replikací

Projektování distribuovaných systémů (72 stran)6 Motivace a vývoj Zvyšování spolehlivosti síťových zařízení Potřeby v informacích Funkčnost Jednoduchost použití Administrace Konzistentní organizace Integrita Důvěrnost

Projektování distribuovaných systémů (72 stran)7 X.500 X.500 standard. CCITT 1988 Refer ISO 9594 – X.500-X.521 of 1990

Projektování distribuovaných systémů (72 stran)8 Základní prvky X.500 DIT – Directory Information Tree Adresářový strom Hierarchická struktura Listy obsahují informaci (data) Uzly uvnitř stromu informační vazby DN – Distinguished Name Jméno použité pro rozlišení informace (od kořene stromu) Sestává z relativních DN (RDN) – rozlišení v podstromu (větvi stromu)

Projektování distribuovaných systémů (72 stran)9 DN a RDN

Projektování distribuovaných systémů (72 stran)10 X.500 Organizace položek adresáře do hierarchického stromu Výkonné prostředky pro vyhledávání Často používán pro propojení nekompatibilních systémů Používá DAP pro komunikaci klientů a serverů DAP (App. Layer) požaduje celý OSI zásobník Příliš obtížné pro malé aplikace Mnoho informací uloženo na mnoha serverech včetně replik

Projektování distribuovaných systémů (72 stran)11 X.500 Síťová aplikace typu server/klient DUA – Directory User Agent DSA – Directory Server Agent Předpokládá připojení klienta k libovolnému serveru, který má vazby na X.500 servery Klientovi se databáze jeví jako kompaktní (obdoba DNS) Princip modifikace informace tam, kde vzniká Dotazování mezi X.500 servery (různé způsoby dotazování) Protokol pro komunikaci klient/server – DAP (Directory Access Protocol Protokol pro komunikaci mezi servery (? SAP – Server Access protocol)

Projektování distribuovaných systémů (72 stran)12 Přechod DUA X.500 na LDAP X.500 – (DAP + OSI) - standardizace ITU 1980 LDAP – (TCP/IP) – 1993 Tim Howes (University of Michigen) Steve Kille (Isode Limited) Wengyik Yeong (Performance Systems LDBP Lightweight Directory Browsing Protocol ASN.1 + LBER Lightweight BER (zjednodušení zpracování při zachování transparentnosti reprezentace dat BER, ale textuální reprezentace

Projektování distribuovaných systémů (72 stran)13 Přechod DUA X.500 na LDAP Původně představa vytvoření brány mezi jednoduchým klientem a protokolem DAP (komunikace DUA/DSA) Později náhrada této brány vlastním serverem + úložištěm dat Komunikace DAP nahrazena LDAP Nyní protokol LDAP verze 2 nebo 3

Projektování distribuovaných systémů (72 stran)14 LDAP Server

Projektování distribuovaných systémů (72 stran)15 Adresářový strom a adresářová struktura

Projektování distribuovaných systémů (72 stran)16 Co je to LDAP? Lightweight Directory Access Protocol Používá se pro přístup k informaci a pro její úpravu v adresářích budovaných na X.500 model Specifikace definuje obsah zpráv přenášených mezi klientem a serverem. Zahrnuje operace pro vytváření a ukončování spojení se serverem

Projektování distribuovaných systémů (72 stran)17 Pochopení LDAP Zjednodušená varianta k DAP Používá TCP/IP zásobník místo zásobníku ISO/OSI Některé funkce zjednodušuje a jiné vynechává … K reprezentaci dat používá řetězce místo DAP notace ASN.1

Projektování distribuovaných systémů (72 stran)18 Komponenty LDAP Standardizovaný přístup k adresářovým službám Zahrnuje 4 modely Komponenty LDIF – LDAP Data Interchange Format Standardizovaný formát pro výměnu dat (BER, LBER) LDAP server LDAP klient LDAP API – rozhraní pro vývoj vlastních aplikací C, PERL, Java, CGI, …

Projektování distribuovaných systémů (72 stran)19 LDAP schéma Množina definic pravidel nad adresářovým stromem Definuje třídy objektů (objectclass) Definuje množinu povinných a nepovinných atributů Definuje jednotlivé atributy

Projektování distribuovaných systémů (72 stran)20 Příklad - OID organizace objectclass ( NAME 'exampleObject' DESC 'example.org objects' SUP top AUXILIARY MUST displayName MAY uniqueIdentifier )

Projektování distribuovaných systémů (72 stran)21 Příklad - OID organizace objectclass ( NAME 'exampleObject' DESC 'example.org objects' SUP top AUXILIARY MUST displayName MAY uniqueIdentifier ) objectclass ( NAME 'examplePerson' DESC 'example.org people' SUP exampleObject AUXILIARY MAY ( personalTitle $ ou )) objectclass ( NAME 'exampleGroup' DESC 'example.org group' SUP top STRUCTURAL MUST displayName MAY ( member $ description $ owner ))

Projektování distribuovaných systémů (72 stran)22 Příklad adresářové položky (LDIF) dn: cn=John Doe,dc=example,dc=comcn – uzel RDN dc – rodičovské DN dn – Domain Name, dc – Domain Component, cn – Canonical Name cn: John Doe givenName: Johnatribut sn: Doe atribut telephoneNumber: telephoneNumber: mail: manager: cn=Barbara Doe,dc=example,dc=com objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top

Projektování distribuovaných systémů (72 stran)23 LDAP Informační struktura Struktura informace uložená v LDAP adresáři Jmenná struktura Jak je informace uložena a pojmenována. Funkční struktura a operace Popisuje jak mohou být operace prováděny nad informacemi uloženými v LDAP adresáři Bezpečnost Popisuje jak může být informace chráněna před neautorizovaným přístupem

Projektování distribuovaných systémů (72 stran)24 LDAP uložení informace

Projektování distribuovaných systémů (72 stran)25 LDAP uložení informace Každý atribut je popsán typem/syntaxí a hodnotou Může definovat jak se budou hodnoty chovat během operací prohledávání adresářů Syntax může být: bin, ces, cis, tel, dn, atd. bin – binární informace ces – case exact string (directory string), při porovnávání rozlišuje malá/velká písmena tel – telefonní číslo, reprezentace jako řetězec, mezery jsou ignorovány dn – rozlišující jméno (distinguished name) Generalized time – rok, měsíc, den a čas reprezentovány jako tisknutelný řetězec Postal address – poštovní adresa s řádky oddělenými znakem ‘$’

Projektování distribuovaných systémů (72 stran)26 Rozumné strukurální třídy dle RFC Není třeba vymýšlet vlastní třídy Lépe je využít to, co je hotové a kombinovat Případně rozšiřovat existující třídy o vlastní atributy

Projektování distribuovaných systémů (72 stran)27 Obecné atributy LDAP Atribut, aliassyntaxpopispříklad commonName, cncisObecné jméno položkyJohn Smith Surname, sncisPříjmení osobySmith telephoneNumbertelTelefonní číslo organizationalUnitN ame, ou cisJméno organizaceUWB ownerdn DN osoby vlastnící položku cn=John Smith, o=UWB, c=cz organization, ocisJméno organizaceUWB jpegPhotobinFoto v JPEG formátu Smithova fotografie

Projektování distribuovaných systémů (72 stran)28 LDAP uložení informace Každá položka popisuje objekt (Class) Osobu, server, zařízení, atd. Příklad položky: InetOrgPerson(cn, sn, ObjectClass) Příklad atributů: cn (cis), sn (cis), telephoneNumber (tel), ou (cis), owner (dn), jpegPhoto (bin)

Projektování distribuovaných systémů (72 stran)29 Identifikátory objektů Globální OID Unikátní v celém světě ID globálních objektů přidělovány centrální autoritou (IANA) OID vychází ze záznamu tečkovou notací (čísla, jména) OID = x x je přípona, kterou přiděluje IANA ZČU má přiděleno číslo Další podskupiny si organizace určuje sama

Projektování distribuovaných systémů (72 stran)30 Soubor informací o objektech Záznamy – informace o objektech Objektová třída – množina atributů Atributy jsou popsány vlastnostmi Mohou nabývat jednu nebo více hodnot Forma reprezentace dat (syntaxe) – RFC 2252 Definují sadu pravidel Atributy mají jedinečný prefix (tečková notace)

Projektování distribuovaných systémů (72 stran)31 Syntaxe některých typů NázevOIDPopis binary BER/DER boolean boolean hodnota distinguishedName DN directoryString UTF-8 řetězec IAString ASCII řetězec Integer celé číslo Name and Optional DN plus UID Numeric String číselný řetězec OID object identifier

Projektování distribuovaných systémů (72 stran)32 Pravidla shody NázevOIDTypPopis objectIdentifierMatch shodaOID distinguishedNameMatch shodaDN caseIgnoreMatch shodavelikost a mezery nerozlišuje caseIgnoreOrderingMatch uspořádánívelikost a mezery nerozlišuje caseIgnoreSubstringsMatc h uspořádánívelikost a mezery nerozlišuje caseExactMatch shodavelikost rozlišuje, mezery ne caseExactOrderingMatch uspořádánívelikost rozlišuje, mezery ne caseExactSubstringsMatch podřetězecvelikost rozlišuje, mezery ne booleanMatch shodaboolean

Projektování distribuovaných systémů (72 stran)33 Aliasy

Projektování distribuovaných systémů (72 stran)34 Atributy Mají definován Typ hodnoty Povolené operace Definované také pomocí OID Mohou být Uživatelské – definované uživatelem Operační – obsahují systémové informace

Projektování distribuovaných systémů (72 stran)35 Definice atributu dle RFC2252 AttributeTypeDescription = "(" whsp numericoid whsp ; Identifikátor Typu atributu [ "NAME" qdescrs ] ; Název používaný typem atributu [ "DESC" qdstring ] ; Popis [ "OBSOLETE" whsp ] [ "SUP" woid ] ; Odvození od jiného typu atributu [ "EQUALITY" woid ; Název pravidla shody pro shodu [ "ORDERING" woid ; Název pravidla shody pro porovnání [ "SUBSTR" woid ] ; Název pravidla shody pro podřetězec [ "SYNTAX" whsp noidlen whsp ] ; OID syntaxe [ "SINGLE-VALUE" whsp ] ; Standardně vícehodnotové [ "COLLECTIVE" whsp ] ; Standardně not collective [ "NO-USER-MODIFICATION" whsp ]; Standardně modifikovatelné uživatelem [ "USAGE" whsp AttributeUsage ]; Standardně userApplications whsp ")"

Projektování distribuovaných systémů (72 stran)36 LDAP jména DN skládá se ze sekvence relativních DN cn=John Smith,ou=Austin,o=IBM,c=US Directory Information Tree (DIT) Vytváří se podle geografických nebo organizačních schémat Aliases: podobné stromům Aliases mohou odkazovat na uzly stromu, které nejsou listy

Projektování distribuovaných systémů (72 stran)37 LDAP jména Schema Definuje povolené třídy objektů Definuje kde jsou uloženy Definuje jaké mají atributy (objectClass) Definuje které atributy jsou volitelné (objectClass) Definuje typ/syntaxi každého atributu (objectClass) LDAP schema musí být čitelné klientem

Projektování distribuovaných systémů (72 stran)38 LDAP příklady jmen atributalias CommonNameCN LocalityNameL StateorProvinceNameST OrganizationNameO OrganizationalUnitNameOU CountryNameC StreetAddressSTREET domainComponentDC UseridUID

Projektování distribuovaných systémů (72 stran)39 LDAP funkce a operace Ověřování BIND/UNBIND – připojení/odpojení ABANDON – opuštění – zrušení operace Dotazování Search - vyhledání Compare entry - porovnání Opravy Add an entry – přidání položky Delete an entry (pouze listy stromu, ne aliasy) – zrušení položky Modify an entry, Modify DN/RDN (jméno, relativní jméno) – modifikace položky nebo jména položky

Projektování distribuovaných systémů (72 stran)40 Komunikace klient/server Klient vytváří relaci se serverem (BIND) Podle DNS jména/IP adresy a portu Bezpečnost Ověřování založené na ID uživatele a heslu Anonymní připojení – implicitní práva přístupu Podpora Kerbera a šifrování Klient provádí operace Read/Update/Search SELECT X,Y,Z FROM PART_OF_DIRECTORY Klient ukončuje relaci (UNBIND) Klient může relaci přerušit (ABANDON)

Projektování distribuovaných systémů (72 stran)41 Operace BIND/UNBIND/ABANDON Požadavek obsahuje verzi LDAP, jméno pod kterým se chce klient připojit, typ ověřování Jednoduché – anonymní, jednoduché nešifrované heslo Kerberos v4 k LDAP serveru (krbv42LDAP) Kerberos v4 k DSA serveru (krbv42DSA) Server odpovídá indikací stavu UNBIND: ukončuje relaci UnbindRequest ::= [APPLICATION 2] NULL ABANDON: MessageID to abandon

Projektování distribuovaných systémů (72 stran)42 Operace vyhledávání a porovnávání Požadavek zahrnuje baseObject: an LDAPDN Scope: kolik úrovní stromu má být prohledáváno derefAliases: zpracování aliasů sizeLimit: max počet vrácených položek timeLimit: max čas prohledávání attrsOnly: vrací typy atributů nebo také jejich hodnoty Filter: podmínky které mají být splněny při prohledávání Attributes: seznam atributů, ke kterým se hledá odpověď Čtení i výpis seznamu je realizován jako vyhledávání Porovnání: podobné vyhledávání, ale vrací true/false

Projektování distribuovaných systémů (72 stran)43 Parametry vyhledávání Base – prohledávání podle DN (strom, podstrom) Size – maximální počet položek Attributes – seznam atributů, které se mají vrátit Attrsonly – true – hodnoty/atributy False – pouze seznam atributů Scope – hloubka prohledávání Time – maximální doba prohledávání Search_filter – omezení prohledávání na specifické atributy nebo jejich hodnoty “objectclass = *” “cn=novak*”

Projektování distribuovaných systémů (72 stran)44 Rozsah prohledávání Base Omezeno pouze na základní objekt Informace o uživatelích One level Omezeno pouze na následující úroveň (potomky) Informace o členech organizace Subtree Prohledání celého podstromu

Projektování distribuovaných systémů (72 stran)45 Filtrování, operátory filtrování Vyhledají se objekty podle DN a rozsahu vyhledávání V dalším kroku je možné vytvořit podmnožinu podle zadaných kritérií filtrování Jednoduché operace Logické &, |, ! Relační ~= - přibližně stejné >= - větší nebo rovno <= - menší nebo rovno * - libovolné

Projektování distribuovaných systémů (72 stran)46 Filtrování, operátory filtrování Příklady (objectClass=název objektu) (cn=Josef P*) (|(uid=novak)(uid=patek)) (&(|(uid=Petr)(uid=Pavel))(objectclass=person))

Projektování distribuovaných systémů (72 stran)47 LDAP URL RFC 4516 ldap://host:port/DN?atributy?scope?filter?extensions Host – jméno nebo adresa LDAP serveru Port – síťový port DN – jméno použité jako základ pro prohlrdávání Atributy – seznam atributů oddělených čárkou Scope – rozsah prohledávání (base, one, sub) Filter – filtr prohledávání (RFC4515) – objectClass=*

Projektování distribuovaných systémů (72 stran)48 LDAP URL ldap://foo.bar.com/dc=bar,dc=com ldap://argle.bargle.com/dc=bar,dc=com??sub?uid=barney ldap://ldap.bedrock.com/dc=bar,dc=com?cn?sub?uid=barney ldap://ldap.zcu.cz:389/uid=ledvina, ou=Users, ou=rfc2307, o=zcu, c=cz??base?(objectClass=*) Scope Base One Sub

Projektování distribuovaných systémů (72 stran)49 Příklad výpisu Softerra LDAP Browser 2.5 # # This file has been generated on at 11:33 from ldap.zcu.cz:389 # by Softerra LDAP Browser 2.5 ( # version: 1 dn: uid=ledvina,ou=Users,ou=rfc2307,o=zcu,c=cz objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: pleiadesPerson

Projektování distribuovaných systémů (72 stran)50 Příklad výpisu Softerra LDAP Browser 2.5 uid: ledvina uidNumber: 1330 gidNumber: 100 givenName: Jiri loginShell: /bin/tcsh homeDirectory: /users/l/ledvina/home mail: cn: Jiri LEDVINA sn: LEDVINA

Projektování distribuovaných systémů (72 stran)51 Příklad výpisu Softerra LDAP Browser 2.5 memberof: cn=acl$linux_kiv,ou=Groups,ou=rfc2307,o=zcu,c=cz memberof: cn=acl$linux_public,ou=Groups,ou=rfc2307,o=zcu,c=cz memberof: cn=acl$tacacs,ou=Groups,ou=rfc2307,o=zcu,c=cz memberof: cn=dbadmin,ou=Groups,ou=rfc2307,o=zcu,c=cz memberof: cn=staff,ou=Groups,ou=rfc2307,o=zcu,c=cz memberof: cn=users,ou=Groups,ou=rfc2307,o=zcu,c=cz memberof: cn=fav,ou=Groups,ou=rfc2307,o=zcu,c=cz memberof: cn=kiv,ou=Groups,ou=rfc2307,o=zcu,c=cz memberof: cn=teachers,ou=Groups,ou=rfc2307,o=zcu,c=cz userPassword: {crypt}*

Projektování distribuovaných systémů (72 stran)52 Operace ADD/MODIFY/DELETE Operace ADD Entry: LDAPDN Seznam artributů a jejich hodnot (nebo množina hodnot) Operace MODIFY Používá se k přidání, rušení a modifikaci atributů Požadavek obsahuje Object: LDAPDN Seznam modifikací (atomické provedení)  Add, Delete, Replace Operace DELETE Object: LDAPDN Operace MODIFY RDN: LDAPDN, newRDN, DEL_FLAG

Projektování distribuovaných systémů (72 stran)53 LDAP zprávy LDAPMessage (MessageID unique)

Projektování distribuovaných systémů (72 stran)54 LDAP zprávy LDAPString ::= OCTET STRING LDAPDN ::= LDAPString RelativeLDAPDN ::= LDAPString AttributeValueAssertion ::= Sequence { attributeTypeattributeValue, attributeValueattributeValue } attributeType ::= LDAPString attributeValue ::= OCTET STRING

Projektování distribuovaných systémů (72 stran)55 LDAP zprávy LDAP Result Chyby Truncated DIT RDN sequence is sent noSuchObject aliasProblem invalidDNSyntax isLeaf etc.

Projektování distribuovaných systémů (72 stran)56 Bezpečnost LDAP Současná verze LDAP podporuje Heslo v textové podobě Ověřování KERBEROS v 4 SASL – Simple Authentication and Security Layer (RFC4422) Prostředek pro ověřování a zajištění bezpečných dat v Internetu Odstranění ověřovacích mechanizmů z aplikací Využití libovolného ověřovacího mechanizmu podporovaného SASL v libovolné aplikaci Nabízí též data security layer (integrita a důvěrnost dat)

Projektování distribuovaných systémů (72 stran)57 Mechanizmus SASL Protokol pracující s výzvami a odpověďmi Definuje následující mechanizmy: EXTERNAL - ověřování zahrnuto implicitně (IPsec, TLS) ANONYMOUS – neautorizovaný přístup PLAIN – jednoduché ověřování prostým textem – heslem OTP – jednorázové heslo – nahrazen SKEY SKEY – mechanizmus SKEY – rekurzivní generování hesla CRAM-MD5 – jednoduchá výměna výzva-odpověď založená na HMAC- MD5 DIGEST-MD5 - jednoduchá výměna výzva-odpověď pomocí HTTP založená na MD5, podpora bezpečného přenosu dat NTLM – ověřovací mechanizmus NT LAN Manager GSSAPI – ověřování Kerberos V prostřednictvím GSSAPI, podpora bezpečného přenosu dat.

Projektování distribuovaných systémů (72 stran)58 Mechanizmus GSSAPI Generic Security Services Application Program Interface API pro přístup k bezpečnostním službám IETF standard Poskytuje 45 knihovních volání Podpora C, Java, C# Předpokládá architekturu klient/server

Projektování distribuovaných systémů (72 stran)59 Bezpečnost LDAP Bezpečnost založená na modelu připojování (BIND) LDAPv1 - heslo LDAPv1,2,3 – Kerberos LDAPv3 - SASL Navrhováno TLS (Transport Layer Security) Založeno na SSL v3 (Netscape)

Projektování distribuovaných systémů (72 stran)60 Bezpečnost LDAP Bez ověřování Základní ověřování DN a heslo Otevřený text nebo kódování BASE64 SASL (RFC 4422) Parametry: DN, mechanism, credentials Zajišťuje vzájemné ověřování Případné dohadování o šifrování dat ldap_sasl_bind() (ver3 call) Ldap:// /?supportedsaslmechanisms

Projektování distribuovaných systémů (72 stran)61 Bezpečnost LDAP LDAP a SASL s SSL/TLS

Projektování distribuovaných systémů (72 stran)62 Bezpečnost LDAP Ověřování SSL/TLS

Projektování distribuovaných systémů (72 stran)63 LDAP protokol (klient/server) Klient aktivuje komunikaci se serverem Klient posílá serveru požadavek Server požadavek zpracuje Server vrací odpověď nebo chybu Server zpracovává požadavky asynchronně

Projektování distribuovaných systémů (72 stran)64 Spolupráce klient/server

Projektování distribuovaných systémů (72 stran)65 Mapování na transportní služby LDAP používá spolehlivý přenos dat (TCP) TCP LDAPMessage PDU mapována na TCP stream LDAP naslouchá na portu 389 Connection Oriented Transport Service (COTS) LDAP PDU mapováno přímo na T-Data

Projektování distribuovaných systémů (72 stran)66 Kódování protokolových prvků Pro kódování zpráv se používá BER (Basic Encoding Rules) BER definováno v Abstract Syntax Notation One (ASN.1) BER má velkou režii Omezení na zvýšení efektivity Pevná délka kódovaných položek Bitové řetězce i řetězce oktetů jsou kódovány pouze v základní podobě.

Projektování distribuovaných systémů (72 stran)67 Implementace LDAP C Library API LDAPv2 - RFC 1823 ‘The LDAP API’ LDAPv3 – RFC Java JNDI LDAP v3 používá UTF-8 kódování Existuje brána LDAP  HTTP Existuje brána LDAP  X.500 (ldapd)

Projektování distribuovaných systémů (72 stran)68 LDAP v2 RFC 1777: LDAP v1 RFC 1778: The String Representation of Standard Attribute Syntaxes RFC 1779: A String Representation of Distinguished Names RFC 1959: An LDAP URL Format RFC 1960: A String Representation of LDAP Search Filters

Projektování distribuovaných systémů (72 stran)69 Verze 2 versus Verze 3 Referrals Server který nemá k dispozici požadovaná data může odkázat klienta na jiný server. Bezpečnost Rozšířené ověřování s využitím Simple Authentication and Security Layer (SASL) Internacionalizace Podpora národních abeced – kódování UTF-8. Rozšiřitelnost Nové typy objektů a operací mohou být definovány dynamicky a schémata publikována standardním způsobem

Projektování distribuovaných systémů (72 stran)70 Implementace PHP (podpora Apache) Java JNDI (Java Naming Directory Interface) OpenLDAP – server, klient, API TinyLDAP Softerra LDAP browser Luma LDAP browser LDAP Explorer Tool GAWOR LDAP browser/editor