Configurare OAuth di IAM Identity Center per Amazon Redshift

A partire da Tableau 2023.3.2 per gli ambienti locali (Tableau Desktop, Tableau Server e Tableau Prep), puoi utilizzare OAuth 2.0/OIDC per federare l’identità da un provider di identità esterno ad Amazon Redshift.

Queste istruzioni si riferiscono al servizio IAM IDC di AWS più recente. Per l’integrazione con il servizio IAM originale, consulta Configurare OAuth di IAM per Amazon Redshift.

A seconda del provider di identità, sono necessari diversi passaggi per configurare l’integrazione. Questa è una panoramica generale. Tableau non può fornire istruzioni dettagliate su come configurare AWS o l’IdP, ma l’approccio complessivo è descritto di seguito. Per un esempio dettagliato di implementazione dell'autenticazione con Redshift, consulta il post del blog "Integrate Tableau and Okta with Amazon Redshift using AWS IAM Identity Center(Il collegamento viene aperto in una nuova finestra)".

Fase 1. Configurare il token IDP

  1. Crea i client OAuth nell’IdP per Tableau Desktop e Tableau Server o Tableau Cloud. Il client Desktop dovrebbe abilitare PKCE e utilizzare reindirizzamenti http://localhost.

  2. Aggiungi eventuali attestazioni personalizzate richieste da utilizzare per l’autorizzazione dei ruoli.

  3. Crea i file di configurazione OAuth di Tableau. Consulta la documentazione su GitHub(Il collegamento viene aperto in una nuova finestra) e gli esempi(Il collegamento viene aperto in una nuova finestra). Siamo lieti di ricevere esempi per altri IdP.

    1. Assicurati di anteporre il prefisso “custom_” agli ID di configurazione OAuth di Tableau.

    2. Se il tuo IdP supporta la porta localhost dinamica, disabilita OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL. In caso contrario, assicurati di aggiungere diversi URL di callback localhost all’elenco consentiti nel file di configurazione e nell’IdP.

  4. Installa i nuovi file di configurazione Tableau OAuth nella cartella OAuthConfigs associata a ciascuna applicazione sugli host desktop (Tableau Desktop, Tableau Prep Builder, Tableau Bridge) e su ciascun sito Tableau Server e Tableau Cloud che utilizzerà OAuth.

Fase 2. Configurare l’IDP e i ruoli in AWS

Consulta la documentazione di AWS per informazioni su come eseguire questa operazione.

Fase 3. Eseguire la connessione a Redshift

  1. Esegui la connessione a Redshift.

  2. Seleziona OAuth per Autenticazione.

  3. Seleziona Identity Center per Tipo di federazione.

  4. (Facoltativo) Specifica lo spazio dei nomi di Identity Center, se necessario.

Se configurato correttamente, verrai reindirizzato all’IdP per l’autenticazione e l’autorizzazione dei token per Tableau. Tableau riceverà un token di accesso e i token di aggiornamento. Invierà il token di accesso al driver per l’autenticazione.

Token

Per impostazione predefinita, Redshift OAuth IAM IDC passa il token di accesso al driver. Per i clienti locali, compresi quelli che utilizzano Tableau Bridge, puoi invece utilizzare un file TDC per passare il token ID.

<connection-customization class='redshift' enabled='true' version='10.0'>
	<vendor name='redshift' />
	<driver name='redshift' />
	<customizations>
		<customization name='CAP_OAUTH_FEDERATE_ID_TOKEN' value='yes'/>
	</customizations>
</connection-customization>

Per maggiori informazioni sulla configurazione e l'installazione dei file .tdc, consulta Personalizzare e ottimizzare una connessione(Il collegamento viene aperto in una nuova finestra) e Utilizzare un file .tdc con Tableau Server(Il collegamento viene aperto in una nuova finestra).

Okta

Se si utilizza Okta, è meglio utilizzare un “server di autorizzazione personalizzato” anziché il “server di autorizzazione dell’organizzazione”. I server di autorizzazione personalizzati sono più flessibili. Per impostazione predefinita, viene creato un server di autorizzazione personalizzato denominato “predefinito”. L’URL di autorizzazione dovrebbe essere simile al seguente:

https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize

Aggiornare il driver

Per Redshift OAuth che utilizza il servizio IAM IDC, è necessario utilizzare almeno la versione 2.x del driver ODBC. Scarica la versione più recente del driver ODBC Redshift che si trova su https://github.com/aws/amazon-redshift-odbc-driver/tags(Il collegamento viene aperto in una nuova finestra). Tieni presente che non esiste ancora un driver v2 per OSX.

Risoluzione dei problemi di OAuth per IAM IDC di Redshift

Il modo migliore per diagnosticare gli errori è rimuovere Tableau dal contesto. In alternativa, è possibile effettuare un test utilizzando il gestore driver o uno strumento simile. Questo serve solo per la risoluzione dei problemi: non dovresti usare un DSN o il connettore "Altro ODBC" per l'uso regolare di questa funzionalità. Per garantire la validità del test, i parametri devono essere gli stessi indicati di seguito, ad eccezione delle informazioni sul cluster, del database, del token e dello spazio dei nomi.

Se alla prima connessione viene visualizzato un messaggio di errore proveniente dal driver relativo a un token non valido/scaduto (sarà presente un codice di errore SQLState come [28000] o [08001] nel messaggio di errore), Tableau ha completato correttamente il flusso OAuth e si è verificato un problema nel driver. Questo significa che è presente una configurazione errata sul lato AWS o sul lato IdP. Il driver potrebbe inoltre restituire errori relativi alle autorizzazioni, anch’essi fuori dal controllo di Tableau.

Prima di iniziare il test, devi ottenere un token di accesso (predefinito per IAM IDC) o un token di aggiornamento (se personalizzato) da inviare al driver.

Ecco un esempio con Okta. Quasi tutti gli IdP offrono un metodo simile per eseguire questa operazione. Tieni presente che per utilizzare questo flusso devi aver abilitato il tipo di concessione della password per il proprietario della risorsa. Sostituisci l’URL l’IdP, il segreto client, l’ID client, il nome utente e la password.

curl -X POST "https://OKTA_URL/v1/token" \
-H 'accept: application/json' \
-H "Authorization: Basic $(echo -n 'CLIENTID:CLIENTSECRET' | base64)" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=password&username=USER&password=PASSWORD&scope=openid"

Una volta ottenuto il token, puoi utilizzare un DSN per testarlo. Per Windows puoi utilizzare l’interfaccia utente del gestore driver ODBC. Su Linux puoi utilizzare lo strumento della riga di comando isql incluso con Tableau Server nella cartella customer-bin.

Tableau consiglia di non utilizzare altri plugin per i test, perché potrebbero non funzionare in un ambiente server. Utilizzano un profilo AWS fisso oppure richiedono l'accesso diretto a un browser.

Di seguito è riportato un esempio di utilizzo del gestore driver ODBC in Windows.

Grazie per il tuo feedback.Il tuo feedback è stato inviato. Grazie!