• Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Authentifizierung mittels OAuth2

    ChurchTools Schnittstellen
    23
    59
    5.7k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      bwl21 @bmh
      last edited by

      @bmh habt ihr Vorstellungen wie ihr das nutzen wollt? Etwa so:

      • Als Leiter oder Mitarbeiter der Kinderkirche möchte ich nur mit einem einzigen Username/Passwort arbeiten müssen.
      • Als Leitungsteam der Kinderkirche möchte wir Unterlagen in einem Gruppenordner gemeinsam bearbeiten, um sie den Mitarbeitern der jeweiligen Kinderkirchgruppen in einem eigenen Ordner zur Verfügung zu stellen.
      • Als Mitarbeiter in der Kinderkirche X möchte ich die Unterlagen/Vidoes etc. für meine Gruppe (und nur diese) sehen können bzw. automatisch auf meinen Laptop/Tablet synchronisiert bekommen um sie im Kindergottesdienst griffbereit zu haben.
      • Als Admin möchte ich die Personen in ChurchTools berechtigen, auf die Unterlagen der Kinderkirchgruppen entsprechend ihrer Rolle zuzugreifen, um den Überblick über die Berechtigungen zu behalten.
      B 1 Reply Last reply Reply Quote 0
      • B
        bmh @bwl21
        last edited by

        @bwl21 Wir möchten gerne ChurchTools als zentralen Identity Provider (IDP) zur Authorisierung von User-Logins etablieren. Ich würde auch nichtmals bei der historischen Kombination Username/Passwort bleiben wollen, sondern würde mir phishing-sichere Verfahren mit z.B. FIDO2 als zweiten Faktor oder gar Passkeys als Option wünschen.

        Zur Zeit sehe ich bei uns folgende Use Cases:

        • Die User überblicken die Service-Landschaft schon jetzt nur schwer und verstehen meist nicht, dass sie diverse User-Konten haben. Daher brauchen wir dringend SSO (single sign on).
        • SSO für den Internetauftritt (z.B. Wordpress)
        • SSO für Nextcloud - hier wäre eine Übergabe der Gruppenzugehörigkeit sehr hilfreich
        • SSO für die Hausautomatisation (z.B. Grafana und Node-RED)
        • SSO für diverse weitere interne Services
        • SSO für kritische Zugänge wie z.B. VPN-Einwahl ins Gemeinde-Netz sollten MFA (multi factor authentication) erzwingen

        Deine genannten Use Cases (2-4) gehen ja in die Richtung, dass die auch Autorisierung über ChurchTools-Rollen erfolgt um z.B. in einer Nextcloud bestimmte Ordner als Mitarbeiter der Gruppe "Kinderkirche-1" sehen und ggfs. sogar bearbeiten zu dürfen. Das wäre natürlich eine Arbeitserleichterung im Bezug auf das Rechte-Management über verschiedene Services hinweg, aber im ersten Schritt nicht unser Kernanliegen.

        Wenn ihr allerdings ChurchTools nicht als IDP seht, könnte ich mir auch vorstellen einen eigenen zentralen IDP für unsere Gemeinde aufzubauen (MS Entra ID oder lokales Active Directory oder ein lokal gehosteter OpenSource-Service). Hierzu wäre dann aber notwendig, dass ChurchTools eine Möglichkeit schafft die Authentifizierung an eben diesen externen Dienst auszulagern und nicht mehr die Passwörter selbst verwaltet. Hier würde ich allerdings weiterhin innerhalb von ChurchTools auf das interne Rollen-Management von ChurchTools zurückgreifen wollen.

        Egal wer nachher die Identitäten hält und bestätigt: Es darf pro Mitarbeiter nur noch ein einzelnes User-Konto geben. Und ich würde mir von ChurchTools Informationen darüber wünschen, was ihr in dieser Hinsicht zu implementieren gedenkt.

        S B 2 Replies Last reply Reply Quote 0
        • S
          Staubfinger @bmh
          last edited by

          Wir haben in etwa den gleichen Anwendungsfall wie schon mehrfach hier beschrieben - CT entweder als IdP oder einen anderen IdP wie Keycloak selbst betreiben welcher dann von CT benutzt wird. Der Thread hier ist mitlerweile schon sehr alt.

          Woran liegt es denn? Ich bin mir sehr sicher, dass man genug know-how in der Runde hat um eventuelle Probleme oder Bedenklichkeiten aus dem weg zu räumen.

          Seid gesegnet 👋

          1 Reply Last reply Reply Quote 0
          • B
            bwl21 @bmh
            last edited by

            @bmh sagte in Authentifizierung mittels OAuth2:

            SSO für Nextcloud - hier wäre eine Übergabe der Gruppenzugehörigkeit sehr hilfreich

            Deine genannten Use Cases (2-4) gehen ja in die Richtung, dass die auch Autorisierung über ChurchTools-Rollen erfolgt um z.B. in einer Nextcloud bestimmte Ordner als Mitarbeiter der Gruppe "Kinderkirche-1" sehen und ggfs. sogar bearbeiten zu dürfen. Das wäre natürlich eine Arbeitserleichterung im Bezug auf das Rechte-Management über verschiedene Services hinweg, aber im ersten Schritt nicht unser Kernanliegen.

            Der zweite Punkt löst genau den ersten Punkt - wäre sehr hifreich - ist aber nicht euer Kernanliegen? ist das nicht ein Widerspruch.

            1 Reply Last reply Reply Quote 0
            • fschrempfF
              fschrempf
              last edited by

              @bwl21 @bmh Es werden hier wieder ein paar Sachen miteinander vermischt. In erster Linie Authentifizierung und Autorisierung.

              In diesem Thread ging es urspünglich eigentlich nur um die Authentifizierung (d. h. die Anmeldung) bei externen Dienste über CT. Das ist heute schon möglich, indem man LDAP nutzt und/oder Keycloak + ChurchTools Storage Provider.

              Nur ist mit solchen Lösungen z. B. kein SSO (Single Sign On). SSO heißt nicht nur, dass man die selben Zugangsdaten für alle Dienste verwendet, sondern auch, dass man sich auch nur einmal bei CT einloggt und alle anderen Dienste sich automatisch anmelden solange die CT-Session im Browser noch gültig ist. Der Setup mit CT + Keycloak und OAuth (läuft aktuell bei uns) reduziert die nötigen Sessions zumindest auf zwei (CT + Keycloak). Wenn CT selbst als IdP agieren könnte wäre wirklich alles über eine Session möglich und das wäre sicher die bestes Lösung.

              Das Thema mit den Berechtigungen (Autorisierung) ist separat zu betrachten. Ja, OAuth erlaubt auch das Übergeben von Gruppenzugehörigkeiten, etc. an den Service Provider, damit dieser diese weiterverarbeiten kann. Das hat aber auch den Nachteil, dass diese nur bei der Anmeldung übergeben werden und dann vom entsprechenden Dienst separat verarbeitet werden.

              Deshalb ist es z. B. bei Nextcloud auch sinnvoll OAuth und LDAP zu kombinieren um das beste aus beiden Welten zu vereinen.

              1 Reply Last reply Reply Quote 0
              • W
                wolfgang.merkel
                last edited by

                In diesem Thread geht vieles durcheinander, deshalb versuche ich mal ein paar Grundsätze darzulegen, um dann meine Empfehlung/Wünsche an den CT Product-Owner zu formulieren...

                CIAM steht für "Customer Identity & Access Management". CIAM ist also ein organisationsweites System, mit dem jegliche Benutzerkonten und Zugangsdaten und Berechtigungen für jegliche Applikationen einer Organisation verwaltet werden können. Damit verbunden sind dann auch Themen wie "SSO - Single Sign On" (einmalige Anmeldung gilt für alle angebundenen und berechtigten Applikationen), ("MFA - Multi Factor Authentication" - erhöhte Sicherheit zur Vermeidung von Identitäts-Diebstahl), oder eben auch die organisationsweite DSGVO konforme Erfassung von Benutzerdaten, samt Einwilligungserklärung etc.
                CIAM Tools stellen für anzuschliessende Anwendungen wie z.B. Church-Tools standardisierte Authentifizierungsdienste zur Verfügung (authentication service provider). Die gängigen Standards dafür sind u.a. "OpenID Connect", "SAML" oder eben "OAuth2" (mit dem dieser Thread ja gestartet ist). Church-Tools wäre in einem solchen Szenario also der "authentication client", der die Authentifikations-Anfragen dann z.B. per OAuth2 an den Identity Provider (das organisationsweite CIAM-Tool) weiterleitet.

                In diesem Thread wird vielmehr aber diskutiert, dass Church Tools die Funktion des Identity Providers (also dem CIAM-Tool) übernehmen sollte. Eine Solche CIAM Funktionalität zu implementieren, die allen Sicherheitsanforderungen genügt, ist ganz sicher komplex und entspricht nicht der fachlichen Domäne von Church-Tools. Es gibt bereits eine Vielzahl professioneller CIAM Tools, sowohl kommerziell (z.B. das in diesem Thread immer wieder zitierte Microsoft AD (Acrive Directory) oder noch umfassender dem Microsoft ENTRA External ID oder ...) als auch OpenSource Produkte wie dem im Thread schon benannten Keycloak (siehe keycloak.org). Es bleibt also jeder Organisation überlassen, welche CIAM-Software am besten zur bestehenden Infrastruktur passt...
                Aus meiner Sicht, macht es keinen Sinn, dass Church-Tools die Funktion eines Identity Providers (CIAM) implementiert, weil andere das Thema schon sehr professionell abliefern...

                Mein Wunsch an den ChurchTools Product Owner

                Stattdessen ist die sicherlich einfacher zu implementierende und standardisierte Authentifikations-Schnittstelle zur Anbindung an ein bestehendes Identity Access Managements seit langem überfällig. Das würde eben die Integration eines Authentifizierungsdienstes, auf der Grundlage von wahlweise OAuth2 oder SAML oder OpenID-Connect bedeuten - also genau das, was im Titel dieses Threads steht "Authentifizierung mittels OAuth2".

                Ich würde mich sehr freuen, wenn es seitens CT hier Fortschritte oder zumindest konkrete Aussagen für eine Roadmap gäbe, da es gerade in Gemeinden zunehmend schwieriger wird, dezentrale Benutzerkonten zu managen und dies den ehrenamtlichen Mitarbeiter*innen (oftmals IT-Laien) zuzumuten...

                Besten Dank schon mal im Namen der Kirche Lindenwiese (Überlingen)
                Wolfgang Merkel

                MichaelGM B SvenES 3 Replies Last reply Reply Quote 3
                • MichaelGM
                  MichaelG @wolfgang.merkel
                  last edited by MichaelG

                  @wolfgang-merkel weißt du, ob, wenn EntraID genutzt wird, jeder User mit Login in CT, eine M365 Lizenz benötigt?

                  Installation bei CT -> immer neueste Version

                  1 Reply Last reply Reply Quote 0
                  • B
                    bwl21 @wolfgang.merkel
                    last edited by bwl21

                    @wolfgang-merkel

                    Wenn CT als Leitsystem verstanden wird, in der alle Personenbezogenen Daten gepflegt werden, liegt es nahe das auch zur Authentifizierung zu verwenden. Sonst musst du die Personendaten synchronisieren, das ist auch nicht sooo einfach

                    Aus meiner Sicht, macht es keinen Sinn, dass Church-Tools die Funktion eines Identity Providers (CIAM) implementiert, weil andere das Thema schon sehr professionell abliefern...

                    Das Argument ist schwierig, weil es für fast alle Funktionen von CT sicher irgendeinen gibt, der das "professionell abliefert" . Am Ende hast du x Systeme die irgendwas "professionell abliefern" und keine Integration mehr.

                    1 Reply Last reply Reply Quote 3
                    • S
                      simsa
                      last edited by simsa

                      Es gibt jetzt ein OAuth Provider

                      https://blog.church.tools/blog/v3-116-registrieren-oauth-provider-camt-053-und-paypal/

                      Auf einer Testinstallation hat es bei mir schon funktioniert 🙂

                      Hier gibts die Anleitung von Church Tools

                      https://churchtools.academy/de/help/verwaltung/oauth/login-bei-drittsystem-nextcloud-einrichten-oauth/

                      fschrempfF 1 Reply Last reply Reply Quote 2
                      • fschrempfF
                        fschrempf @simsa
                        last edited by

                        @simsa Das sind gute Nachrichten! Vielen Dank an die Entwickler für das lang ersehnte Feature!

                        Leider bleibt es noch ein bisschen hinter meinen Erwartungen zurück. Die Konfiguration eines Clients stellt entsprechende Endpoint-URLs zur Verfügung. Im Beispiel werden diese für Nextcloud mit der Erweiterung "Sociallogin" verwendet. Das funktioniert prinzipiell.

                        Viele andere Dienste erwarten jedoch, dass der Provider eine "well-known" URL gemäß OIDC Spezifikation bereitstellt unter der dann die Metadaten (Endpoints, Attribute, etc.) abgerufen werden können und erlauben es nicht direkt die Enpoint-URLs anzugeben. Wir nutzen aktuell folgende Dienste, die somit nicht funktionieren und deshalb momentan weiterhin über Keycloak (mit dem CT User Provider) bedient werden müssen.

                        • Nextcloud mit oidc-login Erweiterung, die es erlaubt LDAP und OAuth bequem zu kombinieren
                        • OwnCloud Infinite Scale (oCIS)

                        Daher wäre mein Wunsch diese Möglichkeit in Zukunft vorzusehen um damit auch die breite Masse an Diensten, die es so gibt an CT anbinden zu können. Danke!

                        davidschillingD 1 Reply Last reply Reply Quote 0
                        • davidschillingD
                          davidschilling ChurchToolsMitarbeiter @fschrempf
                          last edited by

                          @fschrempf Was ist der Grund für euch OAuth und LDAP zu kombinieren?

                          fschrempfF 1 Reply Last reply Reply Quote 0
                          • SvenES
                            SvenE @wolfgang.merkel
                            last edited by

                            @wolfgang-merkel sagte in Authentifizierung mittels OAuth2:

                            In diesem Thread geht vieles durcheinander, deshalb versuche ich mal ein paar Grundsätze darzulegen, um dann meine Empfehlung/Wünsche an den CT Product-Owner zu formulieren...

                            CIAM steht für "Customer Identity & Access Management". CIAM ist also ein organisationsweites System, mit dem jegliche Benutzerkonten und Zugangsdaten und Berechtigungen für jegliche Applikationen einer Organisation verwaltet werden können. Damit verbunden sind dann auch Themen wie "SSO - Single Sign On" (einmalige Anmeldung gilt für alle angebundenen und berechtigten Applikationen), ("MFA - Multi Factor Authentication" - erhöhte Sicherheit zur Vermeidung von Identitäts-Diebstahl), oder eben auch die organisationsweite DSGVO konforme Erfassung von Benutzerdaten, samt Einwilligungserklärung etc.
                            CIAM Tools stellen für anzuschliessende Anwendungen wie z.B. Church-Tools standardisierte Authentifizierungsdienste zur Verfügung (authentication service provider). Die gängigen Standards dafür sind u.a. "OpenID Connect", "SAML" oder eben "OAuth2" (mit dem dieser Thread ja gestartet ist). Church-Tools wäre in einem solchen Szenario also der "authentication client", der die Authentifikations-Anfragen dann z.B. per OAuth2 an den Identity Provider (das organisationsweite CIAM-Tool) weiterleitet.

                            In diesem Thread wird vielmehr aber diskutiert, dass Church Tools die Funktion des Identity Providers (also dem CIAM-Tool) übernehmen sollte. Eine Solche CIAM Funktionalität zu implementieren, die allen Sicherheitsanforderungen genügt, ist ganz sicher komplex und entspricht nicht der fachlichen Domäne von Church-Tools. Es gibt bereits eine Vielzahl professioneller CIAM Tools, sowohl kommerziell (z.B. das in diesem Thread immer wieder zitierte Microsoft AD (Acrive Directory) oder noch umfassender dem Microsoft ENTRA External ID oder ...) als auch OpenSource Produkte wie dem im Thread schon benannten Keycloak (siehe keycloak.org). Es bleibt also jeder Organisation überlassen, welche CIAM-Software am besten zur bestehenden Infrastruktur passt...
                            Aus meiner Sicht, macht es keinen Sinn, dass Church-Tools die Funktion eines Identity Providers (CIAM) implementiert, weil andere das Thema schon sehr professionell abliefern...

                            Mein Wunsch an den ChurchTools Product Owner

                            Stattdessen ist die sicherlich einfacher zu implementierende und standardisierte Authentifikations-Schnittstelle zur Anbindung an ein bestehendes Identity Access Managements seit langem überfällig. Das würde eben die Integration eines Authentifizierungsdienstes, auf der Grundlage von wahlweise OAuth2 oder SAML oder OpenID-Connect bedeuten - also genau das, was im Titel dieses Threads steht "Authentifizierung mittels OAuth2".

                            Ich würde mich sehr freuen, wenn es seitens CT hier Fortschritte oder zumindest konkrete Aussagen für eine Roadmap gäbe, da es gerade in Gemeinden zunehmend schwieriger wird, dezentrale Benutzerkonten zu managen und dies den ehrenamtlichen Mitarbeiter*innen (oftmals IT-Laien) zuzumuten...

                            Besten Dank schon mal im Namen der Kirche Lindenwiese (Überlingen)
                            Wolfgang Merkel

                            @wolfgang-merkel du sprichst mir auf der Seele. Als ich mitbekommen habe dass CT jetzt eine Identity Provider Funktion mitbringt hatte ich genau die Gedanken du gut formuliert hast - außer das Gendersterchen 😘
                            Liebe CT Team, CT als Auth Client in bestehende CIAM Systeme zu hängen ist der Weg.

                            1 Reply Last reply Reply Quote 0
                            • fschrempfF
                              fschrempf @davidschilling
                              last edited by

                              @davidschilling Das hat den Grund, dass man damit immer eine aktuelle Datenquelle für User und Gruppen hat (via LDAP) und gleichzeitig den Komfort von Single-Sign-On (man muss sich nur einmal einloggen und bleibt dann in allen Diensten angemeldet solange die Session aktiv ist).

                              Würde man nur LDAP nutzen, hätte man kein SSO. Würde man nur OAuth nutzen, werden immer nur beim Login die Gruppenzugehörigkeiten des jeweiligen Users synchronisiert. Wenn es viele User gibt, die sich nur selten anmelden, dann hat man im entsprechenden Dienst ständig inkonsistente Daten. In ChurchTools wurden z. B. User-Profildaten und Gruppenzugehörigkeiten geändert, aber das kommt im Dienst erst an, wenn sich alle User die von den Änderungen betroffen sind einmal neu angemeldet haben. Für die Praxis ist diese Variante m. E. komplett untauglich.

                              B 1 Reply Last reply Reply Quote 0
                              • B
                                bwl21 @fschrempf
                                last edited by bwl21

                                @fschrempf sagte in Authentifizierung mittels OAuth2:

                                Würde ... Für die Praxis ist diese Variante m. E. komplett untauglich.

                                Das kann man so sehen, muss es aber nicht. Es geht darum dass der Benutzer im Drittsystem in die Rechte eintritt, die in CT dokumentiert sind. Das ist gegebn.

                                Wen ich wissen will,in welchen Gruppen er ist, schaue ich in CT nach. Es ist ja nicht so dass er im Drittsystem CT-Gruppen hat, die eer in CT nicht mehr hat.

                                Darum CT ist das Leitsystem.

                                fschrempfF 1 Reply Last reply Reply Quote 0
                                • fschrempfF
                                  fschrempf @bwl21
                                  last edited by

                                  @bwl21 Ja, vielleicht sehe ich das kritischer als es wirklich ist. Wenn man den Timeout der Nextcloud-Session nicht zu groß wählt, so dass Nextcloud in regelmäßigen Abständen wieder einen OAuth-Request ausführt und aktuelle Daten bekommt, dann würde es wahrscheinlich sogar einigermaßen gut funktionieren. Danke für den Hinweis, ich werde mir das mal durch den Kopf gehen lassen.

                                  Das ist aber ein ganz anderes Thema. Wie gesagt akzeptieren viele Dienste nur einen Meta-Endpoint (well-known), bzw. selbst wenn direkt die OAuth-Endpoint-URLs angegeben werden können, macht ein Meta-Endpoint die Konfiguration deutlich einfacher.

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    simsa
                                    last edited by

                                    Mein Eindruck ist auch, dass allgemein mehr Anwendungen auf OIDC setzen als pures OAuth. Daher wünsche ich mir auch für Church Tools ein OpenID Support.

                                    Die Social Login App von Nextcloud funktioniert grundsätzlich. Allerdings habe ich Bedenken bzgl. des langfristigen Supports. Das Plugin wird nicht direkt von Nextcloud gewartet. Die OIDC App allerdings schon.

                                    Dh. es könnte sein, dass das Social Plugin von dem externen Entwickler eingestellt wird und man dann schwierigkeiten bekommen kann, Nextcloud zu aktualisieren bzw. die User auf ein anderes Plugin zu migrieren.

                                    1 Reply Last reply Reply Quote 1
                                    • T
                                      Thomas Kuschan
                                      last edited by Thomas Kuschan

                                      Endlich, mich freut das OAuth2 Feature sehr. Für mich ist es endlich das Ende von vielen Bastellösungen. Auch wenn die Dokumentation nur auf die Integration von Nextcloud ausgelegt ist, konnte ich dank Standardisierung von OAuth2 ziemlich einfach einen Client programmieren: https://github.com/devdot/churchtools-oauth2-client

                                      Erhofft hatte ich mir trotzdem, dass man mit OAuth auf andere Ressourcen zugreifen kann. Bisher geht es nicht, den User-Token zur Authorisierung der API zu verwenden – das wäre in meinen Augen großartig (natürlich mit entsprechenden Scopes etc.). Ist hier noch mehr geplant?

                                      Aktuell sieht meine Lösung für eigene Integrationen so aus, dass ich dank der neuen OAuth Schnittstelle die CT-User sauber authentifizieren kann und dann wie bisher mit einem API-User die tatsächliche Interaktion mit CT erledige. Wenn ich aber die API mit dem jeweiligen CT-User nutzen möchte (z.B. /api/persons), muss ich weiterhin einem API-User die Admin-Rechte geben, mit denen dieser dann die API-Tokens aller CT-Benutzer organisieren kann. Technisch wäre es viel sauberer, wenn ich ohne einen solchen Admin-API-User an die API-Tokens der CT-User kommen könnte. Oder übersehe ich hier eine Funktion der OAuth Schnittstelle?

                                      davidschillingD 1 Reply Last reply Reply Quote 0
                                      • davidschillingD
                                        davidschilling ChurchToolsMitarbeiter @Thomas Kuschan
                                        last edited by

                                        @Thomas-Kuschan wie du es beschrieben hast ist es korrekt. Aktuell funktioniert der OAuth Access Token noch nicht für die CT-Api.
                                        Das mit den Scopes ist leider etwas schwierig, weil die CT-Berechtigungen sich nicht so leicht in den Scopes abbilden lassen, zumindest habe ich noch keine gute Idee dafür.

                                        T 1 Reply Last reply Reply Quote 0
                                        • T
                                          Thomas Kuschan @davidschilling
                                          last edited by

                                          @davidschilling Vielleicht übersehe ich hier auch etwas, aber mein Gedanke ist ganz einfach: der entsprechende OAuth Scope ermöglicht schlicht die gleichen CT-Berechtigungen wie der Zugriff per API (Token) – also genau mit den CT-Berechtigungen, die dem CT-Benutzer eben freigeschalten sind. Man könnte auch die einzelnen Module jeweils zu einen gesammelten Scope machen

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post