Verwenden mehrerer Identitätsanbieter für die Verbundauthentifizierung

Sie können Snowflake so konfigurieren, dass sich Benutzer bei mehreren Identitätsanbietern (IdPs) authentifizieren können.

Die Implementierung einer Verbundumgebung, die mehrere IdPs verwendet, besteht aus folgenden Schritten:

  1. ID-First-Anmeldeablauf aktivieren (unter diesem Thema).

  2. Jeden Identitätsanbieter konfigurieren

  3. Mehrere SAML-Sicherheitsintegrationen erstellen, eine für jeden IdP.

  4. Benutzern IdPs zuordnen (unter diesem Thema).

Bemerkung

Beachten Sie bei der Implementierung einer Umgebung mit mehreren IdPs die folgenden Punkte:

  • Jeder IdP muss eine entsprechende SAML-Sicherheitsintegration haben. Wenn Sie eine bestehende Einzel-IdP-Umgebung haben, die den veralteten SAML_IDENTITY_PROVIDER-Parameter verwendet, müssen Sie Ihre Umgebung mit der Funktion SYSTEM$MIGRATE_SAML_IDP_REGISTRATION auf eine SAML-Sicherheitsintegration migrieren.

  • Derzeit unterstützt nur eine Teilmenge der Snowflake-Treiber die Verwendung mehrerer Identitätsanbieter. Zu diesen Treibern gehören JDBC, ODBC und Python.

ID-First-Anmeldung aktivieren

Wenn die Verbundumgebung für ein Konto mehrere IdPs verwendet, muss Snowflake in der Lage sein, zu bestimmen, welche IdPs mit einem Benutzer verbunden sind, bevor dem Benutzer Authentifizierungsoptionen angeboten werden. In diesem Anmeldeablauf fordert Snowflake den Benutzer nur zur Eingabe seiner E-Mail-Adresse oder seines Benutzernamens auf und zeigt nach der Identifizierung des Benutzers Authentifizierungsmethoden an. Nur IdPs, die dem Benutzer zugeordnet sind, werden als Authentifizierungsoptionen angezeigt.

Wenn Sie mehrere IdPs verwenden, muss der ID-First-Anmeldeablauf aktiviert sein. Um die ID-First-Anmeldung zu aktivieren, setzen Sie den Parameter ENABLE_IDENTIFIER_FIRST_LOGIN auf TRUE.

  1. Melden Sie sich bei Snowsight an.

  2. Wählen Sie im Navigationsmenü die Option Projects » Worksheets aus.

  3. Führen Sie die folgenden SQL Anweisungen aus:

    USE ROLE ACCOUNTADMIN;
    ALTER ACCOUNT SET ENABLE_IDENTIFIER_FIRST_LOGIN = true;
    
    Copy

Weitere Informationen zum ID-First-Anmeldeablauf finden Sie unter ID-First-Anmeldung.

Benutzern IdPs zuordnen

In einer Umgebung mit mehreren IdPs können Sie entscheiden, wie Sie einen Benutzer einem IdP zuordnen möchten. Sie können die mit einem IdP verbundene Sicherheitsintegration oder eine Authentifizierungsrichtlinie verwenden oder beide Methoden kombinieren.

Sicherheitsintegration:

Verwenden Sie die Eigenschaften ALLOWED_USER_DOMAINS und ALLOWED_EMAIL_PATTERNS der SAML2-Sicherheitsintegration, die mit jedem IdP verbunden ist. In dieser Konfiguration sieht ein Benutzer nur dann einen IdP als Authentifizierungsoption, wenn sein EMAIL-Wert mit einer E-Mail-Adressdomäne oder einem Muster in der Sicherheitsintegration übereinstimmt.

Authentifizierungsrichtlinie:

Verwenden Sie die Eigenschaft SECURITY_INTEGRATIONS einer Authentifizierungsrichtlinie, um anzugeben, welche Sicherheitsintegrationen dem Benutzer zur Verfügung stehen. Bei dieser Konfiguration wird die Authentifizierungsrichtlinie einem gesamten Konto oder einem einzelnen Benutzer zugewiesen. Ein Benutzer kann sich nur mit IdPs authentifizieren, die mit Sicherheitsintegrationen verbunden sind, die in der Authentifizierungsrichtlinie angegeben sind.

Wenn Sie möchten, dass ein Benutzer nur die Identitätsanbieter sieht, die er verwenden darf, erstellen Sie mehrere Authentifizierungsrichtlinien, und weisen Sie dann einem Benutzer die entsprechende Richtlinie zu.

Ein Beispiel für die Verwendung einer Authentifizierungsrichtlinie zur Implementierung mehrerer IdPs finden Sie unter Authentifizierung von mehreren Identitätsanbietern für ein Konto zulassen.

Kombiniert:

Sie können die Methoden der Sicherheitsintegration und der Authentifizierungsrichtlinien kombinieren, um die Benutzerauthentifizierung in einer Umgebung mit mehreren IdPs weiter zu verfeinern.

