---
schema_version: "1"
id: 4b2ec05f700acca0cc3242ea3acce1793ff85e8d647f6e833d5a46487b4f10c6
title: "Configurar OAuth externo para Snowflake: flujo de credenciales de cliente"
collection: tableau
version: next
locale: es-es
portal_url: https://docs.salesforce.com/tableau/next/es-es/server-linux/config_oauth_snowflake_client_creds.md
canonical_url: https://help.tableau.com/v0.0/server-linux/es-es/config_oauth_snowflake_client_creds.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 1ad3bdb8107c56f8334124d544ceade6634f19b7657c955a8072b30d26947bc6
description: Configure Azure AD OAuth and modern authentication for Azure and Microsoft connectors in Tableau Server.
---
[Saltar al contenido principal](#main-content)

# Configurar OAuth externo para Snowflake: flujo de credenciales de cliente

La autenticación de credenciales de cliente de OAuth permite conexiones de equipo a equipo a Snowflake

sin interacción del usuario. Este método es ideal para:

- Cuentas de servicio para actualizaciones de datos automatizadas
- Trabajos de extracciones programadas
- Canalizaciones de CI/CD
- Fuentes de datos publicadas que requieren credenciales insertadas

A diferencia de OAuth estándar (que usa el flujo de código de autorización), el flujo de credenciales de cliente no

solicitará a los usuarios que inicien sesión. En su lugar, Tableau se autentica directamente con su proveedor de identidad mediante un

ID de cliente y secreto.

**Nota:** El flujo de credenciales de cliente requiere la función OAuth externa de Snowflake con un proveedor de identidad compatible. Esto es diferente del OAuth nativo de Snowflake.

## Antes de empezar

Para usar las credenciales de cliente de OAuth con Snowflake, necesita:

| Requisito | Descripción |
| --- | --- |
| Proveedor de identidad | Okta, Azure AD o Ping Federate configurados para la concesión de credenciales de cliente |
| Cuenta de Snowflake | Edición Enterprise o superior con acceso ACCOUNTADMIN |
| Aplicación OAuth | Servicios de API (Okta), Registro de aplicaciones (Azure AD) o equivalente |
| Ámbitos personalizados | Ámbitos para la asignación de roles de Snowflake (por ejemplo, “session:role:SYSADMIN” ) |

## Configurar su proveedor de identidad

Los siguientes pasos usan Okta como ejemplo. Para otros proveedores, consulte su documentación para la configuración de credenciales de cliente.

### Paso 1: Crear una aplicación de servicios de API

1. Inicie sesión en su consola de administrador de Okta.
2. Vaya a \*\***Aplicaciones** > **Aplicaciones**.
3. Seleccione \*\***Crear integración de aplicaciones**.
4. Seleccione \*\***Servicios de API**\*\* y seleccione \*\***Siguiente**.
5. Escriba un nombre de aplicación (por ejemplo, `snowflake-tableau-service`).
6. Seleccione **Guardar**.
7. Copie el **ID de cliente** y **Secreto del cliente**. Necesitará estos valores más adelante.

### Paso 2: Deshabilitar DPoP (si está habilitado)

La prueba de posesión (DPoP) debe estar deshabilitada para el flujo de credenciales de cliente.

1. En la configuración de la aplicación, vaya a **General** \> **Credenciales de cliente**.
2. Desmarque la casilla **Requerir encabezado de prueba de posesión (DPoP) en solicitudes de token**.
3. Seleccione **Guardar**.

### Paso 3: Agregar ámbitos personalizados

Snowflake requiere ámbitos personalizados para asignar roles a la sesión autenticada.

1. Vaya a **Seguridad** > **API** \> **Servidores de autorización**.
2. Seleccione el servidor de autorización **predeterminado** (o su servidor personalizado).
3. Seleccione la pestaña **Ámbitos** y, a continuación, **Añadir ámbito**.
4. Añada estos ámbitos:
    
    | Nombre del ámbito | Descripción |
    | --- | --- |
    | snowflake | Ámbito de acceso general para Snowflake |
    | session:role:SYSADMIN | Asigna el rol SYSADMIN (ajuste según su rol) |
    
    **Nota:** Cree ámbitos adicionales para cualquier otro rol que necesite su cuenta de servicio.

### Paso 4: Configurar una directiva de acceso

1. Seleccione la pestaña **Directivas de acceso**.
2. Seleccione una directiva existente o cree una nueva.
3. Agregue una regla con esta configuración:
    
    - **Tipo de concesión:** Credenciales de cliente
    - **Ámbitos:** Cualquier ámbito (o seleccionar ámbitos específicos)
4. Seleccione **Crear regla** o **Guardar**.

## Configurar Snowflake

Ejecute las siguientes instrucciones SQL en Snowflake como ACCOUNTADMIN. Reemplace los valores de marcador de posición con su configuración.

### Paso 1: Crear la integración de 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 | Descripción |
| --- | --- |
| `EXTERNAL_OAUTH_TYPE` | Su proveedor de identidad: `OKTA`, `AZURE` o `PING_FEDERATE` |
| `EXTERNAL_OAUTH_ISSUER` | La URL del emisor de su servidor de autorización |
| `EXTERNAL_OAUTH_JWS_KEYS_URL` | El extremo JWKS para la validación de tokens |
| `EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLA IM` | La notificación JWT que identifica al usuario. Use `sub` para Okta. |
| `EXTERNAL_OAUTH_ANY_ROLE_MODE` | Establezca esto en `ENABLE` para permitir la asignación de roles a través de ámbitos |

### Paso 2: Crear un usuario de servicio

Cree un usuario de Snowflake con un `LOGIN_NAME` que coincida con el ID de cliente de 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:** El `LOGIN_NAME` debe coincidir exactamente con la afirmación `sub` en el token de OAuth. Para las aplicaciones de servicios API de Okta, este es el ID de cliente.

## Conectarse desde Tableau Desktop

1. En Tableau Desktop, seleccione **Conectar** > **Snowflake**.
2. Introduzca los detalles de su conexión:
    
    | Campo | Valor |
    | --- | --- |
    | Servidor | La URL de su cuenta de Snowflake (p. ej., `account.snowflakecomputing.com`) |
    | Rol | El rol que se va a usar (p. ej., `SYSADMIN`) |
    | Almacén | Su almacén de Snowflake |
    | Autenticación | Credenciales de cliente OAuth |
3. Introduzca la configuración de OAuth:
    
    | Campo | Valor |
    | --- | --- |
    | URL de solicitud de token de OAuth | `https://<your-okta-domain>.okta.com/oauth2/default/ v1/token` |
    | Nombre de usuario | Su ID de cliente de OAuth |
    | Contraseña | Su secreto de cliente de OAuth |
    | Ámbito de OAuth | `snowflake session:role:SYSADMIN` |
    
    **Nota:** El ámbito de OAuth debe incluir cualquier ámbito personalizado que haya configurado para la asignación de roles.
4. Seleccione **Iniciar sesión**.

## Publicar en Tableau Cloud o Tableau Server

Al publicar un libro de trabajo o una fuente de datos que utiliza credenciales de cliente de OAuth:

1. En el cuadro de diálogo **Publicar**, seleccione **Editar** junto a **Fuentes de datos**.
2. Para **Autenticación**, seleccione **Contraseña insertada**.
3. Las credenciales del cliente se insertan en el contenido publicado.

**Importante:** A diferencia de OAuth estándar, las credenciales de cliente se tratan como contraseñas incrustadas. Los usuarios que acceden al contenido publicado usan las credenciales de la cuenta de servicio, no su propia identidad.

### Rotación de credenciales

Cuando su secreto de cliente de OAuth rote, actualice las credenciales insertadas en Tableau Cloud:

1. Inicie sesión en Tableau Cloud.
2. Vaya a la fuente de datos publicada.
3. Seleccione **Conexiones**.
4. Actualice la conexión con el nuevo secreto de cliente.

Para la rotación automatizada, use la API de REST de Tableau para actualizar las credenciales de conexión mediante programación.

## Preguntas frecuentes

### ¿Cuándo debo usar las credenciales de cliente de OAuth en lugar de OAuth estándar?

Utilice las credenciales de cliente cuando necesite una autenticación desatendida de equipo a equipo. Estándar

OAuth requiere la interacción del usuario para el inicio de sesión inicial y la reautenticación periódica. Las credenciales de cliente

usan una identidad de cuenta de servicio y no requieren la interacción del usuario.

### ¿Puedo usar credenciales de cliente con OAuth nativo de Snowflake?

No. El OAuth nativo de Snowflake solo admite el flujo de código de autorización. Las credenciales de cliente requieren OAuth externo con un proveedor de identidad compatible (Okta, Azure AD o Ping Federate).

### ¿Cómo manejo la rotación de secretos para el contenido publicado?

Cuando su secreto de cliente de OAuth rota, debe actualizar las credenciales insertadas en Tableau Cloud. Puede hacerlo manualmente a través de la interfaz de usuario de Tableau Cloud o mediante programación mediante la API de REST de Tableau. Considere automatizar este proceso como parte de su flujo de trabajo de rotación de secretos.

### ¿Por qué mi conexión falla con un error de rol aunque EXTERNAL\_OAUTH\_ANY\_ROLE\_MODE está habilitado?

Snowflake requiere información de roles en el token de OAuth. Agregue un ámbito personalizado (por ejemplo, `session:role:SYSADMIN`) a su servidor de autorización e incluirlo en el campo Ámbito de OAuth cuando se conecte desde Tableau.

## Solución de problemas

| Mensaje de error | Causa | Solución |
| --- | --- | --- |
| “El usuario no existe o no está autorizado” | El usuario de Snowflake `LOGIN_NAME` no coincide con el ID de cliente de OAuth | Establezca el usuario `LOGIN_NAME` para que coincida con la afirmación `sub` (ID de cliente para Okta) |
| “El rol solicitado no aparece en el token de acceso” | Falta el alcance del rol en el token | Añada el ámbito `session:role:<ROLE>` a su servidor de autorización e inclúyalo en OAuth Scope |
| “Prueba DPoP no válida” | DPoP está habilitado en Okta | Desactive “Requerir demostración de prueba de posesión (DPoP)” en su aplicación Okta |
| “Ámbito no válido” | Ámbitos personalizados no configurados | Agregue los ámbitos requeridos a su servidor de autorización; no incluir `openid` |
| Error de validación del token | Emisor o URL de JWKS incorrectos | Compruebe que `EXTERNAL_OAUTH_JWS_KEYS _URL` y `EXTERNAL_OAUTH_ISSUER` coinciden con su servidor de autorización |

## Consulte también

- [Configurar OAuth para conexiones de Snowflake en Tableau Server](https://help.tableau.com/v0.0/server-linux/es-es/config_oauth_snowflake.htm): Obtenga información sobre la autenticación estándar de OAuth con Snowflake.
- [Integraciones de seguridad de OAuth externo](https://docs.snowflake.com/en/user-guide/oauth-external-overview): Documentación de Snowflake para configurar proveedores de OAuth externos.
- [Flujo de credenciales de cliente de Okta](https://developer.okta.com/docs/guides/implement-grant-type/clientcreds/main/): Documentación de Okta para implementar credenciales de cliente.
- [Actualizar conexión de fuente de datos](https://help.tableau.com/current/api/rest_api/es-es/REST/rest_api_ref_data_sources.htm#update_data_source_connection): Referencia de la API de REST de Tableau para actualizaciones de credenciales.