Uso de vários provedores de identidade para autenticação federada

Você pode configurar o Snowflake para permitir que os usuários se autentiquem com vários provedores de identidade (IdPs).

A implementação de um ambiente federado que usa vários IdPs consiste nas seguintes etapas:

  1. Ative o fluxo de login do primeiro identificador (neste tópico).

  2. Configure cada provedor de identidade.

  3. Crie várias integrações de segurança SAML, uma para cada IdP.

  4. Associe usuários a IdPs (neste tópico).

Nota

Lembre-se do seguinte ao implementar um ambiente usando vários IdPs:

  • Cada IdP deve ter uma integração de segurança SAML correspondente. Se você tiver um ambiente de IdP único existente que usa o parâmetro SAML_IDENTITY_PROVIDER obsoleto, deverá usar a função SYSTEM$MIGRATE_SAML_IDP_REGISTRATION para migrá-lo para uma integração de segurança SAML.

  • Atualmente, apenas um subconjunto de drivers Snowflake dá suporte ao uso de vários provedores de identidade. Esses drivers incluem JDBC, ODBC e Python.

Habilitação de login com primeiro identificador

Quando o ambiente federado de uma conta usa vários IdPs, o Snowflake deve ser capaz de determinar quais IdPs estão associados a um usuário antes de apresentar ao usuário opções de autenticação. Nesse fluxo, o Snowflake solicita ao usuário apenas seu endereço de e-mail ou nome de usuário e, em seguida, exibe os métodos de autenticação após identificar o usuário. Somente IdPs associados ao usuário aparecem como opções de autenticação.

O fluxo de login do primeiro identificador deverá ser ativado se você estiver usando vários IdPs. Para ativar o login do primeiro identificador, defina o parâmetro ENABLE_IDENTIFIER_FIRST_LOGIN como TRUE:

  1. Faça login no Snowsight.

  2. No menu de navegação, selecione Projects » Worksheets.

  3. Execute as seguintes instruções SQL:

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

Para obter mais informações sobre o fluxo de login do primeiro identificador, consulte Login com primeiro identificador.

Associação de usuários a IdPs

Em um ambiente com vários IdPs, você pode escolher como deseja associar um usuário a um IdP. Você pode usar a integração de segurança associada a um IdP, uma política de autenticação ou combinar os dois métodos.

Integração de segurança:

Use as propriedades ALLOWED_USER_DOMAINS e ALLOWED_EMAIL_PATTERNS da integração de segurança SAML2 associada a cada IdP. Nessa configuração, um usuário só verá um IdP como uma opção de autenticação se seu EMAIL corresponder a um domínio ou padrão de endereço de e-mail na integração de segurança.

Política de autenticação:

Use a propriedade SECURITY_INTEGRATIONS de uma política de autenticação para especificar quais integrações de segurança estão disponíveis para o usuário. Nesta configuração, a política de autenticação é atribuída a uma conta inteira ou a um usuário individual. Um usuário só pode autenticar com IdPs associados a integrações de segurança especificadas na política de autenticação.

Se você quiser que um usuário veja apenas os provedores de identidade que ele tem permissão para usar, crie diversas políticas de autenticação e atribua a política apropriada a um usuário.

Para obter um exemplo de uso de uma política de autenticação para implementar vários IdPs, consulte Permissão da autenticação de vários provedores de identidade em uma conta.

Combinado:

Você pode combinar os métodos de integração de segurança e política de autenticação para refinar ainda mais como os usuários se autenticam em um ambiente que tem vários IdPs.

Se você usar os dois métodos, o Snowflake primeiro avaliará quais integrações de segurança estão associadas à política de autenticação que rege o login do usuário. Depois que o Snowflake identificar as integrações de segurança, o EMAIL do usuário será comparado a uma das integrações com base nas propriedades ALLOWED_USER_DOMAINS e ALLOWED_EMAIL_PATTERNS. Snowflake exibe apenas a opção IdP para a integração de segurança que corresponde ao EMAIL do usuário.

Usar várias integrações de segurança SAML2 com o Microsoft Entra ID usando o mesmo ID emissor

Esta seção orienta você na configuração do Snowflake e o Microsoft Entra ID permite que os usuários se autentiquem via SSO usando um URL emissor público ou privado. Você pode usar duas integrações de segurança SAML2 diferentes com o Microsoft Entra ID para implementar essa experiência. Você pode configurar o Microsoft Entra ID para diferenciar entre URLs emissores públicos e privados anexando um ID de aplicativo diferente para cada URL emissor.

Antes de continuar, você deve habilitar o fluxo de login do primeiro identificador.

Siga as seções abaixo para aprender como usar várias integrações de segurança SAML2 com o Microsoft Entra ID usando o mesmo ID emissor:

Configurar o Microsoft Entra ID para anexar IDs de aplicativo aos URLs do identificador do Microsoft Entra

  1. Faça login no Microsoft Azure.

  2. Em Azure services, selecione Microsoft Entra ID.

  3. No painel de navegação à esquerda, selecione Manage » Enterprise applications.

  4. Selecione seu aplicativo.

  5. No painel de navegação à esquerda, selecione Manage » Single sign-on.

  6. No Attributes & Claims, selecione Edit.

  7. Em Additional claims, expanda Advanced settings.

  8. Ao lado de Advanced SAML claims options, selecione Edit.

    Um painel é exibido à direita.

  9. Selecione Append application ID to issuer.

Obtenha o URL de Login, o identificador do Microsoft Entra e o ID de aplicativo

  1. Certifique-se de que você configurou o ID do Microsoft Entra.

  2. No painel de navegação à esquerda, selecione Manage » Single sign-on.

  3. Em Set up <your application name>, salve os seguintes valores para mais tarde:

    • Login URL

    • Microsoft Entra Identifier

  4. No painel de navegação à esquerda, selecione Overview

  5. Em Properties, salve Application ID para mais tarde.

  6. Repita o procedimento para aplicativos adicionais.

Criar integrações de segurança SAML2 pública e privada

  1. Certifique-se de que você configurou o ID do Microsoft Entra.

  2. Certifique-se de coletar o URL de Login, o identificador do Microsoft Entra e o ID de aplicativo.

  3. Faça login no Snowsight.

  4. No menu de navegação, selecione Projects » Worksheets.

  5. Mude para uma função com o privilégio CREATE INTEGRATION.

  6. Execute a seguinte instrução SQL para criar uma integração de segurança SAML2:

    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

    Onde os seguintes espaços reservados são substituídos pelos valores que você coletou anteriormente:

    Espaço reservado

    Valor de exemplo

    <url_login>

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

    <identificador_microsoft_entra>

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

    <id_aplicativo>

    456xyz00-4567-4567-4567-4567xyz5678

    <nome_organizacao>

    EXAMPLE-USER12_AA12

    <nome_da_conta>

    MSMITH

  7. Crie outra integração de segurança SAML2, anexando o ID de aplicativo privado ao Identificador do Microsoft Entra no parâmetro SAML2_ISSUER.