Zum Hauptinhalt springen

Single Sign On

Wenn Sie die SQUILD Sovereign Cloud (Openstack; im Folgenden SQSC) nutzen, gibt es zwei Möglichkeiten, wie Sie sich in der Verwaltungs-Konsole (Skyline) anmelden können und wie Sie weiteren Benutzern auf die Konsole Zugriff gewähren können:

  1. Benutzer können direkt in der SQSC angelegt werden. Dies geschieht durch den SQUILD Support.
  2. Wenn Sie bereits über eine eigene Benutzerverwaltung verfügen (z.B. Keycloak, Zitadel, ActiveDirectory oder EntraID), können Sie diese als Identity Provider für die SQSC anlegen.

Im Folgenden ist erklärt, wie Sie Ihre eigene Benutzerverwaltung an die SQUILD Sovereign Cloud anbinden können und wie Sie die Berechtigungen Ihrer Benutzer in der SQSC einstellen können.

Hinweis

Dieser Single Sign On funktioniert nur an der SQSC Konsole von SQUILD. Die Anmeldung an anderen System der sqCloud (z.B. sqCloudControl) funktioniert damit nicht.

Anwendungsbeispiel

Wenn Sie Ihre Benutzerverwaltung als einen Identity Provider bei uns angelegt haben, dann funktioniert die Anmeldung an der SQSC Konsole (Skyline) wie folgt:

