SSO für verschiedene Dienste

Ich denke darüber nach, Single Sign On (SSO) für verschiedene Dienste anzubieten.

Hintergrund

Auf fediverse.at sind derzeit ein Mastodon und ein PeerTube Server aktiv. Hinzu kommt noch eine HumHub Instanz für ein lokales Projekt (Forum Gumpendorfer Straße). Naturgemäß überschneiden die Benutzer sich. Trotzdem müssen sie für jeden Dienst ein eigenes Konto anlegen mit der üblichen Passwort-Problematik.

Was ich (eher) nicht will

Bei HumHub gibt es fertige Lösungen, um sich via Facebook, Google, … anmelden zu können. Selbst wenn es das für Mastodon/PeerTube gäbe, würde ich es nicht einsetzen wollen – mein Engagement soll ja nicht dazu führen, dass die Datenkraken weiter gefüttert werden.

Lösung Keycloak?

HumHub bietet auch einen SSO via Keycloak an. Das liest sich nicht schlecht.

  • Wie würdet ihr diese Software einschätzen?
  • Habt ihr mit Keycloak Erfahrung sammeln können als Benutzer oder Admin?
  • Andere Ideen/Ansätze, um SSO benutzerfreundlich zu ermöglichen?

Ich hatte Keycloak selbst mal aufgesetzt, weil ich mich dafür interessierte. Leider hatte ich aber keine Verwendung dafür, sodass ich mich nicht tiefer damit beschäftigt habe.
Ich glaube Snopyta nutzt das auch für all ihre Dienste.

Ich fand Keycloak viel zu sperrig, hab jetzt authentik installiert und damit einige Dienste verbunden: Neuer Dienst: authentik - SSO - RollenspielMonster

Die Weboberfläche ist sehr angenehm zu bedienen und die authentik doku gibt für viele Dienste schon Anleitungen mit.

1 „Gefällt mir“

Danke – gleich einmal ausprobiert :wink: Technisch funktioniert das sehr gut. Für meine Benutzer fehlt mir die deutsche Oberfläche, das ließe sich vermutlich aber wohl noch nachrüsten.

Das Konzept ist für nicht-ITler fürchte ich gar nicht so einfach zu behirnen … da muss ich noch nachdenken, wie sich das ggf. darstellen und erklären ließe. (Ein Konto wo anlegen, damit ich mich wo anders dann anmelden kann …)

Und dann wäre da noch der Umstand, dass dieser auth-Server (also dessen Weboberfläche) nicht mit dem Keyring von macOS kommuniziert. Irgendwie bekommt zumindest mein OS nicht mit, dass es sich um Ein Kennwortfeld handelt. Schwer zu sagen, ob das am macOS liegt oder am HTML der auth-Server Seite.

Jedenfalls kein einfaches Thema …

Welche Benutzeroberfläche? Als User hat man zwar die Möglichkeit sich bei authentik anzumelden, aber normalerweise hält sich dort ja niemand auf.
Letztlich registriert sich der User einmal bei authentik und dann klickt er bei den Diensten ja nur noch auf, mit authetik anmelden.

Denke, viele kennen SSO schon, das ganze Zeug wie “Mit Google anmelden” und so ist ja genau dasselbe.

Zu MacOS und co kann ich nichts sagen, mein Bitwarden hat damit jedenfalls kein Problem.

… du hast eindeutig die jüngeren Benutzer :wink:

Google/FB Login funktioniert eben doch anders:

  1. Bei Google registrieren (und damit anmelden)
  2. Google nutzen
  3. Wo anders auch mit Google anmelden

Bei authentik:

  1. Bei authentik registrieren
  2. Wo anders sich damit anmelden und nutzen

Alleine der kleine, feine Unterschied zwischen registrieren und anmelden – den musst du vielen erst einmal erklären. Sei froh, wenn dich so was nicht interessieren muss.

Ich weiß nicht, ob mich das muss oder nicht, es tut es, offen gestanden, einfach nicht; hart ausgedrückt: Ich biete Dienste an und bin nicht zum Bemuttern da.

Wer sich bei GAFAM anmelden kann bzw. als SSO benutzen kann, muss das bei mir auch hinbekommen. Man rennt auch nicht jedes mal zur Fahrschule, nur weil man ein anderes Modell eines PKW’s nutzt.

Danke für den Tipp mit authentik. Kannte ich noch gar nicht.

Mittlerweile habe ich es geschafft einige Dienste einzubinden :smiley:

2 „Gefällt mir“

Hast du Mastodons OIDC bereits mit authentik probiert?

Hat mir diese Nacht keine Ruhe gelassen und ich hab’s auf unserer Testinstanz konfiguriert. Folgendes hab ich mir dazu notiert:

Konfiguration

  • beliebiger-name-1 bis 3 können beliebig vergeben werden
  • mastodon.url ist der URL der Mastodon Instanz
  • Button zum authentik Admin interface wird auf Tablets ggf. nicht angezeigt

authentik Admin interface

  1. OAuth2/OpenID Provider anlegen
    • Name: beliebiger-name-1 zB Gibber
    • Authorization flow: default-provider-authorization-implicit-consent
    • Redirect URI: https://mastodon.url/auth/auth/openid_connect/callback *zB https://gibber.dnddeutsch.de/auth/auth/openid_connect/callback*
    • Merken:
      • Client ID
      • Client Secret
      • OpenID Configuration Issuer
      • Authorize URL
      • Redirect URI
  2. Application anlegen
    • Name: beliebiger-name-2 zB Gibber
    • Provider: beliebiger-name-1 (Name des Providers)

Mastodon

  1. .env.production anpassen:
    OIDC_ENABLED=true
    OIDC_DISPLAY_NAME=<beliebiger-name-3>
    OIDC_DISCOVERY=true
    OIDC_ISSUER=< OpenID Configuration Issuer>
    OIDC_AUTH_ENDPOINT=<Authorize URL>
    OIDC_SCOPE=openid,profile,email
    OIDC_UID_FIELD=preferred_username
    OIDC_CLIENT_ID=<Client ID>
    OIDC_CLIENT_SECRET=<Client Secret>
    OIDC_REDIRECT_URI=<Redirect URI>
    OIDC_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true
    
  2. mastodon-web neustarten

Nein, wahrscheinlich werde ich Mastodon nicht anbinden, nachdem ich schon so viele User dort habe.

Getestet und funktioniert? Weil dann könnte man einen PR machen: authentik/website/integrations/services at main · goauthentik/authentik · GitHub

Erst rudimentär getestet. Funktioniert, aber für einen PR mE noch zu früh

Solange der Login funktioniert, ist die Thematik für authentik ja gegessen^^

Wo hast du denn die Settings eig. Gefunden? In der Dokumentation finde ich dazu gar nichts:
Configuring your environment - Mastodon documentation

//Edit

Ich hab schon mal das vorhandene zusammengefasst: init mastodon integration · Tealk/authentik@b77bd84 · GitHub

Die Dokumentation ist weder für Mastodon, noch für authentik besonders gut. Ich hab gegoogelt, durch die Sourcen gegrept und ausprobiert bis es gepasst hat. Redirect URI ist wie oben beschrieben:

https://mastodon.url /auth/auth/openid_connect/callback

mastodon.url durch deine Instanz ersetzen

Ok mir kam das nur komisch vor, weil warum muss man Mastodon seine eigene URI noch mal mitgeben.

Danke für die vielen technischen Details. Für meine Anwendungsfälle suche ich eine Lösung, die so funktioniert, dass ein bestehendes Benutzerkonto am Server/Dienst A auch für den Login am Server/Dienst B verwendet werden kann. Damit würde sich auch das Problem lösen, dass bei bestehender, großer User-Base ein SSO nicht mehr sinnvoll aufgesetzt werden kann (siehe SSO für verschiedene Dienste - #12 von Tealk) .

Also aus Sicht eines Users, der sich am B anmelden will:


Melde dich an mit:

  • lokaler Benutzername: …………………………

oder

  • dein Benutzername auf Dienst A: …………………

Sehr cool wäre natürlich wenn das umgekehrt auch möglich wäre. Also mit den B-Credentials sich bei A anmelden.

Dafür wäre mir aktuell kein Weg bekannt.

1 „Gefällt mir“

Folgenden Vorschlag habe ich gerade in Authentik bekommen

das Feld sub im OIDC-Token ist ein eindeutiger Bezeichner, der (standardmäßig) auf der Grundlage der Benutzer-ID und des gehashten geheimen Schlüssels generiert wird, der sich im Gegensatz zum Benutzernamen nicht ändern kann

Bei der derzeitigen Einstellung würde ein Benutzer, der seinen Benutzernamen ändert, einen neuen Benutzer in mastodon erhalten.

Quelle

8 Beiträge wurden in ein neues Thema verschoben: Authentik Konfiguration für Writefreely