Identität mit SAML verbinden

Manche Organisationen haben bereits einen Benutzerverzeichnisdienst, der ihre Benutzerauthentifizierung und -berechtigung verwaltet, und sehen nur wenig Mehrwert in der Nutzung der eingebauten OpenDataSoft-Verwaltungsfunktionen. Um diesen Anwendungsfall abzudecken, unterstützt die OpenDataSoft-Plattform externe Identity Provider (IdP) über den SAMLv2-Standard. Damit kann eine Identitätsverbindung zwischen Ihrer Domain, die als Service Provider agiert, und diesem IdP eingerichtet werden. Diese Verbindung ermöglicht es Benutzern Ihrer Domain, sich über den Identity Provider mit der Plattform zu verbinden und - falls vorhanden - ihren aktiven Sicherheitskontext wiederzuverwenden, um einen SSO-Mechanismus zu erstellen. Eine solche Verbindung ermöglicht den Benutzerzugriff in 2 verschiedenen Modi: den Transient-Modus, bei dem Benutzer direkt erstellt werden, sobald sie von dem IdP bestätigt worden sind, und den verknüpften Modus, bei dem ein OpenDataSoft-Benutzerkonto über einen Satz Eigenschaften, den der IdP kennt, mit einer SAML-Identität verknüpft wird. Beide Modi können parallel auf einer Domain existieren, doch ein einzelner Benutzer kann sich nur über einen einzigen Modus verbinden.

Transient-Modus

Im Transient-Modus kann sich jeder Benutzer durch SAML verbinden, wenn er auf dem von einer Domain als vertrauenswürdig angesehenen IdP ein Benutzerkonto, jedoch kein OpenDataSoft-Benutzerkonto besitzt. Auf der Grundlage der SAML-Einstellungen für die Domain wird ein transienter Benutzer für den Benutzer erstellt. Zu diesen Einstellungen gehören der Konto-Mapper (der Satz IdP-gesandter Parameter, die einen Benutzer nur identifizieren) und der Attribut-Mapper (die Parameter, die dem Vornamen, Nachnamen und der E-Mail-Adresse des Benutzers entsprechen). Diese transienten Benutzer sind berechtigt, die öffentlichen Datensätze der Domain zu durchsuchen. Mit der generischen "SAML Users"-Gruppe können diese Benutzer zusätzliche Berechtigungen erhalten. Transiente Benutzer dürfen keine Sonderberechtigungen für einzelne Datensätze erhalten bzw. zu Gruppen hinzugefügt werden (außer der "SAML Users"-Gruppe, bei der sie automatisch Mitglied sind).

Der Transient-Modus kann in der SAML-Konfiguration über das Kontrollkästchen "Transiente Authentifizierung deaktivieren" vollständig deaktiviert werden. Ist der Transient-Modus deaktiviert, können nur verknüpfte Benutzer eine Verbindung über SAML herstellen.

Verknüpfter Modus

Im verknüpften Modus können Benutzer mit einem OpenDataSoft-Benutzerkonto dieses Konto mit bestimmten Werten aus den Parametern verknüpfen, die in den Einstellungen des Konto-Mappers definiert sind. Sobald die Verknüpfung erstellt ist, werden Benutzer, die sich über SAML einloggen, in ihr OpenDataSoft-Kundenkonto eingeloggt. Verknüpfte Benutzer können dieselben Berechtigungen haben und zu Gruppen hinzugefügt werden wie normale Benutzer (denn sie sind normale Benutzer). Sie sind zudem automatisch Mitglieder der "SAML Benutzer"-Gruppe. Dieser Modus ermöglicht eine feinkörnigere Berechtigungskontrolle und bietet dabei die meisten Vorteile des Transient-Modus. Der einzige Nachteil liegt darin, dass die Benutzer zunächst ein Konto auf der Domain erstellen müssen, bevor sie es mit ihrer SAML-Identität verknüpfen können. Es gibt zwei Methoden zum Verknüpfen eines OpenDataSoft-Benutzerkontos. Die erste besteht darin, dass Sie auf "Ihr Konto mit einem SAML-Konto auf dieser Domain verknüpfen" in der Registerkarte Identität der Benutzerkonto-Einstellungen klicken.