(In diesem Beispiel gehen wir davon aus, dass in Ihrer Benutzerverwaltung der Benutzer Max Muster mit dem Benutzernamen mmuster existiert, und Ihr Unternehmen als E-Mail-Domäne mycompany.de benutzt)

  1. Max Muster möchte sich in der SQSC Konsole anmelden (https://skyline.sqsc.sqcloud.net)
  2. Auf der Login-Seite klickt er nun auf den Knopf "Single Sign On", anstatt seine Anmeldedaten anzugeben
  3. Er wird auf die SSO-Seite weitergeleitet. Dort gibt er seine E-Mail-Adresse ein (z.B. mmuster@mycompany.de)
  4. Er wird daraufhin zu Ihrer Benutzerverwaltung weitergeleitet, wo er sich authentifizieren muss (z.B. per Passwort).
  5. Wenn die Authentifizierung erfolgreich war, wird er zurück zu der SQSC Konsole weitergeleitet, wo er jetzt auch angemeldet ist.

Grundlagen

Stark vereinfacht funktioniert die SSO-Authentifizierung folgendermaßen

Voraussetzungen

Um Ihre eigene Benutzerverwaltung an die SQSC anbinden zu können, müssen folgende Voraussetzungen erfüllt sein:

  1. Ihre Benutzerverwaltung muss aus dem Netzwerk von SQUILD aus erreichbar sein.
  2. Ihre Benutzerverwaltung unterstützt entweder SAML 2.0 oder OIDC 1.0
  3. Sie müssen die Berechtigung haben in Ihrer Benutzerverwaltung neue Clients/ neue Vertrauensstellungen anzulegen
  4. Ihre Benutzer müssen über eine E-Mail-Adresse verfügen in Ihrer Benutzerverwaltung. Diese E-Mail-Adresse wird später zur Anmeldung benutzt.
info

Diese Dokumentation beinhaltet nur eine Erklärung, wie ein Identity Provider auf unserer Seite angelegt werden kann.

Wenn der Provider auf unserer Seite angelegt wurde, muss auf Ihrer Seite in Ihrer Benutzerverwaltung ebenfalls ein Client (o.ä.) angelegt werden. Wie dies funktioniert, entnehmen Sie bitte der Dokumentation Ihrer Benutzerverwaltung. (Die notwendigen Daten zum Anlegen dieses Clients stellen wir Ihnen zur Verfügung, während Sie den IdentityProvider auf unserer Seite anlegen.)

Einschränkung

Wir erlauben nur einen IdentityProvider je Unternehmen.

Anlegen von IdentityProvidern

Sie können Ihren Identity Provider in sqCloudControl hier anlegen und verwalten:

Über Hinzufügen gelangen Sie zum Formular zum Anlegen Ihres Identity Providers.

Das Anlegen des Identity Providers erfolgt in mehreren Schritten:

  1. Allgemeine Daten
  2. Setup-Informationen zum Anlegen des Clients in Ihrer Benutzerverwaltung
  3. Konfiguration abhängig vom verwendeten Protokoll (SAML oder OIDC)
  4. Definition der Berechtigungen

Allgemeine Daten

  1. Ein beliebiger, sinnvoller Name, unter dem der Identity Provider in sqCloudControl angelegt werden soll (z.B. Zitadel-OIDC oder AD_SAML)
  2. Die E-Mail-Domänen die von Ihrem Unternehmen genutzt werden. Es muss mindestens eine Domäne angeben werden. (Über das + können weitere Domänen hinzugefügt werden)
  3. Soll die SQUILD eigene Multifaktor-Authentifizierung aktiviert werden?
Multifaktor-Authentifizierung

Wenn dies aktiv ist, dann müssen Ihre Benutzer sich nach der Authentifizierung an Ihrer Benutzerverwaltung noch mit einem zweiten Faktor authentifizieren, z.B. mit einem Passkey, YubiKey, oder einer 2FA App. Die Infrastruktur für diese MFA wird in dem Fall von SQUILD bereitgestellt.

Wenn Sie in Ihrer Benutzerverwaltung bereits einen MFA-Mechanismus aktiviert haben, würden Ihre Benutzer sich sowohl mit der MFA von Ihrer Benutzerverwaltung, als auch von SQUILD anmelden müssen.

Setup-Informationen zum Anlegen des Clients

Bitte erstellen Sie nun einen SAML oder OIDC Client in Ihrer Benutzerverwaltung (manchmal auch Vertrauensstellung, Anwendung oder App genannt). Hierfür können Sie die hier angezeigten Informationen verwenden. Je nachdem wie Sie den Client einrichten und welches Protokoll Sie verwenden, sind nicht unbedingt alle hier angezeigten Informationen zur Einrichtung notwendig.

Das Zertifikat können Sie zur Signatur-Validierung in Ihrem Client angeben.

E-Mail-Attribut

Bitte beachten Sie den Hinweis zur Einrichtung des Clients, so dass dieser bei der Authentifizierung die E-Mail-Adresse des Benutzers mit überträgt.

Login-URL

Die Login-URL ist für unseren Single Sign On tatsächlich gar nicht notwendig. Manche Identity Provider verlangen diese aber zur Einrichtung des Clients.

Spezielle Daten je nach Protokoll

Den Client, der von Ihnen im vorangegangenen Schritt eingerichtet wurde, muss die E-Mail-Adresse der User im Token übertragen. Der Attribut-/Claim-Name, der diese E-Mail Adresse enthält, muss im Email-Attribut-Feld eingetragen werden.

Email-Attribut

Es kann sich dabei um einen einfachen Bezeichner (z.B. emailaddress) oder um eine URL (z.B. http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress) handeln.

Mit dem Auswahlfeld Variante kann SAML bzw. OIDC ausgewählt werden. Je nach Variante unterscheiden sich die weiteren benötigten Daten. (siehe unten)

Importieren von Einstellungen (OIDC)

Der OIDC Spezifikation nach gibt es einen sogenannten Metadata Discovery Endpoint (o.ä.), über den verschiedene Daten zu Ihrer Benutzerverwaltung geladen werden können. Dies erleichtert die Einrichtung des Identity Providers.

Der Discovery Endpoint sollte so oder so ähnlich aussehen:

https://[IhreBenutzerverwaltung]/.well-known/openid-configuration

(Der Discovery Endpoint ist erkennbar an dem hinteren Teil dieser URL (/.well-known/openid-configuration))

Bitte ziehen Sie die Dokumentation Ihrer Benutzerverwaltung zu Rate, um den Discovery Endpoint Ihrer Benutzerverwaltung in Erfahrung zu bringen.

Discovery Endpoint

Wenn Sie eine .well-known-URL gefunden haben, können Sie diese testweise in einem Internetbrowser aufrufen. Es sollte Ihnen ein Text-Dokument mit JSON formatierten Daten angezeigt werden.

Wenn Sie die .well-known-URL gefunden haben, können Sie diese in das URL-Feld (siehe Screenshot oben) eingeben und die Daten laden. Die Konfiguration sollte dann schon mit sinnvollen Daten ausgefüllt werden, die zu Ihrer Benutzerverwaltung passen.

Kontrollieren Sie die Konfiguration bitte, bevor Sie zum nächsten Schritt wechseln.

Erklärung zu den Konfigurations-Möglichkeiten (OIDC)

NameErklärungBesonderheit
Validate SignatureWenn aktiv, werden die Signaturen der ID Tokens validiertEin Public Key zur Validierung muss zur Verfügung gestellt werden (siehe folgende Punkte)
Use JWKS URLBestimmt, ob zur Signatur-Validierung ein Public Key direkt angegeben wurde (siehe Felder Validating public key und Validating public key id) oder ob der Public Key über die JWKS URL bezogen werden sollNur sichtbar, wenn Validate Signature aktiv ist
Validating public keyDer Public Key in pem-Format, der zur Signatur-Validierung genutzt werden sollNur sichtbar, wenn Validate Signature aktiv und Use JWKS URL inaktiv ist
Validating public key idDie ID des Public Keys, der zur Signatur-Validierung genutzt wird.Nur sichtbar, wenn Validate Signature aktiv und Use JWKS URL inaktiv ist. (Kann auch leer bleiben.)
JWKS URLDie URL, über die der Public Key für die Signatur-Validierung bezogen werden kann.Nur sichtbar, wenn sowohl Validate Signature als auch Use JWKS URL aktiv sind.
Metadata Descriptor URLDie .well-known URL (Erklärung siehe oben)
User Info URLDie URL, über die UserProfil-Informationen bezogen werden können
Token URLDie URL, über die Token bezogen werden können
Authorization URLDie URL, über die die Autorisierung erfolgt
Logout URLDie URL, mit ein User seine Session beenden kannoptional
IssuerEine URL, mit der Ihre Benutzerverwaltung identifiziert werden kann / Die URL des Identitäts-Ausstellers
PKCEProof Key for Code Exchange; Ein Sicherheitsmechanismus, um mögliche Angreifer daran zu hindern, legitime Tokens zu erhaltenKann ungenutzt sein, oder entweder per S256 oder plain implementiert sein.
Client Authentication MethodEs gibt vier Optionen: Client Secret über Basic Auth, Client Secret über POST, JWT signiert mit Client Secret oder JWT signiert mit Private Key (weitere Erklärung siehe unten)
Client IDDie ID des Clients, den Sie in Ihrer Benutzerverwaltung für diesen Identity Provider angelegt haben(Bitte ziehen Sie die Dokumentation Ihrer Benutzerverwaltung zur Rate, um herauszufinden wie ein Client angelegt wird und wo die ClientID gefunden werden kann.)
Client SecretDas zur ClientID gehörige ClientSecret in Ihrer Benutzerverwaltung(Bitte ziehen Sie die Dokumentation Ihrer Benutzerverwaltung zur Rate, um herauszufinden wie ein Client angelegt wird und wo das Secret gefunden werden kann.)
Client Assertion Signing AlgorithmDer Algorithmus, der zum Erstellen der JWT Assertion genutzt werden soll. (weitere Erklärung siehe unten)
Client Assertion AudienceHiermit können die beabsichtigten Empfänger der Autorisierungs-Tokens eingeschränkt werden. Dies kann als Sicherheitsmechanismus dienen.Ist nur sichtbar, wenn als Client Authentication Method eine der JWT Methoden gewählt wurde.
Add X.509 Headers to JWTWenn aktiv, wird der x5t header zum JWT hinzugefügt, andernfalls wird die Key ID genutzt.Nur sichtbar, wenn als Client Authentication Method die Methode JWT signiert mit Private Key gewählt wurde

Client Authentication Method und Client Assertion Signing Algorithm

MethodeErklärung
Client Secret über Basic AuthDie Client-Zugangsdaten werden per HTTP Basic Authentication übertragen
Client Secret über POSTDie Client-Zugangsdaten werden im POST-Körper übertragen
JWT signiert mit Client SecretDie Autorisierung des Clients erfolgt per JWT (JSON Web Token), welches mit dem Client Secrets signiert wurde
JWT signiert mit Private KeyWie JWT signiert mit Client Secret aber signiert mit einem public-private Schlüssel-Paar

Wenn eine der beiden JWT-Methoden gewählt wurde, MUSS ein Client Assertion Signing Algorithm angegeben sein. Im Falle der Private Key-Methode ist RS256 der Default-Wert. Im Falle der JWT Client Secret-Methode ist HS256 der Default.

Definition der Berechtigungen

Diese Einstellungen sind notwendig, damit die User in Openstack auch die korrekten Berechtigungen in ihren Projekten haben (und sie überhaupt Openstack-Projekte sehen können.)

Dies funktioniert so, dass bestimmte Attribute der User in Ihrer Benutzerverwaltung bei der Anmeldung an Openstack mit übertragen werden und je nach Attribut-Wert wird dem User eine bestimmte Rolle in einem bestimmten Openstack-Projekt zugewiesen.

Ein Fallbeispiel:

  • Sie haben in Openstack ein Projekt namens A000XXX-1 und wollen dem User jsmith aus Ihrer Benutzerverwaltung lesenden Zugriff auf dieses Projekt geben.
  • Hierfür erstellen Sie in Ihrer Benutzerverwaltung eine Gruppe namens SQSC-lesend (Der Name ist frei wählbar) und weisen jsmith dieser Gruppe zu.
  • Im Client, den sie entsprechend den Angaben oben in Ihrer Benutzerverwaltung eingerichtet haben, stellen Sie nun ein, dass die Gruppenmitgliedschaften bei der Anmeldung mit übertragen werden. (Genau so, wie Sie auch eingestellt haben, dass die E-Mail-Adresse des Benutzers übertragen wird.) Sie stellen dies so ein, dass die Mitgliedschaften im Attribut groups stehen.
  • In sqCloudControl können Sie nun in diesem Berechtigungsformular folgende Angaben machen:
    • Attribut-Name: groups
    • Attribut-Wert: SQSC-lesend (Je nachdem wie Ihre Benutzerverwaltung funktioniert, kann es auch sein, dass hier ein Pfad, eine UUID oder ähnliches anzugeben ist)
    • Projekt: A000XXX-1
    • Rolle: reader

Bearbeiten von Identity Providern

Um den Identity Provider zu bearbeiten oder seine Einstellungen zu überprüfen, klicken Sie in der Identity Provider Liste in sqCloudControl auf das drei-Punkte-Menü des Providers und wählen Details.

Sie haben hier die Möglichkeiten:

  • Die SQUILD-Multifaktor-Authentifizierung zu (de)aktiveren (Im Reiter Allgemein)
  • Domänen zu bearbeiten (Im Reiter Domänen)
  • Die Konfigurations-Einstellungen zu prüfen und zu aktualisieren (Im Reiter Daten)
  • Die Berechtigungen zu ändern (Im Reiter Berechtigungen)