Snowflake Connector for Microsoft Power Platform: Criação de uma integração de segurança

O parâmetro external_oauth_audience_list da integração de segurança deve corresponder exatamente ao ID URI do aplicativo que foi especificado durante a configuração do ID do Microsoft Entra.

Crie uma integração de segurança com base em uma autenticação delegada ou entidade de serviço.

  1. Navegue até Snowsight.

  2. Abra uma planilha.

  3. Execute um dos seguintes:

    1. Autenticação delegada:

      Usando o comando CREATE SECURITY INTEGRATION (OAuth externo), crie uma integração de segurança com os seguintes parâmetros:

      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

    Ao usar a autenticação delegada, o login_name ou o email_address do usuário do Snowflake MUST corresponder ao e-mail Entra do usuário que executará o fluxo do Power Automate.

    Por exemplo:

    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

    • Autenticação da entidade de serviço:

      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. Crie um usuário para a conexão com base em uma entidade de serviço:

    • O subvalor deve ser mapeado para um usuário no Snowflake, evitando o uso de contas de alto privilégio ACCOUNTADMIN, ORGADMIN ou 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

Nota

Se uma integração de segurança para Azure AD foi configurado anteriormente, execute ALTER SECURITY INTEGRATION conforme descrito abaixo:

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

Próximos passos

Após completar estes procedimentos, siga os passos em Snowflake Connector for Microsoft Power Platform: [opcional] validar a configuração da autorização do Entra.