Configuração do Snowflake Open Catalog para uso do SSO¶
Este tópico mostra como configurar o Snowflake Open Catalog para usar o SSO baseado em SAML.
Antes de configurar o Snowflake Open Catalog para usar o SSO, você deve configurar seu 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 Snowflake e o nome da conta do Open Catalog; por exemplo: <orgname>.<my-snowflake-open-catalog-account-name>
.
Para encontrar o nome da sua organização Snowflake (
<orgname>
), consulteComo 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 do Snowflake Open Catalog (
<my-snowflake-open-catalog-account-name>
), consulte :doc:/user-guide/opencatalog/find-account-name
.
Criação de conexão do Snowflake CLI para Open Catalog¶
Para configurar o Snowflake Open Catalog para usar o SSO, você precisa de uma conexão do Snowflake CLI para Open Catalog. Siga as etapas abaixo para criar essa conexão. Se você ainda não tem o Snowflake CLI instalado, consulte Instalação do Snowflake CLI.
Importante
Para criar essa conexão, você deve ser 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.
Adição da conexão do Snowflake CLI para Snowflake Open Catalog¶
Adicione uma conexão para a conta do Snowflake Open Catalog em que você quer habilitar o SSO.
Adicione uma conexão <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#add-a-connection>
_ com os valores a seguir. Para todos os outros parâmetros, pressione Enter para ignorar a especificação de um valor para o parâmetro.Parâmetros de configuração da conexão
Valor
Nome desta conexão
Especifique um nome para a conexão, por exemplo,
myopencatalogconnection
.Nome da conta
Especifique o nome da sua organização Snowflake, seguido do nome da sua 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 do 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 do 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 da conexão do Snowflake CLI¶
Para testar a conexão do CLI, siga este exemplo, que testa a conexão para
myopencatalogconnection
:snow connection test -c myopencatalogconnection
A resposta deve ser assim:
+------------------------------------------------------------------------------+ | 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 | +------------------------------------------------------------------------------+
Configuração da conexão do Snowflake CLI para Snowflake Open Catalog como padrão¶
Para garantir que a conexão que você sempre usa tenha a função POLARIS_ACCOUNT_ADMIN necessária, defina a conexão do Snowflake CLI que você criou para o Open Catalog como padrão. Para obter mais informações sobre a conexão padrão, consulte Definição da conexão padrão <https://docs.snowflake.com/en/developer-guide/snowflake-cli/connecting/configure-connections#set-the-default-connection>
_.
Siga este exemplo, que define a conexão
myopencatalogconnection
como padrão:snow connection set-default myopencatalogconnection
Para confirmar se você está usando o usuário e a função corretos, execute o seguinte:
snow sql -q "Select current_user(); select current_role();"
A resposta deve retornar seu nome de usuário do Open Catalog e a CURRENT ROLE deve ser POLARIS_ACCOUNT_ADMIN.
+----------------+ | CURRENT_USER() | |----------------| | JSMITH | +----------------+ select current_role(); +-----------------------+ | CURRENT_ROLE() | |-----------------------| | POLARIS_ACCOUNT_ADMIN | +-----------------------+
Criação da 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 com Auth0 ou uma integração de segurança com Okta.
Nota
Se a conexão padrão do Snowflake CLI que você definiu não tem a função POLARIS_ACCOUNT_ADMIN, inclua a seguinte instrução com o comando: USE ROLE POLARIS_ACCOUNT_ADMIN
.
Integração de segurança com Auth0¶
Para criar uma integração de segurança SAML para 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';”
Onde:
<Name>
especifica o identificador da integração de segurança, que deve ser exclusivo para sua conta.<Auth0 Domain>
é copiado no console Auth0. Para encontrar esse valor, no Auth0, navegue até Applications > Applications > aplicativo Snowflake Open Catalog > Settings > Basic Information: campo Domain.<SAML Protocol URL>
é copiado no console Auth0. Para encontrar esse valor, no Auth0, navegue até Applications > Applications > aplicativo Snowflake Open Catalog > Settings > Advanced settings > guia Endpoints: campo SAML Protocol URL.<Certificate from Auth0>
é copiado no console Auth0. Para encontrar este valor, no Auth0, navegue até: Applications > Applications > aplicativo Snowflake Open Catalog > Settings > Advanced Settings > guia Certificate: campo Signing Certificates. Copie o valor entre <BEGIN CERTIFICATE> e <END CERTIFICATE>.<orgname>
é o nome da sua organização 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 com Okta¶
Para criar uma integração de segurança SAML para 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';”
Onde:
<Name>
especifica o identificador da integração de segurança, que deve ser exclusivo para sua conta.<ENTITY ID>
é o valor de ID da entidade que você copiou quando criou um aplicativo no Okta.<IDP SSO URL>
é o valor de URL com SSO do IDP que você copiou ao criar um aplicativo no Okta.<Authentication Certificate>
é o valor do certificado de autenticação do IDP que você copiou ao criar um aplicativo no Okta.<orgname>
é o nome da sua organização 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.
Verificação da integração de segurança¶
Você só pode usar uma integração de segurança por vez, que deve estar habilitada.
Nota
Se a conexão padrão do Snowflake CLI que você definiu não tem a função POLARIS_ACCOUNT_ADMIN, inclua a seguinte instrução com o comando: USE ROLE POLARIS_ACCOUNT_ADMIN
.
Para verificar se a integração de segurança que você quer usar está habilitada, execute o seguinte comando:
snow sql -q "desc security integration <saml2-security-integration-name>;"
Se a resposta contém SAML2_ENABLE_SP_INITIATED=true, a integração de segurança SAML2 está habilitada.
Opcional: Se a resposta contém SAML2_ENABLE_SP_INITIATED=false, execute o seguinte comando para habilitá-la:
snow sql -q “ALTER SECURITY INTEGRATION <saml-security-integration-name> SET ENABLED = TRUE;”
Criação de usuário na conta do Open Catalog¶
Para que o SSO funcione para um usuário, você deve criar um usuário do Open Catalog que corresponda ao que você criou no IdP.
Importante
Para criar um usuário, você deve usar o Snowflake CLI.
Se você criar um usuário pela Open Catalog UI, deverá especificar uma senha, que permita ao usuário fazer login por meio do 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>';"
Onde:
<login-name>
deve corresponder a um dos seguintes:O e-mail que você especificou para o usuário no Auth0.
O nome de usuário que você especificou para o usuário no Okta.
<email>
is the user’s email address. If you’re using Auth0, this value will match <login-name>.
Por exemplo:
snow sql -q "CREATE USER \"testuser123@example.com\" EMAIL='testuser123@example.com';"
Para confirmar que você configurou os usuários corretamente, execute o seguinte comando:
snow sql -q "show users;"
Na resposta, o valor na coluna LOGIN_NAME deve corresponder ao e-mail no Auth0 ou ao nome de usuário no Okta.