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) e da fine marzo 2024 per Tableau Cloud, puoi utilizzare OAuth 2.0/OIDC per federare l’identità da un provider di identità esterno ad Amazon Redshift.

Nota: questa funzionalità non è disponibile per OSX a causa delle limitazioni del driver.

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.

Configurare l’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 file di configurazione OAuth di Tableau nei computer desktop e in Tableau Server o nei siti Tableau Cloud.

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.

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 OAuth di Redshift con il servizio IAM IDC, è necessario utilizzare il driver Redshift ODBC a partire dalla versione 2.0.1.0, che può essere scaricato da https://github.com/aws/amazon-redshift-odbc-driver/tags(Il collegamento viene aperto in una nuova finestra). Tieni presente che non esiste un driver v2 per OSX.

Risoluzione dei problemi di OAuth per IAM IDC di Redshift

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.

Il modo migliore per diagnosticare questi errori è rimuovere Tableau dal contesto. Devi prima ottenere un token di accesso (predefinito per IAM IDC) o un token di accesso (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. Di seguito è riportato un esempio di utilizzo del gestore driver ODBC in Windows. Su Mac puoi utilizzare l’interfaccia utente del gestore driver iODBC. Su Linux puoi utilizzare lo strumento della riga di comando isql incluso con Tableau Server nella cartella customer-bin.

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