Wenn Sie beide Methoden verwenden, wertet Snowflake zunächst aus, welche Sicherheitsintegrationen mit der Authentifizierungsrichtlinie verbunden sind, die für die Anmeldung des Benutzers gelten. Sobald Snowflake die Sicherheitsintegrationen identifiziert hat, wird der EMAIL-Wert des Benutzers anhand der Eigenschaften ALLOWED_USER_DOMAINS und ALLOWED_EMAIL_PATTERNS mit einer der Integrationen abgeglichen. Snowflake zeigt nur die IdP-Option der Sicherheitsintegration an, die mit dem EMAIL-Wert des Benutzers übereinstimmt.

Verwenden Sie mehrere SAML2-Sicherheitsintegrationen mit Microsoft Entra ID mit derselben Aussteller-ID

Dieser Abschnitt führt Sie durch die Konfiguration von Snowflake und Microsoft Entra ID, damit sich Benutzer über SSO mit einem öffentlichen oder privaten Aussteller-URL authentifizieren können. Sie können zwei verschiedene SAML2 Sicherheitsintegrationen mit Microsoft Entra ID verwenden, um dieses Erlebnis zu realisieren. Sie können Microsoft Entra ID so konfigurieren, dass zwischen öffentlichem und privatem Ausstellern-URLs unterschieden wird, indem Sie an jeden Aussteller eine andere Anwendung ID anhängen URL.

Bevor Sie fortfahren, müssen Sie den ID-First-Anmeldeablauf aktivieren.

In den folgenden Abschnitten erfahren Sie, wie Sie mehrere SAML2 Sicherheitsintegrationen mit Microsoft Entra ID und demselben Aussteller ID nutzen können:

Konfigurieren Sie Microsoft Entra ID, um die Anwendung IDs an den Microsoft Entra-Bezeichner anzuhängen URLs

  1. Melden Sie sich an bei Microsoft Azure an.

  2. Wählen Sie unter Azure services die Option Microsoft Entra ID aus.

  3. Wählen Sie im linken Navigationsbereich die Option Manage » Enterprise applications aus.

  4. Wählen Sie Ihre Anwendung.

  5. Wählen Sie im linken Navigationsbereich die Option Manage » Single sign-on aus.

  6. Wählen Sie in Attributes & Claims die Option Edit aus.

  7. Erweitern Sie unter Additional claims die Option Advanced settings.

  8. Wählen Sie neben Advanced SAML claims options die Option Edit.

    Auf der rechten Seite wird ein Bereich angezeigt.

  9. Wählen Sie Append application ID to issuer aus.

Erfassen Sie die Anmeldung URL, den Microsoft Entra Bezeichner und die Anwendung ID

  1. Stellen Sie sicher, dass Sie Microsoft Entra ID konfiguriert haben.

  2. Wählen Sie im linken Navigationsbereich die Option Manage » Single sign-on aus.

  3. Speichern Sie unter Set up <your application name> die folgenden Werte für später:

    • Login URL

    • Microsoft Entra Identifier

  4. Wählen Sie im linken Navigationsbereich die Option Overview aus.

  5. Speichern Sie unter Properties die Application ID für später.

  6. Wiederholen Sie den Vorgang für weitere Anwendungen.

Erstellen Sie öffentliche und private SAML2-Sicherheitsintegrationen

  1. Stellen Sie sicher, dass Sie Microsoft Entra ID konfiguriert haben.

  2. Stellen Sie sicher, dass Sie die Anmeldungs-URL, den Microsoft Entra-Bezeichner und die Anwendung ID erfasst haben.

  3. Melden Sie sich bei Snowsight an.

  4. Wählen Sie im Navigationsmenü die Option Projects » Worksheets aus.

  5. Wechseln Sie zu einer Rolle mit der Berechtigung CREATE INTEGRATION.

  6. Führen Sie die folgende SQL-Anweisung aus, um eine SAML2-Sicherheitsintegration zu erstellen:

    CREATE OR REPLACE SECURITY INTEGRATION entra_id_public
      TYPE = SAML2
      ENABLED = TRUE
      SAML2_ISSUER = '<microsoft_entra_identifier>/<application_id>'
      SAML2_SSO_URL = '<login_url>'
      SAML2_PROVIDER = 'CUSTOM'
      SAML2_X509_CERT = 'MIIC...TAs/'
      SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'Entra ID SSO Public'
      SAML2_ENABLE_SP_INITIATED = TRUE
      SAML2_SNOWFLAKE_ACS_URL = 'https://<organization_name>-<account_name>.snowflakecomputing.com/fed/login'
      SAML2_SNOWFLAKE_ISSUER_URL = 'https://<organization_name>-<account_name>.snowflakecomputing.com';
    
    Copy

    Dabei werden die folgenden Platzhalter durch die Werte ersetzt, die Sie zuvor erfasst haben:

    Platzhalter

    Beispielwert

    <Anmeldungs-URL>

    https://login.microsoftonline.com/91ccae45-d439-xxxx-xxxx-e22c06bfe4f9/saml2

    <Microsoft Entra-Bezeichner>

    https://sts.windows.net/91ccae45-d439-xxxx-xxxx-e22c06bfe4f9

    <Anwendungs-ID>

    456xyz00-4567-4567-4567-4567xyz5678

    <Organisationsname>

    EXAMPLE-USER12_AA12

    <Kontoname>

    MSMITH

  7. Erstellen Sie eine weitere SAML2-Sicherheitsintegration, indem Sie die private Anwendung ID an den Microsoft Entra-Bezeichner im Parameter SAML2_ISSUER anhängen.