LDAP-Einbindung für Anwendungen

Zuletzt geändert von Christoph Bußenius am 2025/07/23 12:35

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