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

Tableau Desktop / Server / Online 1

2019.1 ou superior

Público

Looker 2

6.20 ou superior

Alation

Consulte a documentação Alation

ThoughtSpot

Consulte a documentação ThoughtSpot

Collibra

Consulte a documentação Collibra

1

Se o Tableau Server estiver conectando com o Snowflake usando conectividade privada ao serviço Snowflake, você precisará usar uma integração de segurança personalizada em vez de uma integração desenvolvida para um aplicativo de parceiro. Para obter instruções, consulte Configuração do Snowflake OAuth para clientes personalizados. O Tableau Desktop continua a usar a integração do aplicativo do parceiro, independentemente se ele usa o URL privado.

2

O Looker suporta OAuth somente quando as instâncias hospedadas pelo Looker podem acessar a Internet pública. Observe que esta limitação não afeta as implementações do Looker hospedadas pelo cliente (ou seja, implementações no local). Clientes que usam conectividade privada ao serviço Snowflake podem ter problemas se tentarem usar OAuth e Looker com Snowflake. Entre em contato com o Looker em caso de dúvidas ou para obter mais detalhes.

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>' ]
Copy

Onde:

oauthClientParams

oauthClientParams ::=
  [ OAUTH_ISSUE_REFRESH_TOKENS = TRUE | FALSE ]
  [ OAUTH_REFRESH_TOKEN_VALIDITY = <integer> ]
  [ BLOCKED_ROLES_LIST = ('<role_name>', '<role_name>') ]
Copy

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

60 (1 minuto)

36000 (10 horas)

36000 (10 horas)

Tableau Server ou Tableau Online

60 (1 minuto)

7776000 (90 dias)

7776000 (90 dias)

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;
Copy

Ver as configurações de integração usando DESCRIBE INTEGRATION:

DESC SECURITY INTEGRATION td_oauth_int1;
Copy

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;
Copy

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;
Copy

Ver as configurações de integração usando DESCRIBE INTEGRATION:

DESC SECURITY INTEGRATION ts_oauth_int1;
Copy

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');
Copy

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.

Importante

Atualmente, aplicativos Tableau só podem autorizar a função padrão para um usuário; ou, se uma função padrão não estiver definida, então a função PUBLIC é usada como a função ativa para a sessão.

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.

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.