Dieses Tutorial erklärt, wie man seine eigene Nextcloud so konfiguriert, dass man sich mit dem ChurchTools Login in der Nextcloud anmelden kann. Dabei werden Gruppen- (und wenn gewünscht Gruppenrollen-) Informationen übernommen und wir können in ChurchTools über die Rechteverwaltung definieren, wer sich in der Nextcloud anmelden darf.
1. Nextcloud als OAuth-Client eintragen #
Der erste Schritt ist, die Nextcloud als OAuth-Client in den System-Einstellungen zu hinterlegen. Öffne dazu die System-Einstellungen (1) und navigiere zu Integrationen (2). In der Seitenleiste findest du den Eintrag Login bei Drittsystemen (3) und nun kannst du einen neuen OAuth-Client (4) hinzufügen.
Als Name wählst du am besten den Namen des Systems. In diesem Fall „Nextcloud“. Dieser Name wird auch später den Nutzern angezeigt, um klarzumachen, in welches System sie sich gerade versuchen anzumelden.
Die Redirect-URI sieht wie folgt aus: https://nextcloud.example.com/apps/sociallogin/custom_oauth2/ChurchTools
Tausche nextcloud.example.com
mit deiner eigenen URL aus, unter der die Nextcloud läuft.
Der letzte Teil ChurchTools
ist der Provider-Name, den wir selbständig gleich wählen können, in der Nextcloud. Wenn du dieser Anleitung folgst, musst du nur die Domain ändern und kannst den Namen „ChurchTools“ stehen lassen.
2. Social Login App aktivieren #
Für den OAuth-Login benötigen wir die Nextcloud App „Social Login„. Als Administrator kannst du neue Apps über das App-Menü finden und hinzufügen.
3. Custom OAuth2-Profil eintragen #
Nun können wir als Admin unter „Verwaltung“ (Administration) den Social Login konfigurieren und einrichten. Dazu legen wir ein Custom OAuth2 Profil an (1) und füllen die Werte aus, mit den Links, die ChurchTools aus Schritt 1 bereitgestellt hat.
Fülle nun die Felder aus:
- Internal name: Name, der auch in der Redirect-URI verwendet wird
- Title: Name dieses Profils. Der Text wird auch beim Nextcloud Login angezeigt
- API Base URL, Authorization URL, Token URL, Profile URL, Client ID: Diese Felder werden vom ChurchTools erstellt und in den System-Einstellungen beim OAuth-Client angezeigt.
- Client Secret: Wähle hier eine zufällige Zeichenkette aus.
Nun ist alles eingestellt und man kann sich in der Nextcloud anmelden.
Ganz oben auf der Seite findest du einige Checkboxen. Es steht dir frei das auszuwählen, was für dich sinnvoll ist. Wir empfehlen allerdings zwei Haken zu setzen:
- Das Benutzerprofil bei jeder Anmeldung aktualisieren
- Gruppen automatisch erstellen, wenn sie nicht vorhanden sind (siehe letzter Punkt dieser Anleitung)
4. ChurchTools Rechte vergeben #
Als Super-Admin wirst du dich bereits einloggen können. Aber nicht immer ist es gewollt, dass jeder ChurchTools Nutzer auch einen Login bei der Nextcloud haben soll. Daher benötigen ChurchTools Nutzer das globale Recht sich beim Drittsystem einzuloggen: Bei Drittsystem via ChurchTools-Benutzerkonto einloggen (login to external system)
5. Gruppen oder Gruppenrollen synchronisieren #
Es ist möglich, dass wir die Gruppenzugehörigkeiten zur Nextcloud übertragen und speichern. Es gibt zwei Möglichkeiten, dies zu nutzen. Egal welchen Weg du wählst, die Gruppen oder Gruppenrollen werden von ChurchTools an das Drittsystem übertragen. Die Nextcloud nimmt diese Daten und ordnet das Profil diesen Gruppen zu. Falls „Gruppen automatisch erstellen, wenn sie nicht vorhanden sind“ aktiviert ist, dann wird eine Gruppe vorher erstellt. Wenn diese Option nicht aktiv ist, können die Gruppen in der Nextcloud auch manuell angelegt werden, falls nicht alle ChurchTools Gruppen benötigt werden. Nur der Name muss gleich sein.
Gruppen übertragen #
Damit Gruppen übertragen werden (egal welcher Rolle), muss beim OAuth2-Profil unter „groups claim“ noch groups
eingetragen werden.
Gruppen in der Nextcloud haben folgendes Schema: <OAuth-internal-name>-<Gruppename>
. Zum Beispiel „ChurchTools-Gemeindeleitung“.
Gruppen und Rollen übertragen #
Damit Rollen übertragen werden, muss beim OAuth2-Profil unter „groups claim“ noch roles
eingetragen werden.
Gruppen in der Nextcloud haben folgendes Schema:<OAuth-internal-name>-<Gruppename>_<Rolle>
. Zum Beispiel „ChurchTools-Gemeindeleitung_Leiter“.