Snowflake Connector for Microsoft Power Platform: Sicherheitsintegration erstellen

Der Parameter externe_oauth_audience_list der Sicherheitsintegration muss genau mit dem ID URI der Anwendung übereinstimmen, der bei der Konfiguration der Microsoft Entra-ID angegeben wurde.

Erstellen Sie entweder eine Sicherheitsintegration auf Basis einer delegierten Authentifizierung oder eines Dienstprinzipals.

  1. Navigieren Sie zu Snowsight.

  2. Öffnen Sie das Arbeitsblatt.

  3. Führen Sie eine der folgenden Optionen aus:

    1. Delegierte Authentifizierung:

      Erstellen Sie mit dem Befehl CREATE SECURITY INTEGRATION (External OAuth) eine Sicherheitsintegration mit den folgenden Parametern:

      CREATE SECURITY INTEGRATION IF NOT EXISTS external_oauth_azure_1
         TYPE = EXTERNAL_OAUTH
         ENABLED = TRUE
         EXTERNAL_OAUTH_TYPE = AZURE
         EXTERNAL_OAUTH_ISSUER = '{AZURE_AD_ISSUER}'
         EXTERNAL_OAUTH_JWS_KEYS_URL = '{AZURE_AD_JWS_KEY_ENDPOINT}'
         EXTERNAL_OAUTH_AUDIENCE_LIST = ('{SNOWFLAKE_APPLICATION_ID_URI}')
         EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'upn'
         EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = { 'LOGIN_NAME' | 'EMAIL_ADDRESS' }
      
      Copy

    Wenn Sie die delegierte Authentifizierung verwenden, MUST der login_name oder die email_address des Snowflake-Benutzers mit der Entra-E-Mail-Adresse des Benutzers übereinstimmen, der den Power Automate-Workflow ausführt.

    Beispiel:

    ALTER USER SNOWSQL_DELEGATE_USER
    LOGIN_NAME = '{ENTRA-USERID}' or EMAIL_ADDRESS = 'ENTRA-USERID'
    DISPLAY_NAME = 'SnowSQL Delegated User'
    COMMENT = 'A delegate user for SnowSQL client to be used for OAuth based connectivity';
    
    Copy

    OR

    • Dienstprinzipal-Authentifizierung

      CREATE SECURITY INTEGRATION external_oauth_azure_2
         TYPE = EXTERNAL_OAUTH
         ENABLED = TRUE
         EXTERNAL_OAUTH_TYPE = AZURE
         EXTERNAL_OAUTH_ISSUER = '{AZURE_AD_ISSUER}'
         EXTERNAL_OAUTH_JWS_KEYS_URL = '{AZURE_AD_JWS_KEY_ENDPOINT}'
         EXTERNAL_OAUTH_AUDIENCE_LIST = ('{SNOWFLAKE_APPLICATION_ID_URI}')
         EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'sub'
         EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'login_name';
      
      Copy
  4. Erstellen Sie einen Benutzer für die auf dem Dienstprinzipal basierende Verbindung:

    • Der Unterwert muss einem Benutzer in Snowflake zugeordnet werden, wobei die Verwendung von Konten mit hohen Berechtigungen vermieden wird, wie ACCOUNTADMIN, ORGADMIN``oder ``SECURITYADMIN.

    CREATE OR REPLACE USER SNOWSQL_OAUTH_USER
    LOGIN_NAME = '<subvalue from decoded token>'
    DISPLAY_NAME = 'SnowSQL OAuth User'
    COMMENT = 'A system user for SnowSQL client to be used for OAuth based connectivity';
    
    CREATE ROLE ANALYST;
    
    GRANT ROLE ANALYST TO USER SNOWSQL_OAUTH_USER;
    
    Copy

Bemerkung

Wenn eine Sicherheitsintegration für Azure AD zuvor konfiguriert wurde, führen Sie den Befehl ALTER SECURITY INTEGRATION wie unten beschrieben aus:

ALTER SECURITY INTEGRATION external_oauth_azure_1 SET EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = ('sub','upn');
Copy

Nächste Schritte

Führen Sie nach Beendigung dieser Prozeduren die unter Snowflake Connector for Microsoft Power Platform: [Optional] Validieren des Entra-Autorisierungs-Setups beschriebenen Schritte aus.