---
schema_version: "1"
id: 83cb94b2d88474651187213aa770acf3a4be5268410f2a1fbd1e99692df893ef
title: "Configurar o OAuth externo para Snowflake: fluxo de credenciais do cliente"
collection: tableau
version: next
locale: pt-br
portal_url: https://docs.salesforce.com/tableau/next/pt-br/server-linux/config_oauth_snowflake_client_creds.md
canonical_url: https://help.tableau.com/v0.0/server-linux/pt-br/config_oauth_snowflake_client_creds.htm
source_site: help.tableau.com
content_type: documentation
content_hash: b50efd65f07edf5b080ca4d458816633a9fc4ed4c864a0dfa91ff5cdbda89758
description: Configure Azure AD OAuth and modern authentication for Azure and Microsoft connectors in Tableau Server.
---
[Pular para o conteúdo principal](#main-content)

# Configurar o OAuth externo para Snowflake: fluxo de credenciais do cliente

A autenticação de credenciais de cliente OAuth permite conexões de máquina para máquina com o Snowflake

sem a interação do usuário. Este método é ideal para:

- Contas de serviço para atualizações de dados automatizadas
- Trabalhos de extração agendada
- Pipelines de CI/CD
- Fontes de dados publicadas que exigem credenciais inseridas

Ao contrário do OAuth padrão (que usa o fluxo de código de autorização), o fluxo de credenciais do cliente não

solicita que os usuários façam logon. Em vez disso, o Tableau autentica diretamente com seu provedor de identidade usando um

ID do cliente e segredo.

**Observação:** o fluxo de credenciais do cliente exige o recurso OAuth externo do Snowflake com um provedor de identidade compatível. Isso é diferente do OAuth nativo do Snowflake.

## Antes de começar

Para usar credenciais de cliente OAuth com Snowflake, você precisa de:

| Requisito | Descrição |
| --- | --- |
| Provedor de identidade | Okta, Azure AD ou Ping Federate configurado para concessão de credenciais do cliente |
| Conta do Snowflake | Enterprise Edition ou superior com acesso ACCOUNTADMIN |
| Aplicativo OAuth | Serviços de API (Okta), registro de aplicativo (Azure AD) ou equivalentes |
| Escopos personalizados | Escopos para atribuição de função do Snowflake (por exemplo, “session:role:SYSADMIN”) |

## Configurar seu provedor de identidade

As etapas a seguir usam o Okta como exemplo. Para outros provedores, consulte a documentação para obter a configuração de credenciais do cliente.

### Etapa 1: criar um aplicativo de serviços de API

1. Entre no console do admin do Okta.
2. Acesse \*\***Aplicativos** > **Aplicativos**.
3. Selecione \*\***Criar integração de aplicativo**.
4. Escolha \*\***Serviços de API**\*\* e selecione \*\***Próximo**.
5. Insira um nome de aplicativo (por exemplo, `snowflake-tableau-service`).
6. Selecione **Salvar**.
7. Copie o **ID do cliente** e **Segredo do cliente**. Esses valores serão necessários posteriormente.

### Etapa 2: desabilitar o DPoP (se ativado)

A demonstração da prova de posse (DPoP) deve ser desabilitada para o fluxo de credenciais do cliente.

1. Nas configurações do aplicativo, acesse **Geral** \> **Credenciais do cliente**.
2. Desmarque a caixa de seleção **Exigir cabeçalho da demonstração da prova de posse (DPoP) em solicitações de token**.
3. Selecione **Salvar**.

### Etapa 3: adicionar escopos personalizados

O Snowflake requer escopos personalizados para atribuir funções à sessão autenticada.

1. Acesse **Segurança** > **API** \> **Servidores de autorização**.
2. Selecione o servidor de autorização **padrão** (ou o servidor personalizado).
3. Selecione a guia **Escopos** e, em seguida, **Adicionar escopo**.
4. Adicione estes escopos:
    
    | Nome do escopo | Descrição |
    | --- | --- |
    | snowflake | Escopo de acesso geral para Snowflake |
    | session:role:SYSADMIN | Atribui a função SYSADMIN (ajuste para sua função) |
    
    **Observação:** crie escopos adicionais para quaisquer outras funções de que sua conta de serviço precise.

### Etapa 4: configurar uma política de acesso

1. Selecione a guia **Políticas de acesso**.
2. Selecione uma política existente ou crie uma nova.
3. Adicione uma regra com estas configurações:
    
    - **Tipo de concessão:** credenciais do cliente
    - **Escopos:** quaisquer escopos (ou selecione escopos específicos)
4. Selecione **Criar regra** ou **Salvar**.

## Configurar o Snowflake

Execute as seguintes instruções SQL no Snowflake como ACCOUNTADMIN. Substitua os valores de marcador de posição pela sua configuração.

### Etapa 1: criar a integração do OAuth externa

USE ROLE ACCOUNTADMIN;

CREATE OR REPLACE SECURITY INTEGRATION okta\_oauth\_integration
  TYPE = EXTERNAL\_OAUTH
  ENABLED = TRUE
  EXTERNAL\_OAUTH\_TYPE = OKTA
  EXTERNAL\_OAUTH\_ISSUER = 'https://<your-okta-domain>.okta.com/oauth2/default'
  EXTERNAL\_OAUTH\_JWS\_KEYS\_URL = 'https://<your-okta-domain>.okta.com/oauth2/
default/v1/keys'
  EXTERNAL\_OAUTH\_TOKEN\_USER\_MAPPING\_CLAIM = 'sub'
  EXTERNAL\_OAUTH\_SNOWFLAKE\_USER\_MAPPING\_ATTRIBUTE = 'login\_name'
  EXTERNAL\_OAUTH\_AUDIENCE\_LIST = ('api://default', 'snowflake')
EXTERNAL\_OAUTH\_ANY\_ROLE\_MODE = 'ENABLE';

| Parâmetro | Descrição |
| --- | --- |
| `EXTERNAL_OAUTH_TYPE` | Seu provedor de identidade: `OKTA` , `AZURE` ou `PING_FEDERATE` |
| `EXTERNAL_OAUTH_ISSUER` | A URL do emissor do servidor de autorização |
| `EXTERNAL_OAUTH_JWS_KEYS_URL` | O endpoint JWKS para validação de token |
| `EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLA IM` | A declaração JWT que identifica o usuário. Use `sub` para Okta. |
| `EXTERNAL_OAUTH_ANY_ROLE_MODE` | Defina como `ENABLE` para permitir a atribuição de função por meio de escopos |

### Etapa 2: criar um usuário de serviço

Crie um usuário do Snowflake com um `LOGIN_NAME` que corresponde ao ID do cliente OAuth.

CREATE USER IF NOT EXISTS service\_account\_user  
  LOGIN\_NAME = '<your-okta-client-id>'  
  DISPLAY\_NAME = 'OAuth Service Account'  
  MUST\_CHANGE\_PASSWORD = FALSE  
  DISABLED = FALSE;
  
\-- Grant role to the service user  
GRANT ROLE SYSADMIN TO USER service\_account\_user;
  
\-- Set the default role  
ALTER USER service\_account\_user SET DEFAULT\_ROLE = 'SYSADMIN';
  
\-- Grant warehouse access  
GRANT USAGE ON WAREHOUSE <your-warehouse> TO USER service\_account\_user;
  
\-- Grant database and schema access  
GRANT USAGE ON DATABASE <your-database> TO USER service\_account\_user;  
GRANT USAGE ON SCHEMA <your-database>.<your-schema> TO USER  
service\_account\_user;  
GRANT SELECT ON ALL TABLES IN SCHEMA <your-database>.<your-schema> TO USER  
service\_account\_user;

**Importante:** o `LOGIN_NAME` deve corresponder exatamente à declaração `sub` no token do OAuth. Para aplicativos de serviços de API do Okta, este é o ID do cliente.

## Conectar por meio do Tableau Desktop

1. No Tableau Desktop, selecione **Conectar** \> **Snowflake**.
2. Insira os detalhes da conexão:
    
    | Campo | Valor |
    | --- | --- |
    | Servidor | URL da sua conta do Snowflake (por exemplo, `account.snowflakecomputing.com`) |
    | Função | A função a ser usada (por exemplo, `SYSADMIN`) |
    | Warehouse | Seu warehouse do Snowflake |
    | Autenticação | Credenciais de clientes OAuth |
3. Insira a configuração do OAuth:
    
    | Campo | Valor |
    | --- | --- |
    | URL de solicitação de token OAuth | `https://<your-okta-domain>.okta.com/oauth2/default/ v1/token` |
    | Username | Seu ID de cliente OAuth |
    | Senha | Seu segredo de cliente OAuth |
    | Escopo do OAuth | `snowflake session:role:SYSADMIN` |
    
    **Observação:** o escopo do OAuth deve incluir todos os escopos personalizados que você configurou para atribuição de função.
4. Selecione **Fazer logon**.

## Publicar no Tableau Cloud ou Tableau Server

Ao publicar uma pasta de trabalho ou fonte de dados que usa credenciais de cliente OAuth:

1. Na caixa de diálogo **Publicar**, selecione **Editar** ao lado de **Fontes de dados**.
2. Em **Autenticação**, selecione **Senha inserida**.
3. As credenciais do cliente são inseridas no conteúdo publicado.

**Importante:** ao contrário do OAuth padrão, as credenciais do cliente são tratadas como senhas inseridas. Os usuários que acessam o conteúdo publicado usam as credenciais de conta de serviço, não sua própria identidade.

### Rotação de credencial

Quando o segredo do cliente OAuth for rotacionado, atualize as credenciais inseridas no Tableau Cloud:

1. Entre no Tableau Cloud.
2. Navegue até a fonte de dados publicada.
3. Selecione **Conexões**.
4. Atualize a conexão com o novo segredo do cliente.

Para rotação automatizada, use a API REST do Tableau para atualizar as credenciais de conexão de maneira programática.

## Perguntas frequentes

### Quando devo usar credenciais de cliente OAuth em vez do OAuth padrão?

Use as credenciais do cliente quando você precisar de uma autenticação autônoma de máquina para máquina. Padrão

O OAuth requer interação do usuário para o logon inicial e reautenticação periódica. Credenciais do cliente

Usam uma identidade de conta de serviço e não exigem interação do usuário.

### Posso usar credenciais de cliente com o OAuth nativo do Snowflake?

Não. O OAuth nativo do Snowflake oferece suporte apenas ao fluxo do código de autorização. As credenciais do cliente exigem o OAuth externo com um provedor de identidade compatível (Okta, Azure AD ou Ping Federate).

### Como faço para lidar com a rotação secreta para conteúdo publicado?

Quando o segredo do cliente OAuth for rotacionado, atualize as credenciais inseridas no Tableau Cloud. Você pode fazer isso manualmente por meio da interface do usuário do Tableau Cloud ou de forma programática usando a API REST do Tableau. Considere automatizar esse processo como parte do fluxo de trabalho de rotação secreto.

### Por que minha conexão falha com um erro de função mesmo que EXTERNAL\_OAUTH\_ANY\_ROLE\_MODE esteja habilitado?

O Snowflake requer informações de função no token do OAuth. Adicione um escopo personalizado (por exemplo, `session:role:SYSADMIN`) ao servidor de autorização e inclua-o no campo Escopo do OAuth ao se conectar pelo Tableau.

## Solução de problemas

| Mensagem de erro | Causa | Solução |
| --- | --- | --- |
| “O usuário não existe ou não está autorizado” | O usuário do Snowflake `LOGIN_NAME` não corresponde ao ID do cliente OAuth | Defina o `LOGIN_NAME` do usuário para corresponder à declaração `sub` (ID do cliente para Okta) |
| “A função solicitada não está listada no token de acesso” | Escopo de função ausente no token | Adicione o escopo `session:role:<ROLE>` ao seu servidor de autorização e inclua-o no escopo OAuth |
| “Prova de DPoP inválida” | DPoP está habilitado no Okta | Desabilite “Exigir demonstração da prova de posse (DPoP)” no aplicativo Okta |
| “Escopo inválido” | Escopos personalizados não configurados | Adicione os escopos necessários ao servidor de autorização; não inclua `openid` |
| Falha na validação do token | URL de JWKS ou emissor incorreto | Verifique se `EXTERNAL_OAUTH_JWS_KEYS _URL` e `EXTERNAL_OAUTH_ISSUER` correspondem ao seu servidor de autorização |

## Consulte também

- [Configurar o OAuth para conexões do Snowflake no Tableau Server](https://help.tableau.com/v0.0/server-linux/pt-br/config_oauth_snowflake.htm) - Saiba mais sobre a autenticação OAuth padrão com Snowflake.
- [Integrações de segurança OAuth externo](https://docs.snowflake.com/en/user-guide/oauth-external-overview) - Documentação do Snowflake para configurar provedores OAuth externos.
- [Fluxo de credenciais do cliente Okta](https://developer.okta.com/docs/guides/implement-grant-type/clientcreds/main/) - Documentação do Okta para implementar as credenciais do cliente.
- [Atualizar conexão de fonte de dados](https://help.tableau.com/current/api/rest_api/pt-br/REST/rest_api_ref_data_sources.htm#update_data_source_connection) - Referência da API REST do Tableau para atualizações de credenciais.