"Link your account to a SAML account on this domain" link in the identity tab of the user account settings

Eine weitere Methode ist das Erstellen der Verknüpfung während des Kontoerstellungsprozesses durch Klicken auf den Link zum Abschließen der Registrierung über SAML. Dies beschleunigt den Kontoerstellungsprozess und die Kontoverknüpfung.

Account registration in SAML enabled domains

Automatisches Single Sign-on

Die OpenDataSoft-Plattform bietet die Möglichkeit zur automatischen Anmeldung der Benutzer, wenn diese die Domain zum ersten Mal besuchen. Dabei wird der SAML-Authentifizierungsprozess für anonyme Benutzer gestartet, so als ob sie auf "Mit SAML anmelden" geklickt hätten, sobald sie eine Seite der Domain (dies gilt für fast alle Seiten) aufrufen. Diese Funktion ist nur für private Domains sinnvoll, da sie den anonymen Zugriff auf die Domain verhindert. Ist das automatische Single Sign-on aktiviert, können Benutzer, die sich mit ihren OpenDataSoft-Anmeldeinformationen bei der Plattform anmelden möchten, dies tun, indem sie die Login-Seite der Domain unter "https://<platform-url>/login/" aufrufen.

Single Log-out

Die OpenDataSoft-Plattform unterstützt das standardmäßigen SAML Single Log-out-Verfahren unter Einsatz der HTTP-Redirect-Bindung. Wird dies vom IDP unterstützt, hat die Abmeldung eines über SAML verbundenen Benutzers eine Abmeldung beim IDP zur Folge und die Abmeldeanfrage des IDP führt zur Abmeldung des Benutzers auf der Plattform.

Registrieren und Konfigurieren eines Identity Providers

  1. Navigieren Sie zur Anmeldeseite in der Domain-Konfigurationsschnittstelle.

Signup configuration page
  1. Klicken Sie auf "Zugriff für SAML-Benutzer erlauben"

SAML IDP configuration interface
  1. Kopieren Sie Ihr Identity Provider Metadatendokument in das Feld "IDP Metadatendokument".

  2. Falls Sie Microsoft Azure Active Directory als IDP verwenden, klicken Sie das entsprechende Kontrollkästchen an.

  3. Wenn Sie den Transient-Modus deaktivieren und damit sicherstellen möchten, dass nur verknüpfte Benutzer über SAML eine Verbindung zur Plattform herstellen können, so markieren Sie das entsprechende Kontrollkästchen.

  4. Geben Sie den vom IDP gesandten Attributsatz ein, der nur den Benutzer definiert.

    Falls die Benutzer durch ihre NameID definiert werden und das NameID-Format nicht transient ist, muss nichts ausgefüllt werden.

    Wenn Ihre Benutzer beispielsweise durch das von Ihrem IdP übermittelte Attribut "FirstName" und "LastName" definiert sind, geben Sie zunächst "FirstName" in die Box ein, drücken Sie auf Enter, geben Sie danach "LastName" ein und drücken Sie erneut auf Enter.

  5. Geben Sie die Attribut-Mappings für den Benutzernamen ein: Nachname, Vorname und E-Mail-Adresse.

    Hier müssen Sie die Feldnamen angeben, wie sie vom Identity Provider gesandt wurden.

    Wenn Ihr Identity Provider beispielsweise den Vornamen des verbundenen Benutzers in einem Attribut namens "GivenName" übermittelt, ist es dieser Name, den Sie in das Feld "FirstName" eingeben müssen.

    Falls Ihr Identity Provider Ihnen aus irgendeinem Grund nicht alle diese Elemente übermittelt, lassen Sie die entsprechenden Felder bitte frei. Die Plattform generiert sie automatisch auf Grundlage anderer verfügbarer Attribute.

  6. Optionale Eingabe einer Zugangsbedingung.

    Die erste Box ist der Name des Attributs, das geprüft werden soll, und die zweite der Wert dieses Attributs. Wenn Sie nur das Vorhandensein eines Attributs prüfen möchten, ohne Wertbegrenzung, können Sie die zweite Box einfach leer lassen.

    Falls Ihnen beispielsweise Ihr Identity Provider eine Liste mit "Rollen" für die Benutzer zuschickt und Sie sicherstellen wollen, dass nur diejenigen Benutzer Zugang erhalten, die eine Rolle haben, dann geben Sie "Rollen" in die erste Box unter "Bedingter Zugang" ein. Wenn Sie nur Benutzern mit der Rolle "DataAccess" eine Verbindung zur Domain erlauben wollen, geben Sie bitte "DataAccess" in die zweite Box ein.

  7. Optionale Konfiguration des automatischen Single Sign-on

    Die Konfiguration des automatischen Single Sign-on ist auf der Sicherheitsseite der Domain-Konfiguration zu finden.

