Co je to LDAP

Download Report

Transcript Co je to LDAP

Protokol LDAP

autor: Zdeněk Jonáš předmět: PSI mail: [email protected]

un: A01144

Osnova prezentace

     Co je to LDAP Struktura databáze LDAP Základní funkce LDAP Programování v jazyce C Ukázka v jazyce PHP   Zdroje a odkazy Závěr

Co je to LDAP

      LDAP - Lightweight Directory Access Protocol Vyvinut na univerzitě Michiganu Protokol pro čtení a správu adresářových služeb. Primární využití: Získání dat o uživateli Podpora zabezpečení SSL Realizován nad TCP

Struktura databáze LDAP

 Příklad uspořádání databáze

Struktura databáze na ZČU

Root c = us c = c z o= zc u ou= phonebook ou= resourc es ou= rfc 2307 ou= Groups ou= Users uid= jonasz

Program LDAP Browser

LDAP Browser použit na ZČU

Základní funkce LDAP

     Vyhledávání a navracení položek z adresářů Přidání nových položek Úpravu stávajících Smazání položek Přejmenování položek

Typy paketů LDAP

 Application number Application  0 BindRequest  1  2    3 4 5 BindResponse UnbindRequest SearchRequest SearchResponse ModifyRequest

          6 7 8 9 10 11 12 13 14 15

Typy paketů LDAP

ModifyResponse AddRequest AddResponse DelRequest DelResponse ModifyRDNRequest ModifyRDNResponse CompareRequest CompareResponse AbandonRequest

Programování v jazyce C

 Hlavičkový soubor #include  Překlad nutno přeložit s parametrem: gcc ldap.c

-L/usr/ldap/lib –lldap

Vytvo ření handlu

LDAP *ld; } { if ( (ld = ldap_init( HOSTNAME, PORT_NUMBER )) == NULL ) perror( "ldap_init" ); return( 1 );

Anonymní připojení

rc = ldap_simple_bind_s( ld, NULL, NULL ); if ( rc != LDAP_SUCCESS ) { fprintf(stderr, "ldap_simple_bind_s: %s\n", ldap_err2string(rc)); return( 1 ); }

Ukázka kódu v PHP

$ldapServer = "ldap.zcu.cz"; $ldapPort = 389; $ldapBase = "ou=rfc2307,o=zcu,c=cz"; ## vlastni pripojeni k LDAP serveru $ds=ldap_connect($ldapServer, $ldapPort); { if ($ds) //use LDAPv3 as default to bind if (!ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3)) echo "Failed to set protocol version to 3";

Ukázka kódu v PHP

//anonymous bind $r=ldap_bind($ds); $ldapFilter = "uid=jonasz"; $sr=ldap_search($ds,$ldapBase,$ldapFilter); $info = ldap_get_entries($ds, $sr); } print_r($info); } else { echo "

Unable to connect to LDAP server

";

Program ldapsearch

ldapsearch -x -h ldap.zcu.cz -b 'ou=rfc2307,o=zcu,c=cz' 'uid=jonasz' memberof version: 2 # filter: uid=jonasz # requesting: memberof # jonasz, Users, rfc2307, zcu, cz dn: uid=jonasz,ou=Users,ou=rfc2307,o=zcu,c=cz memberof: cn=stud-kat-kts,ou=Groups,ou=rfc2307,o=zcu,c=cz memberof: cn=students,ou=Groups,ou=rfc2307,o=zcu,c=cz memberof: cn=stud-kat-kfi,ou=Groups,ou=rfc2307,o=zcu,c=cz … # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1

Odkazy na zdroje

http://www2.dmi.columbia.edu/misc/docs/ Velmi dobré.

http://www.root.cz/clanky/lehky-uvod-do-ldap/ http://www.fi.muni.cz/~kas/p090/referaty/2004 podzim/st/ldap.html

http://www.tldp.org/HOWTO/LDAP-HOWTO/