| Auszug | ||
|---|---|---|
| ||
Nuclos SSO OAuth2 OIDC: Authorization Code, Callback URL, ID Token, Userinfo, Nuclos user mapping, acr_values, 2FA, Refresh Token. |
Sprache: Deutsch · English
Single Sign-On per OAuth2/OIDC – Callback-URL, Benutzer-Mapping, Sitzungen und Zwei-Faktor-Authentifizierung.
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Status | ||||
|---|---|---|---|---|
|
| Panel | |||||
|---|---|---|---|---|---|
| |||||
Auf dieser Seite
|
...
|
Menüaufruf: (Administration) - (SSO Konfiguration)
...
Menü Administration → SSO Konfiguration. Nuclos unterstützt Single Sign-On per OAuth2 und OpenID Connect (OIDC)
...
mit dem Authorization Code Grant.
...
Aktive Dienste werden
...
beim
...
Start eines Clients als Login-Button angeboten.
...
Der Rich
...
Client
...
nutzt dabei den Webclient mit
...
: Der
...
Button
...
öffnet
...
den Browser
...
, führt durch die Authentifizierung und autorisiert damit auch den Rich
...
Client.
...
Der Webclient startet den Prozess direkt.
SSO-Login-Buttons beim Client-Start.
Die verfügbaren SSO-Dienste werden im Menü Administration gepflegt.
SSO-Dienste konfigurieren.
Immer den Root-Pfad des Webclients angeben, unter dem ihn ein Browser tatsächlich erreicht (Load Balancer/Reverse Proxy berücksichtigen), z.B
Auch in diesem Beispiel wird mit dem Login Button "Login with local Hydra" der Authentifizierungsprozess gestartet.
Die Konfiguration der zur Verfügung stehenden SSO Dienste erfolgt innerhalb eines Clients, zu finden im Menü Administration.
...
. https://my-nuclos-server.example/webclient.
...
Die nötigen
...
Werte nennt der SSO-Anbieter. Zum Testen kann Debug aktiviert werden – die Log-Ausgaben landen im server.log
...
.
...
Die
...
Benutzerinfos kommen entweder aus einem ID Token (Reiter ID token assertion, bevorzugt) oder vom Userinfo-Endpunkt (Reiter Userinfo assertion). Aus dem ClaimsSet muss E-Mail oder Benutzername des Nuclos-Benutzers hervorgehen; das passende Attribut wird unter Nuclos user mapping hinterlegt (zuerst E-Mail, dann Benutzername).
| Info | ||
|---|---|---|
| ||
Für die |
In beiden Fällen erhalten wir ein ClaimsSet (Beispiel aus dem Log: {"sub":"foo@bar.com","sid":"1bddcca8-bfbc-487c-a9d6-80f60e7e658d"}) in dem entweder die E-Mail Adresse oder der Benutername des Nuclos Benutzers enthalten sein muss, um die Authentifizierung Nuclos-seitig abzuschließen. Um die Ermittlung möglichst flexibel zu gestalten kann im Reiter Nuclos user mapping das Attribut des ClaimsSets hinterlegt werden. Die Suche über die E-Mail erfolgt zu erst, bleibt diese erfolglos wird noch eine Suche über den Benutzernamen versucht, falls konfiguriert. Eines von beidem muss also zwingend konfiguriert sein.
...
| title | Email Suche |
|---|
...
Ermittlung über die E-Mail |
...
-Adresse muss am Benutzer Login mit E-Mail-Adresse zulassen |
...
aktiviert sein. |
JSESSIONID; der OAuth2-Dienst wird dadurch geschont.Der OAuth2 Dienst wird zusätzlich zur anfänglichen Authentifizierung auch zur Erneurung der Refresh Tokens in regelmäßigen Abständen (bei Ablauf eines Tokens) angefragt, sofern vom Dienst bei der Anmeldung mitgeliefert. Werden keine geliefert, oder ist die Erneurung erfolglos wird der Benutzer ausgeloggt. Ein Richclient schließt sich nach Meldung der abgelaufenen Sitzung komplett. Da so womöglich ungespeicherte Änderungen verloren gehen, sollte möglichst der OAuth2 Dienst Refresh Tokens zur Verfügung stellen.
Für unseren Nuclos Server ist auch weiterhin die JSESSIONID (Cookie) ausschlaggebend und wird bei jedem Request geprüft. Ein OAuth2 Dienst wird damit möglichst wenig beansprucht.
Ein Logout in Nuclos hat bisher noch keine Auswirkungen auf den OAuth2 Dienst, wird also (noch) nicht weitergeleitet, es wird lediglich die Nuclos Sitzung beendet. Auch wirkt sich ein Logout im OAuth2 Dienst noch nicht direkt auf eine Nuclos Sitzung aus. Nur indirekt, da zu erwarten ist, dass ein Refresh Token nicht erneuert werden kann.
Sticky Sessions (Clustering)
Ein Clustering von Nuclos Application Servern setzt zwangsläufig Sticky Sessions vorraus, da es für eine Sitzung Informationen geben kann, die nur am Application Server abgelegt und nicht unter den Servern ausgetauscht werden. SSO relevante Informationen (Tokens etc.) gehören auch dazu.
...
...
Parameter acr_values
...
...
Im Screenshot wird durch "strongAuth4000Service" eine 2-FA Authentifizierung erzwungen. Dieser einzutragende Wert ist von System zu System unterschiedlich.
Parameter Auth Level
...
acr_values bestimmte Anmeldeverfahren (z.B. 2-FA); der Wert ist systemabhängig.