Sie können den Arbeitsbereich „Authentifizierung“ verwenden, um SSO in SaltStack Config für die Zusammenarbeit mit einem Authentifizierungssystem zu konfigurieren, das mit den OAuth- und OIDC-Protokollen kompatibel ist.

OAuth-SSO (Single Sign-On) ist eine Funktion, die von vielen Organisationen während der Implementierung von SaltStack Config folgendermaßen konfiguriert wird:

  • Benutzer benötigen weniger Zeit zur Anmeldung bei Diensten mit derselben Identität. Benutzer werden nach der Anmeldung bei einem der Dienste in einer Einrichtung automatisch bei jedem weiteren Dienst authentifiziert, der SSO verwendet.
  • Weniger verschiedene Kennwörter. Der Benutzer muss sich nur einen Anmeldedatensatz anstelle mehrerer Datensätze merken.

Viele Dienste stellen Implementierungen des OAuth-Protokolls mit Unterstützung für OIDC bereit, einschließlich OKTA, Google, Microsoft, GitLab, Zendesk, Apple, Keycloak, Salesforce usw.

Hinweis: SaltStack Config bietet derzeit lediglich Unterstützung für die OAuth- und OIDC-Authentifizierung über OKTA und Google.
Hinweis: Gegebenenfalls können Sie gleichzeitig mehrere Systeme zum Authentifizieren von Benutzern in SaltStack Config verwenden. Sie können beispielsweise sowohl einen SAML-basierten als auch einen LDAP-basierten Identitätsanbieter verwenden und gleichzeitig bestimmte Benutzeranmeldedaten nativ auf dem RaaS-Server speichern. Allerdings ist es in SaltStack Config nicht möglich, mehr als zwei SAML-Provider oder zwei LDAP-Provider gleichzeitig zu konfigurieren.
Tabelle 1. Terminologie der OAuth- und OIDC-Authentifizierung
Begriff Definition
OAuth

OAuth 2.0 ist ein offenes Protokoll (gelegentlich auch als Standard bezeichnet) für die Zugriffsdelegierung, bei der der Benutzer Aktionen auf einer Website ausführen kann, nachdem die Identität des Benutzers mit einem Sicherheitstoken authentifiziert wurde. Dieses Protokoll wird häufig von Benutzern verwendet, um Anwendungen Zugriff auf ihre Daten in anderen Drittanbieteranwendungen zu erteilen, ohne ihre Zugangsdaten (Kennwörter) preiszugeben.

Bei OAuth handelt es sich um browserbasiertes Single Sign-On (SSO). OAuth ermöglicht die Ausgabe von Zugriffstoken an Drittanbieter-Clients durch einen Autorisierungsserver mit Genehmigung des Ressourcenbesitzers. Der Drittanbieter verwendet das Zugriffstoken dann für den Zugriff auf die geschützten Ressourcen, die vom Ressourcenserver gehostet werden.

Open ID Connect (OIDC)

Open ID Connect (OIDC) ist eine einfache Identitätsschicht oberhalb des OAuth 2.0-Protokolls. Mit OIDC können Clients die Identitäten des Benutzers basierend auf der von einem Autorisierungsserver durchgeführten Authentifizierung überprüfen. Mit OIDC können auch grundlegende Profilinformationen über den Benutzer anwendungsübergreifend abgerufen werden.

Ressourcenbesitzer Der Ressourcenbesitzer ist der Benutzer, der einer Anwendung den Zugriff auf ihr Konto autorisiert. Der Zugriff der Anwendung auf das Benutzerkonto ist auf den Geltungsbereich der erteilten Autorisierung beschränkt, wie z. B. Lese- oder Schreibzugriff.
Client Der Client ist die Drittanbieteranwendung, die Zugriff auf das Konto des Benutzers benötigt, in diesem Fall SaltStack Config.
Autorisierungsserver Der Autorisierungsserver hostet die geschützten Benutzerkonten und Anmeldedaten. Er überprüft die Identität des Benutzers und gibt dann Zugriffstoken an den Client aus. Auf diesen Server wird häufig über die API des Diensts zugegriffen.
Ressourcenserver

Der Ressourcenserver ist der API-Server, der für den Zugriff auf die Benutzerinformationen verwendet wird. Authentifizierte Anforderungen werden verarbeitet, nachdem der Client ein Zugriffstoken erhalten hat. Kleinere Bereitstellungen verfügen in der Regel nur über einen Ressourcenserver und werden häufig als Teil derselben Codebasis oder derselben Bereitstellung wie der Autorisierungsserver erstellt.