SAML auto-sso configuration interface in the anonymous access section of the security configuration page

Konfigurieren Ihres Identity Providers

Die Konfiguration des Identity Providers hängt von der Implementierung ab. Sie umfasst jedoch in jedem Fall den Import des Metadatendokuments des Service Providers, um einen Identitätsverbund zu ermöglichen.

Sie können das Metadatendokument für Ihre OpenDataSoft -Domain auf https://<YOUR DOMAIN>.opendatasoft.com/saml2/metadata.xml herunterladen.

Benutzerattribute zum Filtern von Daten vewenden

Über die Funktion #attr können Sie Datensatzeinträge so filtern, dass nur Einträge zurückgegeben werden, die einem Wert entsprechen, der in den vom IdP gesendeten Benutzerattributen festgelegt wurde. Bei den folgenden Beispielen nehmen wir an, dass wir die 3 Benutzer mit den entsprechenden Benutzernamen und SAML-Attributen user-country (Benutzerland) und user-language (Benutzersprache) laut folgender Tabelle haben.

Benutzer

Benutzerland

Benutzersprache

Benutzer1

Frankreich

Französisch

Benutzer2

Kanada

Französisch

Benutzer3

Vereinigte Staaten

Englisch

Und einen Datensatz mit Einträgen laut folgender Tabelle.

Land

Sprache

Nachricht

Weltweit

Englisch

Hallo allerseits

Frankreich

Französisch

Bonjour à tous les Français

Kanada

Französisch

Bonjour à tous les Canadiens

Kanada

Englisch

Hello to all Canadians

Vereinigte Staaten

Englisch

Hello to all Americans

Mit der Anfrage #attr(country, user-country) können wir Beschränkungen für diese Benutzer festlegen, damit sie nur für ihr jeweiliges Land geltende Nachrichten sehen.

Benutzer1 sieht

Land

Sprache

Nachricht

Frankreich

Französisch

Bonjour à tous les Français

Benutzer2 sieht

Land

Sprache

Nachricht

Kanada

Französisch

Bonjour à tous les Canadiens

Kanada

Englisch

Hello to all Canadians

Benutzer3 sieht

Land

Sprache

Nachricht

Vereinigte Staaten

Englisch

Hello to all Americans

Mit der Anfrage #attr(language, user-language) können wir auch Beschränkungen für diese Benutzer festlegen, damit sie nur Nachrichten in ihrer jeweiligen Sprache sehen.

Benutzer1 sieht

Land

Sprache

Nachricht

Frankreich

Französisch

Bonjour à tous les Français

Kanada

Französisch

Bonjour à tous les Canadiens

Benutzer2 sieht

Land

Sprache

Nachricht

Frankreich

Französisch

Bonjour à tous les Français

Kanada

Französisch

Bonjour à tous les Canadiens

Benutzer3 sieht

Land

Sprache

Nachricht

Weltweit

Englisch

Hallo allerseits

Vereinigte Staaten

Englisch

Hello to all Americans

Da dies eine Funktion der Anfragensprache ist, kann sie auch mit den üblichen Operatoren gruppiert werden. Zum Beispiel können wir mit der Anfrage #attr(language, user-language) AND #attr(country, user-country) Beschränkungen für Benutzer festlegen, damit sie nur Nachrichten sehen, die ihrem Land und ihrer Sprache entsprechen.

Benutzer1 sieht

Land

Sprache

Nachricht

Frankreich

Französisch

Bonjour à tous les Français

Benutzer2 sieht

Land

Sprache

Nachricht

Kanada

Französisch

Bonjour à tous les Canadiens

Benutzer3 sieht

Land

Sprache

Nachricht

Vereinigte Staaten

Englisch

Hello to all Americans