puzzle / okr

Open source OKR application
GNU Affero General Public License v3.0
10 stars 2 forks source link

OKR - Anmeldung über SSO #146

Closed tuxmatta closed 1 year ago

tuxmatta commented 1 year ago

Als Puzzle Member möchte ich mich mit dem SSO von Puzzle anmelden können, damit ich das OKR-Tool verwenden kann.

Für die Authentisierung, Autorisierung und das Single Sign-on soll der Puzzle Dienst Keycloak (sso.puzzle.ch) verwendet werden. Als Protokoll ist aktuell OAuth 2.0 vorgesehen.

Anforderungen

Hinweis

Info von der Vorbereitungsstory: https://github.com/puzzle-bbt/bbt/issues/290:

Wie kann man sich über SSO anmelden? Mit den Puzzle Credentials

Wie kann der neu angemeldete User in die Datenbank vom OKR-Tool übernommen werden? In dem man den angemeldeten User(Token) mit der Datenbank abgleicht und falls dieser nicht existiert wird er neu erstellt. Im Token sind alle relevanten Daten

Wie sieht der Ablauf aus?

Wie kann man sicherstellen, dass nur Puzzle Members zugriff auf das OKR-Tool erhalten? In dem man das Puzzle SSO verwendet.

Wie kann man in Zukunft verschiedene Benutzergruppen mit unterschiedlichen Rollen einführen? Momentan hat das OKR-Tool nur eine Rolle: User Diese kann auch aus dem Token gelesen werden und ist garantiert da nur Puzzle Members sich anmelden können.

Wie kann man in Zukunft verschiedene Benutzergruppen mit unterschiedlichen Rollen einführen? Neue Rollen kann man auf dem KeyCloak Realm erstellen, diese werden dann im Token mitgegeben

Was muss auf dem Backend umgesetzt werden? Backend (bearer-only) Client

Was muss auf dem Frontend umgesetzt werden? Frontend (hybrid) Client

Wer kann uns bei der Umsetzung unterstützten? Etienne Gobeli oder Ramon Spahr. Jenachdem auch Stephan Girod Ein Problem hier könnte die Zeit und Verrechenbarkeit sein

Akzeptanzkriterien

Anpassungen an der Story

Anpassungen sind mit Jonas oder Paco vorab zu besprechen und an dieser Stelle zu dokumentieren

Vorgehen

tuxmatta commented 1 year ago

Das SSO auf der Produktion funktioniert nicht:

Der Aufruf nach dem erfolgreichem Login auf Keycloak liefert auf dem lokal Umgebung die Angular Applikation zurück. Auf der Produktion wird statt der Angular Applikation eine Whitelabel Error Page zurückgeliefert.

Wahrscheinlich soll das angular-oauth2-oidc NPM Paket im Angular Frontend den folgenden Aufruf entgegen nehmen: /auth/keycloakopenid/callback

Lokal funktioniert dies auch, da die RedirectURI http://localhost:4200/auth/keycloakopenid/callback direkt auf den lokalen Entwicklungsserver von Angular geht.

Auf der Produktion geht der RedirectURI https://okr.ocp.cloudscale.puzzle.ch/auth/keycloakopenid/callback auf den Openshift.