Umfangreiche Bereitstellungen können über mehr als einen Ressourcenserver verfügen. Alle Ressourcenserver sind eindeutig voneinander getrennt, verwenden aber alle denselben Autorisierungsserver.

Für OIDC muss sich der Benutzer zuerst bei SaltStack Config anmelden, damit er als Benutzer zur lokalen Benutzerdatenbank hinzugefügt werden kann. Nach der Erstanmeldung der Benutzer werden deren Rollen und Berechtigungen wie bei Benutzern verwaltet, deren Anmeldeinformationen lokal in SaltStack Config auf dem RaaS-Server gespeichert sind. Nach der Erstanmeldung des Benutzers können Sie den Arbeitsbereich „Rollen“ verwenden, um diesem Benutzer die entsprechenden Rollen und Berechtigungen zuzuweisen.

Funktionsweise von OAuth und OIDC mit SaltStack Config

Wenn Sie sich mit einer OAuth-Identität bei SaltStack Config anmelden:

  1. Fordert SaltStack Config beim Benutzer die Berechtigung zum Zugriff auf Dienstressourcen an.
  2. Wenn der Benutzer die Anforderung autorisiert, erhält SaltStack Config eine Autorisierungserlaubnis.
  3. Fordert SaltStack Config ein Zugriffstoken beim Autorisierungsserver (API) an, indem eine Authentifizierung der eigenen Identität präsentiert wird.
  4. Wenn die Anwendungsidentität authentifiziert wird und die Autorisierungserlaubnis gültig ist, gibt der Autorisierungsserver (API) ein Zugriffstoken an SaltStack Config aus.
  5. Fordert SaltStack Config die Ressource beim Ressourcenserver (API) an und präsentiert das Zugriffstoken für die Authentifizierung.
  6. Wenn das Zugriffstoken gültig ist, stellt der Ressourcenserver (API) der Anwendung die Ressource zur Verfügung. Der Benutzer darf sich dann bei SaltStack Config anmelden.

Voraussetzungen

Stellen Sie vor dem Konfigurieren von OAuth und OIDC in SaltStack Config sicher, dass Sie über den notwendigen Zugriff auf Ihren OAuth 2.0-Dienst für Ihre Organisation (entweder OKTA oder Google) verfügen und dass Sie mit dem Prozess der Anwendungsregistrierung einigermaßen vertraut sind.

Geben Sie auf der Website Ihres OAuth-Diensts grundlegende Informationen zu SaltStack Config ein, wie z. B. den Namen, die Website usw. Nach der Registrierung der Anwendung erhalten Sie einen geheimen Client-Schlüssel, den Sie SaltStack Config bereitstellen müssen.

Einer der wichtigsten Punkte beim Erstellen der Anwendung ist die Registrierung einer oder mehrerer Umleitungs-URLs, die von der Anwendung verwendet werden. Der OAuth 2.0-Dienst gibt den Benutzer nach der Autorisierung der Anwendung an die Umleitungs-URLs zurück.

Konfigurieren eines Identitätsanbieters

So richten Sie SSO mit dem bevorzugten OAuth- und OIDC-Dienst Ihrer Organisation ein:

  1. Klicken Sie im seitlichen Menü auf Verwaltung > Authentifizierung.
  2. Klicken Sie auf Erstellen.
  3. Wählen Sie im Menü Konfigurationstyp die Option OIDC aus.
  4. Weisen Sie dieser Konfiguration im Feld Name einen aussagekräftigen Namen zu.
  5. Wählen Sie im Menü OIDC-Anbieter entweder OKTA oder Google aus.
  6. Befüllen Sie die folgenden obligatorischen Felder mit den Informationen zu Ihrer SaltStack Config-Installation:
    Feld Beschreibung
    Basis-URI Die von Ihrer Organisation in SaltStack Config verwendete Basis-URL, die auch als Hostserveradresse bezeichnet wird. Diese URL wird entweder als FQDN oder als IP-Adresse formatiert, wie z. B. https://example.com.
    API-URL Die von Ihrem Identitätsanbieter bereitgestellte API-URL. Dieses Feld wird nur angezeigt, wenn es sich bei Ihrem Identitätsanbieter um OKTA handelt.
    Key Der von Ihrem Identitätsanbieter bereitgestellte Schlüssel. In OKTA wird der Schlüssel als Client-ID bezeichnet.
    Geheimer Schlüssel Der von Ihrem Identitätsanbieter bereitgestellte geheime Schlüssel. In OKTA wird der Schlüssel als geheimer Client-Schlüssel bezeichnet.
  7. Klicken Sie auf Speichern.

Die OIDC-Konfiguration für SaltStack Config ist jetzt abgeschlossen.