Der ChurchTools LDAP-Service arbeitet als LDAP-Server und stellt sämtliche Personen und Gruppen per LDAP-Zugriff zur Verfügung.
Alternativ dazu kann ChurchTools auch die Benutzer gegen einen vorhandenen LDAP-Server authentifizieren. Mehr dazu siehe LDAP-Integration.
Sehr viele Software mit Benutzerrechten etc. können LDAP zur Authentifizierung (Prüfen auf gültigen Benutzername & Passwort) sowie Autorisierung (welche Rechte) benutzen. So kann über ChurchTools die weitere Softwareverwendung gesteuert werden. Es gibt also nur noch EIN Passwort für alles!
Z. B. könnte man so die Firewall einer Gemeinde so konfigurieren, dass sobald eine Person in ChurchTools die Gruppe „Grafik“ erhält, die Person sich per VPN in die Gemeinde einwählen und auf das entsprechende Netzlaufwerk zugreifen kann.
Was jetzt schon gut funktioniert: Die Verbindung mit NextCloud. NextCloud zieht dann über LDAP alle Gruppen und stellt auch fest, wenn ich in einer Gruppe bin. Pro Gruppe kann dann z.B. ein Shared-Ordner erstellt werden, der so automatisch mir zur Verfügung steht, wenn ich z.B. im Technikteam bin.
Für NextCloud siehe Anbindung von Nextcloud an den ChurchTools-Login
Für OwnCloud siehe Einrichten von OwnCloud
Einrichtung #
Der LDAP-Service kann direkt in den Lizenzeinstellungen von ChurchTools gebucht werden.
Im nächsten Schritt legst du einen User mit folgenden Daten und Berechtigungen in eurem ChurchTools an:
- E-Mail-Adresse: ldap@churchtools.de
- Berechtigungen: Administer Persons, Personen & Gruppen sehen
Das Recht Administer Persons ist für den LDAP-User zwingend notwendig, da der LDAP-Dienst aktuell eine spezielle ChurchTools-Schnittstelle nutzt, die _ALLE_ Personen und Gruppen abruft und über das Recht „Administer Persons“ abgesichert ist. Daher funktioniert der LDAP-Service momentan nicht ohne dieses Recht.
Für den User muss ein Passwort gesetzt werden, das ist später das Passwort für die Benutzung des LDAP-Service. Das Passwort dürfen Sie uns NICHT mitteilen, es muss nur gesetzt sein und Sie müssen sich mit diesem User und dem Passwort einmal anmelden (ggf. Bestätigung der Vertraulichkeitsvereinbarung).
Wenn dies geschehen ist, schickst du eine kurze Nachricht über https://contact.church.tools und wir richten den LDAP-Service für euer ChurchTools ein.
Testen #
Nun kann der LDAP-Server getestet werden, z. B. mit dem Befehl:
ldapsearch -H ldaps://ldap.church.tools:636 -x -w <LDAP-Passwort> -D cn=root,ou=users,o=<subdomain> -LLL -b ou=users,o=<subdomain>
Dieser gibt alle Personen in ChurchTools aus.
Optionen von ldapsearch:
-H: Hostname, dieser ist beim LDAP-Service immer ldaps://ldap.church.tools:636
-x: Authentifizierung mit Passwort (simple authentication)
-w: das LDAP-Passwort, welches für den User ldap@churchtools.de gesetzt worden war (siehe oben „Einrichtung“)
-D: der User, über den die LDAP-Abfrage laufen soll. Hier als DN (distinguished name) immer cn=root,ou=users,o=<subdomain>
verwenden
-LLL: alle Kommentare in der Ausgabe von ldapsearch unterdrücken (kann auch weggelassen werden)
-b: der Base-DN, also die Basis des Suchbaumes. Hier kann entweder nach Personen gesucht werden (-b ou=users,o=<subdomain>
), nach Gruppen (-b ou=groups,o=<subdomain>
), oder nach beidem (-b o=<subdomain>
). Als <subdomain>
ist immer der ChurchTools-Subdomain-Name einzusetzen, also z. B. o=ldaptest .
Schema #
Als CN wird der Benutzername der jeweiligen Person ausgelesen (CDB_PERSON.CMSUSERID).
Der Baum für User ist dann: cn=<cmsuserid>, ou=users, o=<subdomain>
dn: cn=mustermax,ou=users,o=ldaptest,
attributes: {
cn: mustermax,
displayname: Max Mustermann,
id: 42,
uid: mustermax,
nsuniqueid: u42,
givenname: Max,
street: Mustergasse 1,
telephoneNumber: 0123456789,
postalCode: 12345,
l: Musterstadt,
sn: Mustermann,
email: mustermax@gmail.com,
mail: mustermax@gmail.com,
objectclass: CTPerson
}
Der Baum für Gruppen: cn=<Name der Gruppe>, ou=groups, o=<subdomain>
dn: cn=Technik,ou=groups,o=ldaptest,
attributes: {
cn: Technik,
displayname: Technik,
nsuniqueid: g17,
objectclass: 'CTGruppe'+Gruppentyp, z.B. 'CTGruppeDienst'
uniquemember: members[IDs] // Array of dns
}
Wie zu erkennen ist, wird die Gruppenzugehörigkeit auch mit angegeben und zwar durch das Attribut „uniquemember“.