---
schema_version: "1"
id: 959aebfd296d03ea4c17daf5ea067f69d2e0120f7a598a03f4ac307ff8771408
title: "Configurare OAuth esterno per Snowflake: flusso con credenziali client"
collection: tableau
version: current
locale: it-it
portal_url: https://docs.salesforce.com/tableau/current/it-it/online/config_oauth_snowflake_client_creds.md
canonical_url: https://help.tableau.com/current/online/it-it/config_oauth_snowflake_client_creds.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 37531d8ac2e535933d8096bfeee0ed38388353ec04c4b2acb7edb09e2be36278
description: Configure Azure AD OAuth and modern authentication for Azure and Microsoft connectors in Tableau Server.
---
[Passa al contenuto principale](#main-content)

# Configurare OAuth esterno per Snowflake: flusso con credenziali client

L’autenticazione con credenziali client OAuth consente le connessioni da computer a computer a Snowflake

senza interazione dell’utente. Questo metodo è ideale per:

- Account di servizio per gli aggiornamenti automatizzati dei dati
- Processi di estrazione pianificati
- Pipeline CI/CD
- Origini dati pubblicate che richiedono credenziali incorporate

A differenza di OAuth standard (che utilizza il flusso con codice di autorizzazione), il flusso con credenziali client non

richiede agli utenti di eseguire l’accesso. Tableau esegue invece l’autenticazione direttamente con il tuo provider di identità utilizzando un

ID client e un segreto.

**Nota:** Il flusso con credenziali client richiede la funzionalità OAuth esterno di Snowflake con un provider di identità supportato. Si tratta di una funzionalità diversa da OAuth nativo di Snowflake.

## Prima di iniziare

Per utilizzare le credenziali client OAuth con Snowflake, è necessario soddisfare i seguenti requisiti:

| Requisito | Descrizione |
| --- | --- |
| Provider di identità | Okta, Azure AD o Ping Federate configurato per la concessione delle credenziali client |
| Account Snowflake | Enterprise Edition o versione superiore con accesso ACCOUNTADMIN |
| Applicazione OAuth | Servizi API (Okta), Registrazione app (Azure AD) o equivalente |
| Ambiti personalizzati | Ambiti per l’assegnazione dei ruoli Snowflake, ad esempio “session:role:SYSADMIN” |

## Configurare il provider di identità

Nella procedura seguente viene utilizzato Okta come esempio. Per gli altri provider, consulta la relativa documentazione per la configurazione delle credenziali client.

### Fase 1. Creare un’applicazione Servizi API

1. Accedi alla console di amministrazione di Okta.
2. Vai a \*\***Applications** (Applicazioni) > **Applications** (Applicazioni).
3. Seleziona \*\***Create App Integration** (Crea integrazione app).
4. Scegli \*\***API Services**\*\* (Servizi API) e seleziona \*\***Next** (Avanti).
5. Immetti un nome per l’applicazione, ad esempio `snowflake-tableau-service`.
6. Seleziona **Save** (Salva).
7. Copia i valori in **Client ID** (ID client) e **Client Secret** (Segreto client). Questi valori saranno necessari in un secondo momento.

### Fase 2. Disabilitare DPoP (se abilitato)

L’impostazione DPoP (Demonstrating Proof of Possession) deve essere disabilitata per il flusso con credenziali client.

1. Nelle impostazioni dell’applicazione, vai a **General** (Generale) > **Client Credentials** (Credenziali client).
2. Deseleziona la casella di controllo **Require Demonstrating Proof of Possession (DPoP) header in token requests** (Richiedi l’intestazione DPoP nelle richieste di token).
3. Seleziona **Save** (Salva).

### Fase 3. Aggiungere ambiti personalizzati

Snowflake richiede ambiti personalizzati per assegnare ruoli alla sessione autenticata.

1. Vai a **Security** (Sicurezza) > **API** > **Authorization Servers** (Server di autorizzazione).
2. Seleziona il server di autorizzazione **default** (predefinito) (o il tuo server personalizzato).
3. Seleziona la scheda **Scopes** (Ambiti), quindi **Add Scope** (Aggiungi ambito).
4. Aggiungi questi ambiti:
    
    | Nome ambito | Descrizione |
    | --- | --- |
    | snowflake | Ambito di accesso generale per Snowflake |
    | session:role:SYSADMIN | Assegna il ruolo SYSADMIN (modificalo per il tuo ruolo) |
    
    **Nota:** crea ambiti aggiuntivi per qualsiasi altro ruolo necessario per il tuo account di servizio.

### Fase 4. Configurare un criterio di accesso

1. Seleziona la scheda **Access Policies** (Criteri di accesso).
2. Seleziona un criterio esistente o creane uno nuovo.
3. Aggiungi una regola con queste impostazioni:
    
    - **Grant type** (Tipo di concessione): Client Credentials (Credenziali client)
    - **Scopes** (Ambiti): qualsiasi ambito (o seleziona ambiti specifici)
4. Seleziona **Create Rule** (Crea regola) o **Save** (Salva).

## Configurare Snowflake

Esegui le seguenti istruzioni SQL in Snowflake come ACCOUNTADMIN. Sostituisci i valori dei segnaposto con la tua configurazione.

### Fase 1. Creare l’integrazione OAuth esterna

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

| Parametro | Descrizione |
| --- | --- |
| `EXTERNAL_OAUTH_TYPE` | Provider di identità: `OKTA`, `AZURE` o `PING_FEDERATE` |
| `EXTERNAL_OAUTH_ISSUER` | URL dell’emittente restituita dal server di autorizzazione |
| `EXTERNAL_OAUTH_JWS_KEYS_URL` | Endpoint JWKS per la convalida dei token |
| `EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLA IM` | Attestazione JWT che identifica l’utente. Utilizza `sub` per Okta. |
| `EXTERNAL_OAUTH_ANY_ROLE_MODE` | Imposta su `ENABLE` per consentire l’assegnazione dei ruoli tramite ambiti |

### Fase 2. Creare un utente del servizio

Crea un utente Snowflake con `LOGIN_NAME` corrispondente all’ID client 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:** Il valore di `LOGIN_NAME` deve essere esattamente identico all’attestazione `sub` presente nel token OAuth. Per le applicazioni dei servizi API Okta, si tratta dell’ID client.

## Connettersi da Tableau Desktop

1. In Tableau Desktop, seleziona **Connetti** \> **Snowflake**.
2. Immetti i dettagli della connessione:
    
    | Campo | Valore |
    | --- | --- |
    | Server | URL del tuo account Snowflake, ad esempio `account.snowflakecomputing.com` |
    | Ruolo | Ruolo da utilizzare, ad esempio `SYSADMIN` |
    | Warehouse | Warehouse Snowflake |
    | Autenticazione | Credenziali client OAuth |
3. Immetti la configurazione OAuth:
    
    | Campo | Valore |
    | --- | --- |
    | URL richiesta token OAuth | `https://<your-okta-domain>.okta.com/oauth2/default/ v1/token` |
    | Nome utente | ID client OAuth |
    | Password | Segreto client OAuth |
    | Ambito OAuth | `snowflake session:role:SYSADMIN` |
    
    **Nota:** l’ambito OAuth deve includere tutti gli ambiti personalizzati configurati per l’assegnazione del ruolo.
4. Seleziona **Accedi**.

## Pubblicare in Tableau Cloud o Tableau Server

Quando pubblichi una cartella di lavoro o un’origine dati che utilizza le credenziali del client OAuth:

1. Nella finestra di dialogo **Pubblica**, seleziona **Modifica** accanto a **Origini dati**.
2. Per **Autenticazione**, seleziona **Password incorporata**.
3. Le credenziali client sono incorporate nel contenuto pubblicato.

**Importante:** a differenza di OAuth standard, le credenziali client vengono considerate come password incorporate. Gli utenti che accedono al contenuto pubblicato utilizzano le credenziali dell’account di servizio, non la propria identità.

### Rotazione delle credenziali

Quando il segreto client OAuth cambia, aggiorna le credenziali incorporate in Tableau Cloud:

1. Accedi a Tableau Cloud.
2. Passa all’origine dati pubblicata.
3. Seleziona **Connessioni**.
4. Aggiorna la connessione con il nuovo segreto client.

Per la rotazione automatizzata, utilizza l’API REST di Tableau per aggiornare le credenziali di connessione a livello di programmazione.

## Domande frequenti

### Quando è consigliabile utilizzare le credenziali client OAuth anziché OAuth standard?

Utilizza le credenziali client quando è necessaria l’autenticazione da computer a computer automatica. Standard

OAuth richiede l’interazione dell’utente per l’accesso iniziale e la riautenticazione periodica. Le credenziali client

utilizzano un’identità dell’account di servizio e non richiedono l’interazione dell’utente.

### È possibile utilizzare le credenziali client con OAuth nativo di Snowflake?

No. OAuth nativo di Snowflake supporta solo il flusso con codice di autorizzazione. Le credenziali client richiedono OAuth esterno con un provider di identità supportato (Okta, Azure AD o Ping Federate).

### Come si gestisce la rotazione dei segreti per il contenuto pubblicato?

Quando il segreto client OAuth cambia, devi aggiornare le credenziali incorporate in Tableau Cloud. Puoi eseguire questa operazione manualmente tramite l’interfaccia utente di Tableau Cloud oppure a livello di programmazione utilizzando l’API REST di Tableau. Valuta la possibilità di automatizzare questo processo come parte del flusso di lavoro di rotazione dei segreti.

### Perché la connessione non riesce e viene visualizzato un errore di ruolo anche se EXTERNAL\_OAUTH\_ANY\_ROLE\_MODE è abilitato?

Snowflake richiede informazioni sul ruolo nel token OAuth. Aggiungi un ambito personalizzato, ad esempio, `session:role:SYSADMIN`, al server di autorizzazione e includilo nel campo Ambito OAuth durante la connessione da Tableau.

## Risoluzione dei problemi

| Messaggio di errore | Causa | Soluzione |
| --- | --- | --- |
| “User does not exist or not authorized” (L’utente non esiste o non è autorizzato) | Il valore `LOGIN_NAME` dell’utente di Snowflake non corrisponde all’ID client OAuth | Imposta il valore `LOGIN_NAME` dell’utente in modo che corrisponda all’attestazione `sub` (ID client per Okta) |
| “The role requested is not listed in the Access Token” (Il ruolo richiesto non è elencato nel token di accesso) | Ambito del ruolo mancante nel token | Aggiungi `session:role:<ROLE>` al server di autorizzazione e includilo in Ambito OAuth |
| “Invalid DPoP proof” (Prova DPoP non valida) | DPoP è abilitato in Okta | Disabilita “Require Demonstrating Proof of Possession (DPoP)” (Richiedi DPoP) nella tua app Okta |
| “Invalid scope” (Ambito non valido) | Ambiti personalizzati non configurati | Aggiungi gli ambiti richiesti al server di autorizzazione; non includere `openid` |
| Errore di convalida dei token | URL o emittente JWKS errato | Verifica che `EXTERNAL_OAUTH_JWS_KEYS _URL` e `EXTERNAL_OAUTH_ISSUER` corrispondano al server di autorizzazione |

## Vedi anche

- [Configurare OAuth per le connessioni Snowflake in Tableau Server](https://help.tableau.com/current/server/it-it/config_oauth_snowflake.htm) - Informazioni sull’autenticazione OAuth standard con Snowflake.
- [Integrazioni della sicurezza con Oauth esterno](https://docs.snowflake.com/en/user-guide/oauth-external-overview) (in inglese) - Documentazione di Snowflake per la configurazione di provider OAuth esterni.
- [Flusso con credenziali client Okta](https://developer.okta.com/docs/guides/implement-grant-type/clientcreds/main/) (in inglese) - Documentazione di Okta per l’implementazione delle credenziali client.
- [Aggiornare la connessione all’origine dati](https://help.tableau.com/current/api/rest_api/it-it/REST/rest_api_ref_data_sources.htm#update_data_source_connection) (in inglese) - Informazioni di riferimento sull’API REST di Tableau per gli aggiornamenti delle credenziali.