Utilizzare il tuo provider di identità con Amazon Athena

Puoi utilizzare il tuo provider di identità (IdP) con il connettore Amazon Athena.

Nota: Il provider di identità deve supportare OAuth 2.0/OIDC

Panoramica

A seconda del provider di identità (IdP) utilizzato, è necessario seguire diversi passaggi per configurare il tuo. Di seguito è riportata una panoramica generale del processo.

  1. Configura una relazione di trust tra il provider di identità, Tableau e l’origine dati.
  2. Crea le credenziali del client OAuth per Tableau.
  3. Implementa i dettagli del client OAuth in Tableau.
  4. Crea un criterio per l’identità federata.
  5. Connettiti ad Amazon Athena.

Esempio di Amazon Athena e Okta

L’esempio seguente mostra il processo in più fasi per creare una soluzione OAuth federata e di trust a tre sensi tra Tableau, Okta e AWS. Questo documento presuppone che il lettore abbia già un account Okta e AWS.

Interazione tra Tableau e OAuth

In questo esempio si utilizza OAuth per connettere Tableau ai dati. Se configurato correttamente, quando un utente tenta di connettersi ai dati, Tableau lo indirizzerà automaticamente al provider di identità per autenticarsi e fornire il consenso a delegare l’autorizzazione ai propri dati. Tableau riceverà e utilizzerà i token di accesso e di aggiornamento OAuth per connettersi all’origine dati.

Nota: le istruzioni approfondite sono disponibili solo per le fasi in Tableau.

Fase 1. Configurare Okta come provider di identità in AWS IAM Identity Center

Per questa fase è richiesta la configurazione sia in Okta che in AWS. Per le istruzioni dettagliate, consulta la documentazione Amazon (in inglese).

Fase 2. Creare applicazioni del client OAuth per Tableau in Okta

Per iniziare, consulta Applicazioni e connessioni (in inglese) nella documentazione di Okta.

Fase 3. Implementare il client OAuth in Tableau

OAuth è un protocollo di accesso delegato. Dopo l’autenticazione, l’utente delega a Tableau l’autorizzazione ad agire per suo conto. Completa la seguente procedura per configurare il client OAuth.

Nota: per questa fase è richiesto l’uso di un file di configurazione OAuth. Se non disponi di un file di configurazione OAuth, ne trovi un esempio alla fine di questa pagina o nella nostra pagina Github, in File di configurazione OAuth (in inglese).

Tableau Server o Tableau Cloud

  1. Passa alle impostazioni del sito Tableau Server o Tableau Cloud.
  2. Aggiungi l’ID client e il segreto client di OAuth dall’app Okta.
  3. Carica un file di configurazione OAuth.
  4. Seleziona Aggiungi client OAuth per terminare.

Tableau Desktop e client Tableau Bridge

  1. Apri il file di configurazione OAuth dalla directory in cui lo hai salvato.
  2. Modifica i valori di ClientID, Client Secret, authUri e tokenUri nel file XML con le informazioni dell’app Okta per Tableau Desktop.
  3. Salva il file di configurazione OAuth nella cartella “OAuthConfigs” nella cartella Repository personale di Tableau.
  4. Se stai eseguendo il client bridge, riavvialo per assicurarti che venga caricata una nuova configurazione OAuth.

Fase 4. Creare un criterio per l’identità federata in AWS

Crea una relazione di trust AWS che consenta all’applicazione di identità federata di Tableau (clientID) di essere considerata attendibile per assumere il ruolo con identità Web. Questa fase viene eseguita in AWS. Per le istruzioni dettagliate, consulta Concedere a utenti e gruppi l’accesso alle risorse AWS (in inglese) nella documentazione Amazon.

La fase 4 consente a Tableau di fornire il token di identità OIDC ricevuto da Okta (dopo l’autenticazione dell’utente), insieme al ruolo IAM fornito dall’utente ad AWS. AWS è in grado di convalidare il token e la firma di Okta, estrarre l’ID utente dal token, cercare il mapping dell’utente al ruolo IAM e consentire o impedire a Tableau di assumere il ruolo per conto dell’utente, ovvero di chiamare AssumeRoleWithWebIdentity.

Fase 5. Eseguire la connessione ad Athena

