Använda din egen identitetsprovider (IdP) med Amazon Athena

Du kan använda din egen identitetsprovider (IdP) med Amazon Athena-kopplingen.

Obs! Identitetsprovidern måste ha stöd för OAuth 2.0/OIDC.

Översikt

Beroende på vilken identitetsprovider (IdP) du använder skiljer sig konfigurationsstegen åt. Detta är en allmän översikt över processen.

  1. Skapa en förtroenderelation mellan identitetsprovidern, Tableau och datakällan.
  2. Skapa OAuth-klientinloggningsuppgifter för Tableau.
  3. Implementera OAuth-klientens uppgifter i Tableau.
  4. Skapa en policy för den federerade identiteten.
  5. Anslut till Amazon Athena.

Exempel med Amazon Athena och Okta

Följande exempel visar flerstegsprocessen för att skapa ett 3-vägsförtroende och en federerad OAuth-lösning mellan Tableau, Okta och AWS. Detta dokument förutsätter att läsaren redan har ett Okta- och AWS-konto.

Så här fungerar Tableau med OAuth

I det här exemplet används OAuth för att koppla Tableau till data. När Tableau har konfigurerats korrekt och en användare försöker ansluta till data skickar Tableau automatiskt användaren till identitetsprovidern, där de autentiserar sig och samtycker till att delegera behörigheter för sina data. Tableau tar emot och använder OAuth-åtkomsttoken och -uppdateringstoken för att ansluta till datakällan.

Obs! Mer detaljerade instruktioner finns bara för stegen i Tableau.

Steg 1: Konfigurera Okta som en identitetsprovider i AWS IAM Identity Center

Detta steg kräver att både Okta och AWS konfigureras. Du hittar detaljerade anvisningar i Amazons dokumentation.

Steg 2: Skapa OAuth-klientprogram för Tableau i Okta

Kom igång genom att läsa avsnittet Applications and connections i Okta-dokumentationen.

Steg 3: Implementera OAuth-klienten i Tableau

OAuth är ett delegerat åtkomstprotokoll. Användaren autentiserar sig och delegerar därefter behörighet för Tableau att agera å dennes vägnar. Utför följande steg för att konfigurera OAuth-klienten.

Obs! Det här steget kräver en OAuth-konfigurationsfil. Om du inte har en OAuth-konfigurationsfil hittar du ett exempel längst ner på den här sidan och på vår Github-sida under OAuth Config file (OAuth-konfigurationsfil).

Tableau Server eller Tableau Cloud

  1. Navigera till platsinställningarna för Tableau Server eller Tableau Cloud.
  2. Lägg till klient-ID och klienthemlighet för OAuth från Okta-appen.
  3. Ladda upp en OAuth-konfigurationsfil.
  4. Välj Lägg till OAuth-klient för att slutföra.

Tableau Desktop och Tableau Bridge-klient

  1. Öppna OAuth-konfigurationsfilen från den katalog där du sparade den.
  2. Uppdatera ClientID, Client Secret, authUri och tokenUri i XML-filen med informationen från Okta-appen för Tableau Desktop.
  3. Spara OAuth-konfigurationsfilen i mappen ”OAuthConfigs” i mappen Min Tableau-lagringsplats.
  4. Om du kör Bridge-klienten startar du om den för att försäkra dig om att en ny OAuth-konfiguration läses in.

Steg 4. Skapa en policy för den federerade identiteten i AWS

Skapa en AWS-förtroenderelation så att Tableaus program för federerade identiteter (klient-ID) är tillförlitligt för att Anta roll med webbidentitet (assume-role-with-web-identity). Det här steget utförs i AWS och du hittar mer detaljerade anvisningar i avsnittet Grant users and groups access to AWS resources (på engelska) i Amazons dokumentation.

Steg 4 innebär att Tableau kan tillhandahålla den OIDC-identitetstoken som tagits emot från Okta (efter att användaren har autentiserats) tillsammans med den IAM-roll som användaren förser AWS med. AWS kan validera token och signaturen från Okta, extrahera användar-ID:t från token, slå upp mappningen av användare mot IAM-roll och antingen tillåta eller neka Tableau att anta rollen å användarens vägnar. (Läs mer i AssumeRoleWithWebIdentity).

Steg 5: Ansluta till Athena

Slutför följande steg i Tableau Server, Tableau Cloud eller Tableau Desktop.

  1. Logga in på Tableau.
  2. Under Anslut väljer du Till en server.
  3. Välj Amazon Athena.
  4. I dialogrutan för anslutning anger du lämpliga anslutningsparametrar och ARN för den roll du vill att Tableau ska anta.
  5. Välj den OAuth-leverantör som konfigurerades i steg 3. (Om det bara finns en OAuth-klient används den som standard. Om det finns fler än en OAuth-klient kan en Creator-användare välja efter behov.)
  6. Välj Logga in för att ansluta till Amazon Athena.

Exempel på OAuth-konfigurationsfil

Du kan använda följande fil som en mall för att skapa en egen OAuth-fil, men se till att du uppdaterar den med dina uppgifter, som klient-ID.

Kopiera

Exempel på OAuth-konfigurationsfil

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

Tack för din feedback!Din feedback har skickats in. Tack!