Configuração do Snowflake OAuth para aplicativos de parceiros¶
Este tópico explica como configurar o acesso do Snowflake OAuth ao Snowflake para aplicativos de parceiros Snowflake com suporte. Este processo requer a criação de uma integração, um objeto Snowflake de primeira classe que define a interface entre o Snowflake e um aplicativo ou serviço de terceiros.
Importante
Ao conectar-se ao Snowflake utilizando qualquer aplicativo de terceiros, a Snowflake recomenda que você verifique se o fluxo de integração utilizado pela aplicativo atende às suas exigências internas de segurança. Você pode entrar em contato diretamente com o parceiro para obter detalhes sobre seu fluxo de ponta a ponta utilizado para este recurso.
Nota
A troca de funções durante a sessão para funções secundárias não tem suporte com o Snowflake OAuth.
Se este comportamento for necessário com seu fluxo de trabalho OAuth, use External OAuth.
Para obter mais informações, consulte Uso de funções secundárias com External OAuth.
Atualmente, o Snowflake OAuth suporta os seguintes aplicativos:
Cliente |
Versão necessária do cliente |
Tipo de cliente |
---|---|---|
2019.1 ou superior |
Público |
|
6.20 ou superior |
||
Consulte a documentação Alation |
||
Consulte a documentação ThoughtSpot |
||
Consulte a documentação Collibra |
Neste tópico:
Configuração de uma integração do Snowflake OAuth¶
Crie uma integração usando o comando CREATESECURITYINTEGRATION. Uma integração é um objeto Snowflake que fornece uma interface entre o Snowflake e serviços de terceiros, tais como um cliente que suporta Snowflake OAuth.
Nota
Somente administradores de conta (ou seja, usuários com a função de sistema ACCOUNTADMIN) ou uma função com o privilégio global CREATE INTEGRATION podem executar este comando SQL.
CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
<name>
TYPE = OAUTH
ENABLED = { TRUE | FALSE }
OAUTH_CLIENT = <partner_application>
oauthClientParams
[ COMMENT = '<string_literal>' ]
Onde:
oauthClientParams
oauthClientParams ::= [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ] [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ] [ BLOCKED_ROLES_LIST = ('<role_name>', '<role_name>') ]
Bloqueio de funções específicas para o uso de integração¶
O parâmetro opcional BLOCKED_ROLES_LIST permite listar as funções do Snowflake que um usuário não pode consentir explicitamente em usar com a integração.
Por padrão, as funções ACCOUNTADMIN, SECURITYADMIN e ORGADMIN estão incluídas nesta lista e não podem ser removidas. Se você tiver uma necessidade comercial de permitir que os usuários usem o Snowflake OAuth com essas funções e se sua equipe de segurança permitir isso, entre em contato com o suporte Snowflake para solicitar que essas funções sejam permitidas para sua conta.
Controle da frequência de login¶
Quando um usuário tiver se autenticado com sucesso, o aplicativo do parceiro pode usar o token de atualização emitido para solicitar novos tokens de acesso de curta duração e não solicitar ao usuário que repita o processo de login até que o token de atualização expire. O parâmetro opcional OAUTH_REFRESH_TOKEN_VALIDITY especifica o período de tempo em que um token de atualização é válido (em segundos). Esta configuração pode ser usada para expirar o token de atualização periodicamente, forçando o usuário a repetir o processo de login.
Os valores mínimo, máximo e padrão com suporte para o parâmetro OAUTH_REFRESH_TOKEN_VALIDITY são os seguintes:
Aplicativo |
Mínimo |
Máximo |
Padrão |
---|---|---|---|
Tableau Desktop |
|
|
|
Tableau Server ou Tableau Online |
|
|
|
Se você tem uma necessidade comercial de baixar o valor mínimo ou aumentar o valor máximo, entre em contato com o suporte Snowflake para solicitar a mudança para sua conta.
Uso do redirecionamento do cliente com Snowflake OAuth para aplicativos de parceiro¶
O Snowflake oferece suporte para o uso do Redirecionamento do cliente com Snowflake OAuth para aplicativos de parceiros, incluindo o uso do Redirecionamento do cliente e do Snowflake OAuth com clientes Snowflake com suporte.
Para obter mais informações, consulte Redirecionamento de conexões do cliente.
Gerenciamento de políticas de rede¶
O Snowflake suporta políticas de rede para Snowflake OAuth. Para obter mais informações, consulte Políticas de redes.
Exemplos¶
Tableau Desktop
O exemplo seguinte cria uma integração do Snowflake OAuth com as configurações padrão:
CREATE SECURITY INTEGRATION td_oauth_int1 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_DESKTOP;Ver as configurações de integração usando DESCRIBE INTEGRATION:
DESC SECURITY INTEGRATION td_oauth_int1;O exemplo seguinte cria uma integração do Snowflake OAuth com tokens de atualização que expiram após 10 horas (36000 segundos). A integração bloqueia o início de uma sessão com SYSADMIN como a função ativa:
CREATE SECURITY INTEGRATION td_oauth_int2 TYPE = OAUTH ENABLED = TRUE OAUTH_REFRESH_TOKEN_VALIDITY = 36000 BLOCKED_ROLES_LIST = ('SYSADMIN') OAUTH_CLIENT = TABLEAU_DESKTOP;
Tableau Server ou Tableau Online
O exemplo seguinte cria uma integração do Snowflake OAuth com as configurações padrão:
CREATE SECURITY INTEGRATION ts_oauth_int1 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_SERVER;Ver as configurações de integração usando DESCRIBE INTEGRATION:
DESC SECURITY INTEGRATION ts_oauth_int1;O exemplo a seguir cria uma integração do Snowflake OAuth com tokens de atualização que expiram após 1 dia (86400 segundos). A integração bloqueia o início de uma sessão com SYSADMIN como a função ativa:
CREATE SECURITY INTEGRATION ts_oauth_int2 TYPE = OAUTH ENABLED = TRUE OAUTH_CLIENT = TABLEAU_SERVER OAUTH_REFRESH_TOKEN_VALIDITY = 86400 BLOCKED_ROLES_LIST = ('SYSADMIN');
Login no Snowflake a partir de um aplicativo de parceiro¶
Tableau¶
Siga as instruções fornecidas pela Tableau para conectar-se ao Snowflake usando o Snowflake OAuth.
Looker¶
Siga os passos fornecidos pela Looker para conectar-se ao Snowflake usando o Snowflake OAuth.
Alation¶
Acesse a comunidade Alation e siga as instruções fornecidas pela Alation para conectar-se ao Snowflake usando o Snowflake OAuth.
ThoughtSpot¶
Acesse a documentação ThoughtSpot e siga as instruções para criar uma conexão com o Snowflake, que inclui uma etapa sobre como configurar o Snowflake OAuth.
Collibra¶
Acesse a documentação Collibra e siga as instruções fornecidas pela Collibra para se conectar ao Snowflake usando o Snowflake OAuth.
Gerenciamento do consentimento do usuário¶
Esta seção descreve como gerenciar autorizações delegadas, ou seja, o consentimento do usuário dado a um ou mais clientes associados às integrações do Snowflake.
Exibição de consentimentos do Snowflake OAuth¶
Liste as autorizações delegadas ativas para as quais você tem privilégios de acesso, usando SHOW DELEGATED AUTHORIZATIONS:
SHOW DELEGATED AUTHORIZATIONS;
+-------------------------------+-----------+-----------+-------------------+--------------------+
| created_on | user_name | role_name | integration_name | integration_status |
|-------------------------------+-----------+-----------+-------------------+--------------------|
| 2018-11-27 07:43:10.914 -0800 | JSMITH | PUBLIC | MY_OAUTH_INT | ENABLED |
+-------------------------------+-----------+-----------+-------------------+--------------------+
Relacione as autorizações delegadas ativas para um usuário especificado. Os usuários podem listar suas próprias autorizações delegadas; caso contrário, esta variante de comando requer o privilégio OWNERSHIP sobre o usuário.
SHOW DELEGATED AUTHORIZATIONS
BY USER <username>;
Relacione as autorizações delegadas ativas para uma integração específica. Esta variante de comando requer o privilégio OWNERSHIP para a integração (ou seja, a função ACCOUNTADMIN):
SHOW DELEGATED AUTHORIZATIONS
TO SECURITY INTEGRATION <integration_name>;
Revogação de consentimento¶
Um usuário pode revogar o consentimento de uma integração específica. Isto tem o efeito de revogar qualquer token de acesso associado com a integração.
Para revogar o consentimento do usuário para uma determinada integração, execute o comando ALTER USER … REMOVE DELEGATED AUTHORIZATIONS.
Nota
Somente administradores de segurança (ou seja, usuários com a função SECURITYADMIN) ou superior podem executar este comando SQL.
ALTER USER <username> REMOVE DELEGATED AUTHORIZATIONS
FROM SECURITY INTEGRATION <integration_name>
Onde:
username
Especifica o usuário cujo consentimento você está revogando.
integration_name
Especifica a integração associada com os tokens de acesso para um cliente específico.
Para revogar o consentimento do usuário associado a uma função específica, inclua o parâmetro OF ROLE role_name
na instrução:
ALTER USER <username> REMOVE DELEGATED AUTHORIZATION
OF ROLE <role_name>
FROM SECURITY INTEGRATION <integration_name>
Onde:
role_name
Especifica a função associada com o token de acesso.
Todos os tokens de acesso associados com a função são revogados.
Códigos de erro¶
Consulte em Códigos de erro uma lista de códigos de erro associados ao OAuth, bem como erros que são retornados no blob JSON, durante o fluxo de autorização, solicitação ou troca de tokens ou ao criar uma sessão do Snowflake após completar o fluxo OAuth.