Microsoft Entra ID SCIM-Integration mit Snowflake

Snowflake unterstützt Microsoft Entra ID als SCIM-Identitätsanbieter.

Dieses Thema enthält Einzelheiten zur Bereitstellung von Microsoft Entra ID-Benutzern und -Gruppen in Snowflake.

Features

  • Automatische Microsoft Entra ID Benutzerbereitstellung für Snowflake.

  • Automatische Microsoft Entra ID-Gruppenbereitstellung für Snowflake.

  • Synchronisieren von Microsoft Entra ID-Benutzern und -Gruppen mit Snowflake

  • Wenn Microsoft Entra ID für SAML SSO für Snowflake konfiguriert ist, können für Snowflake bereitgestellte Microsoft Entra ID-Benutzer mit SAML SSO auf Snowflake zugreifen.

    Bemerkung

    Standardmäßig wird Microsoft Entra ID-Benutzern, die mit SCIM für Snowflake bereitgestellt wurden, in Snowflake kein Kennwort zugewiesen. Das bedeutet, dass, wenn SAML SSO in Microsoft Entra ID konfiguriert ist, die Benutzer sich bei Snowflake mit SSO authentifizieren.

    SAML SSO ist keine Anforderung, wenn Sie SCIM verwenden, um Benutzer und Gruppen von Microsoft Entra ID auf Snowflake bereitzustellen. Weitere Optionen finden Sie unter Entra ID-Single-Sign-On konfigurieren.

Einschränkungen

  • Snowflake unterstützt maximal 500 gleichzeitige Anforderungen pro Konto und SCIM-Endpunkt (z. B. den /Users-Endpunkt, den /Groups-Endpunkt). Nachdem Ihr Konto diesen Schwellenwert überschritten hat, gibt Snowflake einen 429-HTTP-Statuscode zurück (d. h. zu viele Anforderungen). Beachten Sie, dass diese Anforderungsbegrenzung in der Regel nur während der erstmaligen Bereitstellung auftritt, wenn eine relativ große Anzahl von Anforderungen (d. h. mehr als 10.000) an Bereitstellungsbenutzer oder -gruppen erfolgt.

Nicht unterstützt

  • AWS PrivateLink und Google Cloud Private Service Connect. Kunden, die Benutzer und Gruppen von Microsoft Entra ID aus für Snowflake bereitstellen möchten, ohne das öffentliche Internet zu nutzen, müssen über ein Snowflake-Konto in Microsoft Entra ID verfügen.

  • Wenn Sie Azure Private Link verwenden, um auf Snowflake zuzugreifen, stellen Sie sicher, dass Sie nicht die Azure Private Link-URL in den Integrationseinstellungen verwenden. Geben Sie den öffentlichen Endpunkt ein (d. h. ohne .privatelink), und stellen Sie sicher, dass die Netzwerkrichtlinie den Zugriff von den Azure-IP-Adressen erlaubt, wie im Abschnitt Voraussetzungen gezeigt. Andernfalls können Sie diese Integration nicht verwenden.

  • Übertragung der Eigentümerschaft von vorhandenen Benutzern und Rollen. Microsoft Entra ID ist die autorisierende Quelle für seine Benutzer und Gruppen. Die Gruppenmitgliedschaft kann unter Microsoft Entra ID aktualisiert werden. Bestehende Benutzer und Gruppen in Snowflake können jedoch nicht auf Microsoft Entra ID übertragen werden.

  • Microsoft Entra ID unterstützt derzeit nicht das Lesen oder Bereitstellen von verschachtelten Gruppen. Daher können Sie die Snowflake Microsoft Entra ID SCIM-Integration nicht zum Bereitstellen oder Verwalten verschachtelter Gruppen in Snowflake verwenden. Wenden Sie sich an Microsoft, um die Unterstützung verschachtelter Gruppen anzufordern.

  • Aktivieren oder Deaktivieren der Synchronisierung von Kennwörtern von Microsoft Microsoft Entra ID zu Snowflake.

    Wenn Sie in der Snowflake-Sicherheitsintegration die Eigenschaft SYNC_PASSWORD festlegen, werden keine Benutzerkennwörter von Microsoft Entra ID mit Snowflake synchronisiert. Dies ist eine Beschränkung von Microsoft Entra ID. Um Support anzufragen, wenden Sie sich bitte an Microsoft Entra ID.

