Configurar o Snowflake Open Catalog para usar SSO

Este tópico mostra como configurar o Snowflake Open Catalog para usar SSO baseado em SAML.

Antes de configurar o Snowflake Open Catalog para usar SSO, configure o IdP para o Open Catalog. Para obter instruções, consulte os seguintes tópicos:

Antes de começar

Para configurar o Snowflake Open Catalog para SSO, você precisa do identificador completo da conta do Open Catalog, que inclui o nome da organização do Snowflake e o nome da conta do Open Catalog; por exemplo: <orgname>.<my-snowflake-open-catalog-account-name>.

  • Para encontrar o nome da organização Snowflake (<orgname>), consulte Como encontrar o nome da conta e organização de uma conta <https://docs.snowflake.com/en/user-guide/admin-account-identifier.html#label-account-name-find>_.

  • Para encontrar o nome da sua conta no Snowflake Open Catalog (<my-snowflake-open-catalog-account-name>), consulte :doc:/opencatalog/find-account-name.

Criar uma conexão do Snowflake CLI para o Open Catalog

Para configurar o Snowflake Open Catalog para usar SSO, você precisa de uma conexão do Snowflake CLI para o Open Catalog. Siga estas etapas para criar essa conexão. Se você ainda não tiver o Snowflake CLI instalado, consulte Instalação do Snowflake CLI.

Importante

Para criar essa conexão, você deve ser um usuário do Open Catalog com privilégios de administrador de serviço. Para obter informações sobre privilégios de administrador de serviço, consulte Função de administrador de serviço.

Adicionar uma conexão Snowflake CLI para o Snowflake Open Catalog

Adicione uma conexão para a conta do Snowflake Open Catalog na qual deseja ativar o SSO.

  • Adicione uma conexão <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>_ com os seguintes valores. Para todos os outros parâmetros, pressione Enter para pular a especificação de um valor para o parâmetro.

    Parâmetros de configuração da conexão

    Valor

    Nome para essa conexão

    Especifique um nome para a conexão; por exemplo, myopencatalogconnection.

    Nome da conta

    Especifique o nome da organização do Snowflake, seguido do nome da conta do Open Catalog, neste formato:

    <orgname>-<my-snowflake-open-catalog-account-name>.

    Por exemplo, ABCDEFG-MYACCOUNT1.

    Para encontrar esses nomes, consulte Antes de começar_.

    Nome de usuário

    Especifique seu nome de usuário para o Open Catalog; por exemplo, jsmith.

    Senha [opcional]

    Esse parâmetro não é opcional quando você cria uma conexão para o Open Catalog.

    Digite sua senha para o Open Catalog; por exemplo, MyPassword123456789.

    Função para a conexão [opcional]

    Esse parâmetro não é opcional quando você cria uma conexão para o Open Catalog.

    Você deve inserir POLARIS_ACCOUNT_ADMIN

Teste a conexão do Snowflake CLI

  • Para testar sua conexão CLI, siga este exemplo, que testa a conexão para myopencatalogconnection:

    snow connection test -c myopencatalogconnection
    
    Copy

    A resposta deve ser semelhante a esta:

    +------------------------------------------------------------------------------+
    | key              | value                                                     |
    |----------------------------+-------------------------------------------------|
    | Connection name  | myopencatalogconnection                                   |
    | Status           | OK                                                        |
    | Host             | ABCDEFG-MYACCOUNT1.snowflakecomputing.com                 |
    | Account          | ABCDEFG-MYACCOUNT1                                        |
    | User             | jsmith                                                    |
    | Role             | POLARIS_ACCOUNT_ADMIN                                     |
    | Database         | not set                                                   |
    | Warehouse        | not set                                                   |
    +------------------------------------------------------------------------------+
    
    Copy

Defina sua conexão do Snowflake CLI para o Snowflake Open Catalog como padrão

Para garantir que a conexão que você está usando sempre tenha a função POLARIS_ACCOUNT_ADMIN necessária concedida a ela, é possível definir a conexão do Snowflake CLI criada para o Open Catalog como a conexão padrão. Para obter mais informações sobre a conexão padrão, consulte Definir a conexão padrão <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>_.

  1. Siga este exemplo, que define a conexão myopencatalogconnection como padrão:

    snow connection set-default myopencatalogconnection
    
    Copy
  2. Para confirmar que está usando o usuário e a função corretos, execute o seguinte:

    snow sql -q "Select current_user(); select current_role();"
    
    Copy

    A resposta deve retornar seu nome de usuário do Open Catalog e CURRENT ROLE deve ser POLARIS_ACCOUNT_ADMIN.

    +----------------+
    | CURRENT_USER() |
    |----------------|
    | JSMITH        |
    +----------------+
    select current_role();
    +-----------------------+
    | CURRENT_ROLE()        |
    |-----------------------|
    | POLARIS_ACCOUNT_ADMIN |
    +-----------------------+
    
    Copy

Criar uma integração de segurança

Para criar uma integração de segurança, execute o comando CREATE SECURITY INTEGRATION usando uma conexão do Snowflake CLI. Você pode criar uma integração de segurança Auth0 ou uma integração de segurança Okta.

Nota

Se a conexão padrão do Snowflake CLI que você definiu não tiver a função POLARIS_ACCOUNT_ADMIN concedida a ela, será necessário incluir a seguinte instrução no comando: USE ROLE POLARIS_ACCOUNT_ADMIN.