Completa la seguente procedura in Tableau Server, Tableau Cloud o Tableau Desktop.

  1. Accedi a Tableau.
  2. In Connetti seleziona A un server.
  3. Seleziona Amazon Athena.
  4. Nella finestra di dialogo della connessione immetti i parametri di connessione e l’ARN appropriati per il ruolo che dovrà assumere Tableau.
  5. Seleziona il provider OAuth configurato nella fase 3. Se esiste un solo client OAuth, sarà quello predefinito. Se ne esiste più di uno, un Creator può scegliere secondo necessità.
  6. Seleziona Accedi per connetterti ad Amazon Athena.

Esempio di file di configurazione OAuth

Puoi utilizzare il seguente file come modello per creare il tuo file OAuth. Assicurati tuttavia di aggiornarlo con le tue informazioni specifiche come l’ID client.

Copia

Esempio di file di configurazione OAuth

<pluginOAuthConfig>

  <dbclass>athena</dbclass>

  <oauthConfigId>custom_NAME</oauthConfigId>
 <!-- MUST INCLUDE "custom_" --> 
  <clientIdDesktop>CLIENT_ID</clientIdDesktop>
  <clientSecretDesktop>CLIENT_SECRET</clientSecretDesktop>
  <redirectUrisDesktop>http://localhost:56666/Callback</redirectUrisDesktop>
  <redirectUrisDesktop>http://localhost:56667/Callback</redirectUrisDesktop>

  <!--
    <redirectUrisDesktop>http://localhost:56668/Callback</redirectUrisDesktop>
    -->
  <authUri>AUTH_URI</authUri>

  <tokenUri>TOKEN_URI</tokenUri>

  <!-- EXAMPLEs

  <authUri>https://EXAMPLE.okta.com/oauth2/v1/authorize</authUri>
  <tokenUri>https://EXAMPLE.okta.com/oauth2/v1/token</tokenUri>
  -->

  <!--

  <scopes>openid</scopes>

  <scopes>email</scopes>

  <scopes>profile</scopes>

  <scopes>offline_access</scopes>
  -->

  <scopes>openid email profile offline_access</scopes>

  <capabilities>

    <entry>

      <key>OAUTH_CAP_SUPPORTS_HTTP_SCHEME_LOOPBACK_REDIRECT_URLS</key>

      <value>false</value>

    </entry>

    <entry>

      <key>OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL</key>

      <value>true</value>

    </entry>

    <entry>
      <key>OAUTH_CAP_PKCE_REQUIRES_CODE_CHALLENGE_METHOD</key>

      <value>false</value>

    </entry>

    <entry>
      <key>OAUTH_CAP_REQUIRE_PKCE</key>

      <value>false</value>

    </entry>

    <entry>
      <key>OAUTH_CAP_SUPPORTS_STATE</key>

      <value>true</value>

    </entry>

    <entry>
      <key>OAUTH_CAP_SUPPORTS_CUSTOM_DOMAIN</key>

      <value>false</value>

    </entry>

    <entry>
      <key>OAUTH_CAP_CLIENT_SECRET_IN_URL_QUERY_PARAM</key>

      <value>true</value>

    </entry>

    <entry>
      <key>OAUTH_CAP_SUPPORTS_GET_USERINFO_FROM_ID_TOKEN</key>

      <value>true</value>

    </entry>

    <entry>
      <key>OAUTH_CAP_USE_SCOPE_IN_REFRESH_REQUEST</key>

      <value>true</value>

    </entry>

  </capabilities>

  <accessTokenResponseMaps>

    <entry>
      <key>ACCESSTOKEN</key>

      <value>access_token</value>

    </entry>

    <entry>
      <key>REFRESHTOKEN</key>

      <value>refresh_token</value>

    </entry>

    <entry>
      <key>id-token</key>

      <value>id_token</value>

    </entry>

    <entry>
      <key>access-token-issue-time</key>

      <value>issued_at</value>

    </entry>

    <entry>
      <key>access-token-expires-in</key>

      <value>expires_in</value>

    </entry>

    <entry>
      <key>username</key>

      <value>preferred_username</value>

    </entry>
  
</accessTokenResponseMaps>

  <refreshTokenResponseMaps>

    <entry>
      <key>ACCESSTOKEN</key>

      <value>access_token</value>

    </entry>

    <entry>
      <key>REFRESHTOKEN</key>

      <value>refresh_token</value>

    </entry>

    <entry>
      <key>id-token</key>

      <value>id_token</value>

    </entry>

    <entry>
      <key>access-token-issue-time</key>

      <value>issued_at</value>

    </entry>

    <entry>
      <key>access-token-expires-in</key>

      <value>expires_in</value>

    </entry>
  
</refreshTokenResponseMaps>

</pluginOAuthConfig>

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