Voraussetzungen

Bevor Sie SCIM verwenden, um Microsoft Entra ID-Benutzer und -Gruppen für Snowflake bereitzustellen, überprüfen Sie Folgendes:

  1. Ein bestehender Microsoft Entra ID-Mandant.

  2. Es ist ein Snowflake-Mandant vorhanden.

    • Während des Konfigurationsprozesses in Microsoft müssen Sie die URL des Snowflake-SCIM-Endpunkts eingeben (d. h. Tenant URL gemäß Microsoft Entra ID SCIM-Konfigurationsleitfaden). Der Snowflake-SCIM-Endpunkt besteht aus der Snowflake-Konto-URL mit angehängtem /scim/v2/. Wenn Sie beispielsweise das URL-Format mit Kontonamen verwenden, ist der SCIM-Endpunkt https://myorg-myaccount.snowflakecomputing.com/scim/v2/. Eine Liste der unterstützten Formate für die Snowflake-Konto-URL finden Sie unter Verbinden mittels URL.

  3. Mindestens ein Benutzer in Snowflake hat die Rolle ACCOUNTADMIN.

  4. Falls dies Ihr Konto betrifft, stellen Sie vor der Bereitstellung von Benutzern und Gruppen sicher, dass die Netzwerkrichtlinie in Snowflake den Zugriff von allen Azure -IP-Adressen für die Public Cloud oder die US Government Cloud aus zulässt. Derzeit ist für alle Azure IP-Adressen die Erstellung einer Microsoft Entra ID SCIM-Netzwerkrichtlinie erforderlich. Weitere Informationen dazu finden Sie unter Verwalten von SCIM-Netzwerkrichtlinien.

Konfiguration

Bei der Konfiguration in Snowflake wird eine SCIM-Sicherheitsintegration erstellt, damit die in Microsoft Entra ID erstellten Benutzer und Rollen Eigentum der Snowflake-Rolle AAD_PROVISIONER SCIM sind. Außerdem wird ein Zugriffstoken zur Verwendung in SCIM-API-Anforderungen erstellt. Das Zugangstoken (d. h. das Secret Token in der Microsoft Entra ID SCIM-Konfigurationsanleitung) ist sechs Monate lang gültig. Nach Ablauf müssen Sie ein neues Zugriffstoken manuell mit SYSTEM$GENERATE_SCIM_ACCESS_TOKEN erstellen, wie unten gezeigt.

Bemerkung

Um ein vorhandenes Zugriffstoken für eine SCIM-Integration ungültig zu machen, führen Sie eine DROP INTEGRATION-Anweisung aus.

Um die Verwendung von SCIM mit Snowflake fortzusetzen, erstellen Sie die SCIM-Integration mit einer CREATE SECURITY INTEGRATION-Anweisung neu, und generieren Sie dann mit SYSTEM$GENERATE_SCIM_ACCESS_TOKEN ein neues Zugriffstoken.

Microsoft Entra ID-Konfiguration

Um Microsoft Entra ID als SCIM-Identitätsanbieter zu verwenden, folgen Sie den Anweisungen in der Microsoft-Dokumentation. Während Sie diese Schritte ausführen, dürfen Sie eine bestehende Unternehmensanwendung in Microsoft Entra ID nicht wiederverwenden. Wenn das Erstellen einer neuen Unternehmensanwendung zur Bereitstellung fehlschlägt, kann dies zu unerwartetem Verhalten führen.

Bemerkung

Wenn Sie kundenspezifische Attribute erstellen und möchten, dass die Felder name und login_name für den Snowflake-Benutzer unterschiedliche Werte haben, wenden Sie sich an den Snowflake-Support, um separate Zuordnungen für Ihr Konto zu aktivieren, bevor Sie die kundenspezifischen Attribute erstellen.

Snowflake-Konfiguration

Kopieren Sie zur Vereinfachung der Snowflake-Konfiguration die folgenden SQL-Anweisungen, und verwenden Sie sie in diesem ersten Schritt. Jede der folgenden Anweisungen wird unten erläutert.