Integração de segurança Auth0

  • Para criar uma integração de segurança SAML para o Auth0, execute o seguinte comando no Snowflake CLI:

    snow sql -q “create security integration <Name>
        type = saml2
        enabled = true
        saml2_issuer = 'urn:<Auth0 Domain>'
        saml2_sso_url = '<SAML Protocol URL>'
        saml2_provider = 'Custom'
        saml2_x509_cert='<Certificate from Auth0>'
        saml2_sp_initiated_login_page_label = 'Auth0'
        saml2_enable_sp_initiated = true
        saml2_snowflake_acs_url = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/fed/login'
        saml2_snowflake_issuer_url = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com'
        saml2_requested_nameid_format = 'urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress';
    Copy

    Onde:

    • <Name> especifica o identificador da integração de segurança; deve ser exclusivo para sua conta.

    • <Auth0 Domain> é copiado no console Auth0. Para encontrar esse valor, em Auth0, navegue até Applications > Applications > Snowflake Open Catalog application > Settings > Basic Information: campo Domain.

    • <SAML Protocol URL> é copiado no console Auth0. Para encontrar esse valor, em Auth0, navegue até Applications > Applications > Snowflake Open Catalog application > Settings > Advanced settings > guia Endpoints: campo SAML Protocol URL.

    • <O certificado do Auth0> é copiado no console do Auth0. Para encontrar esse valor, no Auth0, navegue até: Applications > Applications > Snowflake Open Catalog application > Settings > Advanced Settings > guia Certificate tab: campo Signing Certificates. Copie o valor entre <BEGIN CERTIFICATE> e <END CERTIFICATE>.

    • <orgname> é o nome da sua organização do Snowflake. Para encontrar esse nome, consulte Antes de começar.

    • <my-snowflake-open-catalog-account-name> é o nome da sua conta do Snowflake Open Catalog. Para encontrar esse nome, consulte Antes de começar.

Integração de segurança do Okta

  • Para criar uma integração de segurança SAML para o Okta, execute o seguinte comando no Snowflake CLI:

    snow sql -q “CREATE SECURITY INTEGRATION <Name>
        TYPE = SAML2 
        ENABLED = TRUE 
        SAML2_ISSUER = '<ENTITY ID>' 
        SAML2_SSO_URL = '<IDP SSO URL>' 
        SAML2_PROVIDER = 'OKTA' 
        SAML2_X509_CERT='<Authentication Certificate>' 
        SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'OKTA SSO'
        SAML2_ENABLE_SP_INITIATED = TRUE
        SAML2_SNOWFLAKE_ACS_URL = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com/fed/login'
        SAML2_SNOWFLAKE_ISSUER_URL = 'https://<orgname>-<my-snowflake-open-catalog-account-name>.snowflakecomputing.com';
    Copy

    Onde:

    • <Name> especifica o identificador da integração de segurança; deve ser exclusivo para sua conta.

    • <ENTITY ID> é o valor de ID de entidade que você copiou quando criou um aplicativo no Okta.

    • <IDP SSO URL> é o valor de IDP SSO URL que você copiou quando criou um aplicativo no Okta.

    • <Authentication Certificate> é o valor do Authentication Certificate IDP que copiou quando criou um aplicativo no Okta.

    • <orgname> é o nome da sua organização do Snowflake. Para encontrar esse nome, consulte Antes de começar.

    • <my-snowflake-open-catalog-account-name> é o nome da sua conta do Snowflake Open Catalog. Para encontrar esse nome, consulte Antes de começar.

Verificar a integração de segurança

Você só pode usar uma integração de segurança por vez, e a integração que deseja usar deve estar ativada.

Nota

Se a conexão padrão do Snowflake CLI que você definiu não tiver a função POLARIS_ACCOUNT_ADMIN concedida a ela, será necessário incluir a seguinte instrução no comando: USE ROLE POLARIS_ACCOUNT_ADMIN.

  1. Para verificar se a integração de segurança que deseja usar está ativada, execute o seguinte comando:

    snow sql -q "desc security integration <saml2-security-integration-name>;"
    
    Copy

    Se a resposta contiver SAML2_ENABLE_SP_INITIATED=true, a integração de segurança SAML2 estará ativada.

  2. Opcional: se a resposta contiver SAML2_ENABLE_SP_INITIATED=false, para ativá-la, execute o seguinte comando:

    snow sql -q “ALTER SECURITY INTEGRATION <saml-security-integration-name> SET ENABLED = TRUE;
    Copy

Criar um usuário na conta do Open Catalog

Para que o SSO funcione para um usuário, crie um usuário do Open Catalog que corresponda ao usuário criado no IdP.

Importante

Para criar um usuário, use o Snowflake CLI.

Se o usuário for criado usando o Open Catalog UI, será necessário especificar uma senha, o que permitirá que o usuário faça login com SSO ou usando as credenciais do Open Catalog.

  • Para criar um usuário, execute o seguinte comando:

    snow sql -q "CREATE USER \"<login-name>\" EMAIL='<email>';"
    
    Copy

    Onde:

    • <login-name> deve corresponder a um dos seguintes itens:

      • O e-mail que você especificou para o usuário em Auth0.

      • O nome de usuário que você especificou para o usuário no Okta.

    • <email> é o endereço de e-mail do usuário. Se estiver usando Auth0, esse valor corresponderá a <login-name>.

    Por exemplo:

    snow sql -q "CREATE USER \"testuser123@example.com\" EMAIL='testuser123@example.com';"
    
    Copy
  • Para confirmar se configurou os usuários corretamente, execute o seguinte comando:

    snow sql -q "show users;"
    
    Copy

    Na resposta, o valor na coluna LOGIN_NAME deve corresponder a Email no Auth0 ou Username no Okta.