04. [15p] Folosire programatică client de LDAP

Pe stația client este instalat pachetul python-ldap util pentru programarea unui client LDAP în Python.

Fișierul de mai jos implementează căutarea intrărilor LDAP pentru utilizatorii al căror atribut cn începe cu Mihai și afișează pentru aceștia atributele cn și e-mail.

simple-ldap.py
#!/usr/bin/env python
 
import sys
import ldap
 
def main():
    ldap.set_option(ldap.OPT_PROTOCOL_VERSION, 3)
    l = ldap.initialize("ldaps://swarm.cs.pub.ro")
    entries = l.search_s("ou=People,dc=swarm,dc=cs,dc=pub,dc=ro", ldap.SCOPE_SUBTREE, '(cn=Mihai*)', ['cn', 'mail'])
 
    for dn, attrs in entries:
        print 'Found:', repr(dn)
        print attrs
 
if __name__ == "__main__":
    sys.exit(main())

Fișierul se găsește și pe stația client, în directorul /root/, și îl putem rula:

root@ldap-client:~# python simple-ldap.py 
Found: 'uid=mihai,ou=People,dc=swarm,dc=cs,dc=pub,dc=ro'
{'mail': ['XXXXXX@gmail.com'], 'cn': ['Mihai Maruseac']}
Found: 'uid=moro,ou=People,dc=swarm,dc=cs,dc=pub,dc=ro'
{'mail': ['XXXXXX@gmail.com'], 'cn': ['Mihai Morogan']}
[...]

Actualizați scriptul astfel încât sa extragă din intrările de mai sus acele intrări ale căror adresă de e-mail conține șirul @gmail.com. Apoi afișați doar atributele uid, cn și email pe o singură linie, separate prin virgulă, la fel ca mai jos:

mihai, Mihai Maruseac, XXXXXX@gmail.com
moro, Mihai Morogan, XXXXXX@gmail.com

Variabila attrs este un dicționar. Pentru a obține fiecare element numit item dintr-un dicționar d folosiți construcția d['item'].

Fiecare element din dicționarul attrs este o listă. Pentru a obține primul element (cel căutat) din listă, folosiți o expresie de forma l[0], unde l este lista.

saisp/labs/01/contents/04.txt · Last modified: 2014/02/18 11:45 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0