use role accountadmin;
create role if not exists aad_provisioner;
grant create user on account to role aad_provisioner;
grant create role on account to role aad_provisioner;
grant role aad_provisioner to role accountadmin;
create or replace security integration aad_provisioning
    type = scim
    scim_client = 'azure'
    run_as_role = 'AAD_PROVISIONER';
select system$generate_scim_access_token('AAD_PROVISIONING');
Copy

Wichtig

In den SQL-Beispielanweisungen wird die Systemrolle ACCOUNTADMIN verwendet, und die kundenspezifische Rolle AAD_PROVISIONER wird der Rolle ACCOUNTADMIN zugewiesen.

Es ist möglich, statt der Rolle ACCOUNTADMIN auch eine Rolle mit niedrigeren Berechtigungen zu verwenden. Die Verwendung einer Rolle mit niedrigeren Berechtigungen kann dazu beitragen, Konformitätsprobleme im Zusammenhang mit dem Zugriff mit den niedrigsten Berechtigungen zu beheben, jedoch kann die Verwendung einer Rolle mit niedrigeren Berechtigungen zu unerwarteten Fehlern bei der SCIM-Konfiguration und -Verwaltung führen.

Diese Fehler könnten darauf zurückzuführen sein, dass die Rolle mit niedrigeren Berechtigungen aufgrund der Art und Weise, wie die Rollen erstellt werden, und der daraus resultierenden Rollenhierarchie nicht über ausreichende Berechtigungen verfügt, um alle Rollen über SCIM zu verwalten. Um also Fehler in den Konfigurations- und Verwaltungsprozessen zu vermeiden, sollten Sie eine der folgenden Optionen wählen:

  1. Verwenden Sie die Rolle ACCOUNTADMIN, wie in den SQL-Beispielanweisungen gezeigt.

  2. Verwenden Sie eine Rolle mit der globalen Berechtigung MANAGE GRANTS.

  3. Wenn keine dieser beiden Optionen wünschenswert ist, verwenden Sie eine kundenspezifische Rolle, die über OWNERSHIP-Berechtigung für alle Rollen verfügt, die mit SCIM verwaltet werden.

  1. Melden Sie sich bei Snowflake als Administrator an, und führen Sie die folgenden Schritte entweder über die Snowflake-Arbeitsblattoberfläche oder über SnowSQL aus.

  2. Verwenden Sie die Rolle ACCOUNTADMIN.

    use role accountadmin;
    
    Copy
  3. Kundenspezifische Rolle AAD_PROVISIONER erstellen. Alle Benutzer und Rollen in Snowflake, die von Microsoft Entra ID erstellt werden, werden von der Rolle AAD_PROVISIONER verwaltet.

    create role if not exists aad_provisioner;
    grant create user on account to role aad_provisioner;
    grant create role on account to role aad_provisioner;
    
    Copy
  4. Erstellen Sie als ACCOUNTADMIN die Sicherheitsintegration mithilfe der Rolle AAD_PROVISIONER. Weitere Informationen dazu finden Sie unter CREATE SECURITY INTEGRATION.

    grant role aad_provisioner to role accountadmin;
    create or replace security integration aad_provisioning
        type=scim
        scim_client='azure'
        run_as_role='AAD_PROVISIONER';
    
    Copy
  5. Erstellen Sie das Autorisierungstoken, kopieren Sie es in die Zwischenablage, und speichern Sie es für die spätere Verwendung. Verwenden Sie dieses Token für jede SCIM-REST-API-Anforderung, und platzieren Sie es im Anforderungsheader. Das Zugriffstoken läuft nach sechs Monaten ab, doch mit dieser Anweisung kann ein neues Zugriffstoken generiert werden.

    select system$generate_scim_access_token('AAD_PROVISIONING');
    
    Copy

Von Snowflake initiiertes SSO aktivieren

Der SCIM-Bereitstellungsprozess aktiviert Single Sign-On (SSO) nicht automatisch.

Um SSO nach Abschluss des SCIM-Bereitstellungsprozesses zu verwenden, aktivieren Sie Von Snowflake initiiertes SSO.

Verwalten von SCIM-Netzwerkrichtlinien

Durch das Anwenden einer Netzwerkrichtlinie auf einer SCIM-Sicherheitsintegration kann die SCIM-Netzwerkrichtlinie von den Netzwerkrichtlinien, die für das gesamte Snowflake-Konto gelten, unterschieden werden. Dadurch kann der SCIM-Anbieter Benutzer und Gruppen bereitstellen, ohne IP-Adressen zu der Netzwerkrichtlinie hinzuzufügen, mit der der Zugriff für normale Benutzer kontrolliert wird.

