LDAP-Einbindung für Anwendungen
Für wen ist dieser Artikel?
- Du möchtest eine eigene Web-Anwendung o.ä. auf einem eigenen Server oder einer VM installieren
- Du möchtest den Login für CIT-Kennungen ermöglichen (nicht die TUM-Kennungen)
- Du möchtest evtl. auch Gruppenzugehörigkeit zu Gruppen aus der StrukturDB prüfen
Andere Anwendungsfälle:
Config:
- LDAP-Server: ldaps://ldap.cit.tum.de (Port 636) oder ldap://ldap.cit.tum.de (Port 389 mit StartTLS)
- Base: ou=dir,dc=cit,dc=tum,dc=de
- Suchterm für Users: (&(objectClass=rbgAccount)(uid=LOGINNAME)) -- Dabei ist LOGINNAME der Login-Name, den man sucht
- Alternativ zur User-Suche: DN Pattern benutzen: uid=LOGINNAME,ou=users,ou=dir,dc=cit,dc=tum,dc=de
Der LDAP-Server ist aus den IP-Ranges der CIT zugänglich. Es kann entweder anonymer LDAP benutzt werden oder Bind auf irgend eine User-Kennung per Benutzerpasswort.
Gruppen
Es können die Benutzergruppen aus der StrukturDB abgefragt werden.
Wir unterstützen posixGroup, groupOfNames sowie groupOfUniqueNames. Alle Gruppen sind mit jeder der drei Varianten verfügbar. Viele verfügbare Anwendungen unterstützen nur eine dieser Varianten.
Die Suchterme sind jeweils:
- (&(cn=GROUPNAME)(objectClass=posixGroup)) (base wie oben)
- (&(cn=GROUPNAME)(objectClass=groupOfNames)) (base wie oben)
- (&(cn=GROUPNAME)(objectClass=groupOfUniqueNames)) mit base ou=udngroups,dc=cit,dc=tum,dc=de
Die groupOfUniqueNames hat eine andere Base und sollte nur benutzt werden, wenn die anderen Varianten überhaupt nicht unterstützt werden.
Command Line
Vor allem zum Testen sind diese Command-Line-Tools hilfreich. Hierbei wird das ldapsearch aus dem Ubuntu-Paket ldap-utils gebraucht. Beachte, dass es (z.B. auf Solaris) auch Varianten von ldapsearch gibt, die andere Optionen brauchen.
LDAP-Baum dumpen:
ldapsearch -x -H 'ldaps://ldap.cit.tum.de' -b 'dc=cit,dc=tum,dc=de'
User suchen:
ldapsearch -x -H 'ldaps://ldap.cit.tum.de' -b 'dc=cit,dc=tum,dc=de' '(&(objectClass=rbgAccount)(uid=USERNAME))'
Userpasswort prüfen:
ldapsearch -x -H 'ldaps://ldap.cit.tum.de' -D 'uid=USERNAME,ou=users,ou=dir,dc=cit,dc=tum,dc=de' -W '' b 'ou=dir,dc=cit,dc=tum,dc=de' -s base