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
-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/