Eine Netzwerkrichtlinie, die auf eine SCIM-Integration angewendet wird, überschreibt die Netzwerkrichtlinie, die auf das gesamte Snowflake-Konto angewendet wird, sie kann aber selbst von einer Netzwerkrichtlinie überschieben werden, die einem Benutzer zugewiesen ist.

Erstellen Sie zuerst die SCIM-Sicherheitsintegration und danach die SCIM-Netzwerkrichtlinie mit dem folgenden Befehl:

alter security integration aad_provisioning set network_policy = <scim_network_policy>;
Copy

Verwenden Sie folgenden Befehl, um die SCIM-Netzwerkrichtlinie zu deaktivieren:

alter security integration aad_provisioning unset network_policy;
Copy

Wobei:

aad_provisioning

Gibt den Namen der Microsoft Entra ID SCIM-Sicherheitsintegration an.

scim_network_policy

Gibt die Microsoft Entra ID SCIM-Netzwerkrichtlinie in Snowflake an.

Weitere Informationen dazu finden Sie unter Steuern des Netzwerkdatenverkehrs mit Netzwerkrichtlinien und ALTER SECURITY INTEGRATION.

Verwenden von Sekundärrollen mit SCIM

Snowflake unterstützt das Festlegen der Benutzer-Eigenschaft DEFAULT_SECONDARY_ROLES auf 'ALL' mit SCIM, um Benutzern die Verwendung von Sekundärrollen in einer Snowflake-Sitzung zu ermöglichen.

Ein typisches Beispiel finden Sie unter Benutzer aktualisieren.

Replizieren der Microsoft Entra ID SCIM-Sicherheitsintegration

Snowflake unterstützt Replikation und Failover/Failback der SCIM-Sicherheitsintegration vom Quellkonto in das Zielkonto.

Weitere Details dazu finden Sie unter Replikation von Sicherheitsintegrationen und Netzwerkrichtlinien über mehrere Konten hinweg.

Problembehandlung

  • Um sicherzustellen, dass Microsoft Entra ID Aktualisierungen an Snowflake sendet, überprüfen Sie die Protokollereignisse in Microsoft Entra ID für die Snowflake-Anwendung, und überprüfen Sie die SCIM-Überwachungsprotokolle in Snowflake, um sicherzustellen, dass Snowflake Aktualisierungen von Microsoft Entra ID empfängt. Verwenden Sie folgende SQL-Anweisung, um die Snowflake-SCIM-Überwachungsprotokolle abzufragen, wobei demo_db der Name der Datenbank ist.

    use role accountadmin;
    use database demo_db;
    use schema information_schema;
    select * from table(rest_event_history('scim'));
    select *
        from table(rest_event_history(
            'scim',
            dateadd('minutes',-5,current_timestamp()),
            current_timestamp(),
            200))
        order by event_timestamp;
    
    Copy
  • Wenn die Benutzeraktualisierung fehlschlägt, überprüfen Sie die Eigentümerschaft des Benutzers in Snowflake. Wenn der Benutzer nicht der Rolle aad_provisioner gehört (oder der Rolle, die beim Erstellen der Sicherheitsintegration in Snowflake im Parameter run_as_role festgelegt wurde), schlägt die Aktualisierung fehl. Übertragen Sie die Eigentümerschaft, indem Sie die folgende SQL-Anweisung in Snowflake ausführen, und versuchen Sie es erneut.

    grant ownership on user <username> to role AAD_PROVISIONER;
    
    Copy
  • Wenn der UPN Attributwert in Microsoft Entra ID nach der ersten Bereitstellung von SCIM geändert wird, funktionieren nachfolgende Aktualisierungen des Benutzers nicht. Eine Änderung des UPN-Attributwerts unterbricht den Link zwischen dem Microsoft Entra ID-Benutzerobjekt und dem Snowflake-Benutzerobjekt. Wenn eine Änderung am UPN-Attributwert auftritt, stellen Sie dem Benutzer den korrekten UPN-Attributwert erneut zur Verfügung.

Nächste Themen: