LDAP, K.U.Leuven Directory Server
[email protected] http://ftp.kulnet.kuleuven.ac.be/pub/people/jan/ldap.ppt
LDAP, K.U.Leuven Directory Server • • • • • • • •
Inleiding Wat is een directory? Gebruik Wat is LDAP? Implementatie: K.U.Leuven directory server Meta-directory Practisch gebruik Conclusie
Wat is een directory? • specialised database for reading,searching,browsing • Verschil met traditionele databases – – – – –
read-write ratio performance transaction model size of info type of info • descriptive attribute-based info • optional attributes • 1 or more values
– – – –
distribution scale replication extendable standards
Gebruik van directory services • informatie opzoeken • centraal data beheren – user/group info – user preferences – configurations
• security apps (PKI) • complementary services to applications
complementary services to applications N+1 directory problem
client
appl 1 user record
client
appl 2 user record
client
appl n user record
client
appl 1
client
appl 2
LDAP user record
client
appl n
Directory gebruik (vervolg) • directory kan een – database – file system – ftp/web server
NIET vervangen • een directory is complementair – – – –
centraal gebruikersbeheer access control configuratie authenticatie
• central repository for common info
authentication
client
query user credentials reply
service
query
client
reply
ticket
service ticket
kerberos
user credentials authenticated
ldap
Wat is LDAP standard, extensible directory access protocol client/server X.500-based • • • • •
informatie: descriptive attribute-based structuur verwijzen naar info functies security
information model wat voor info in directory • entry-based entry = verzameling van attributen • attribuut: – type – 1 of meer waarden telephoneNumber: +32 (0)16 322800
Naming model • hierachische structuur – X.500 / domain name
• reference to an entry – distinguished name (dn) – relative dn (rdn) c=be o=kuleuven ou=pers uid=pb239900
ou=stud uid=m0000001
dn: uid=pb239900,ou=pers,o=kuleuven,c=be
functional & security model Functions • interrogation • update • authentication and control operations • extended operations and LDAP controls Security model • framework for protecting unauthorised access • ACL
K.U.Leuven directory server ldap-ludit.kuleuven.ac.be en ldap-hh.kuleuven.ac.be • inhoud – organigram: eenheden – personeelsgegevens (=~ cwis) + authenticatie info – studentengegevens (studieJaar, studieCode, eenheid, …)
• structuur
c=be o=kuleuven
ou=pers uid=pb239900
ou=stud uid=m0000001
• toegang – browser – ldap commando’s – libraries/SDK’s voor C, Java, perl, php, ...
KULouNumber= 50000954
LDAP inhoud # Organization dn: o=kuleuven, c=be objectClass: top objectClass: organization o: kuleuven # Organizational Units # elke persoon gedefinieerd behoort tot 1 van de 2 onderstaande ou's # deze maken deel uit van distinguished name (dn) van een persoon dn: ou=stud, o=kuleuven, c=be objectClass: top objectClass: organizationalUnit ou: stud dn: ou=pers, o=kuleuven, c=be objectClass: top objectClass: organizationalUnit ou: pers
LDAP inhoud: eenheden # andere Organizational Units: eenheden uit het KULeuven organigram # een persoon kan deze als 2de of ... ou hebben (maken geen deel uit # van distinguished name van een persoon) # opzet: eventuele info onder een dergelijke subtree staat niet op # de root (centrale) ldap server, maar op een hierarchisch lager # gelegen (decentrale) ldap server, naar deze wordt verwezen via een referral dn: KULouNumber=50000954, o=kuleuven, c=be objectClass: top objectClass: organizationalUnit objectClass: KULou ou: Leuvens universitair dienstencentrum voor Informatica en telematica (LUDIT) # organigramcode van de eenheid KULouNumber: 50000954
LDAP inhoud: personeelslid dn: uid=pb239900, ou=pers, o=kuleuven, c=be objectClass: top objectClass: person objectClass: KULperson objectClass: posixAccount objectClass: shadowAccount objectClass: sambaAccount # attributen behorende bij objectclass person cn: Jan Du Caju sn: Du Caju telephoneNumber: +32 16 322785 # KULperson attributen uid: pb239900 # 1e organizational unit = pers ou: pers # volgende organizational unit(s): eenheid ou: Leuvens universitair dienstencentrum voor Informatica en telematica (LUDIT) # organigramcodes van eenheid en erboven liggende eenheden KULouNumber: 50000954 KULouNumber: 50014501 givenName: Jan
LDAP inhoud: personeelslid (vervolg) postalAddress: LUDIT, de Croylaan 52A, B-3001 Heverlee, Belgium fax: +32 16 322999 mail:
[email protected] KULtap: ATP labeledURI: www.kulnet.kuleuven.ac.be LUDITserver: mail.cc.kuleuven.ac.be # optioneel attribuut: userCerticifate # posixAccount attributes (voor o.a. voor UNIX, samba, ... authenticatie: /etc/passwd) homeDirectory: /home/pb239900 loginShell: /bin/bash uidNumber: 15677 gidNumber: 50000954 # shadowAccount attributes (voor o.a. UNIX, samba, ... authenticatie:/etc/shadow) userPassword: {SHA}blabla shadowLastChange: 10877 shadowMin: 0 shadowMax: 999999 shadowWarning: 7 shadowInactive: -1 shadowExpire: -1 shadowFlag: 0
LDAP inhoud: personeelslid (vervolg) # sambaAccount attributen (voor o.a. authenticatie van windows clients) # LanManager paswoord (win 9x, ...) lmPassword: LanManagerhash # NT/2k paswoord ntPassword: NT2Khash acctFlags: [U ] pwdLastSet: 389FF9AA logonTime: 00000000 logoffTime: 00000000 kickoffTime: 00000000 pwdCanChange: 3A2CEBFF pwdMustChange: FFFFFFFF homeDrive: H: rid: 2712 primaryGroupID: 201 # optioneel scriptPath
LDAP inhoud : student dn: uid=m0000001, ou=stud, o=kuleuven, c=be objectclass: top objectclass: person objectclass: KULstudent objectclass: posixAccount objectclass: shadowAccount objectclass: sambaAccount # person attributen # cn heeft voor studenten dezelfde waarde als uid (privacy) cn: m0000001 sn: Slootwater # KULstudent attributen uid: m0000001 # 1e organizational unit = stud, volgende organizational unit(s) : faculteit, ... ou: stud ou: arts # KULstudent attributen gn: Jef studiejaar: geen studiecode: geen mail:
[email protected]
Meta directory • Directory of directories common look for users
• K.U.Leuven directory server: root ldap server read-only master: cwis (SAP & Mainframe)
• decentrale behoeften – decentrale ldap server – in centrale ldap • gemeenschappelijk gebruik • beheerbaarheid • performantie – grootte attributen – aantal attributen
partitioning/distribution
LDAP server 1
LDAP server 2
LDAP server 3
ldap gebruik • opzoeken van email adressen ldap-ludit.kulnet.kuleuven.ac.be en/of ldap-hh.kulnet.kuleuven.ac.be base: ou=pers,o=kuleuven,c=be
• webpagina’s – apache module: mod_auth_ldap • • • •
valid user lijst van uids ldap filter bijvb.: (studieCode=1204) group (defined in ldap)
http://www.muquit.com/muquit/software/mod_auth_ldap/mod_auth_ldap.html http://ftp.kulnet.kuleuven.ac.be/pub/people/jan/mod_auth_ldap.c
– php
• Samba – fall back – NT/2k machine accounts lokaal
ldap gebruik (vervolg) • unix/linux login NIS migreren naar PAM/LDAP
• leer/toetsplatform: Toledo • SAP • Microsoft AD – voeden – authenticatie
• kotnet login • pop/imap • ...
authenticatie
client
query user credentials reply
service
user credentials authenticated
Vereisten: • paswoord niet onbeschermd over netwerk • geen misbruik • goed beheer van server – enkel welbepaalde services – patches opvolgen – beperkte toegang – geen werkstation
ldap
Toegang tot gegevens Afgeschermde informatie: • paswoord hashes • studentengegevens – – – – –
studieJaar studieCode eenheid naam/voornaam mail
ip-address en/of speciale dn met paswoord uid=PeterArien,ou=studAccess,o=kuleuven,c=be
Conclusie opzet K.U.Leuven directory server: • aftaps vermijden – indien toch noodzakelijk dan enkel via ldap
• beheer vergemakkelijken • authenticatie/PKI mogelijkheid aanbieden • 1 punt voor gemeenschappelijke info