Use seu próprio provedor de identidade com o Amazon Athena

Você pode usar seu próprio provedor de identidade (IDP) com o conector Amazon Athena.

Observação: o provedor de identidade deve oferecer suporte a OAuth 2.0/OIDC

Visão geral

Dependendo do provedor de identidade que você usa, há diferentes etapas que precisa seguir para configurá-lo (IDP). A seguir, há uma visão geral do processo.

  1. Configure uma relação de confiança entre o provedor de identidade, o Tableau e a fonte de dados.
  2. Crie credenciais de cliente OAuth para Tableau.
  3. Implemente os detalhes do cliente OAuth no Tableau.
  4. Crie uma política para a identidade federada.
  5. Conecte-se ao Amazon Athena.

Exemplo de Amazon Athena e Okta

O exemplo a seguir mostra o processo de várias etapas para criar uma solução OAuth federada e confiável de três vias entre Tableau, Okta e AWS. Este documento pressupõe que o leitor já tenha uma conta Okta e AWS.

Como o Tableau interage com o OAuth

Este exemplo usa OAuth para conectar o Tableau aos dados. Se configurado corretamente, quando um usuário tenta se conectar aos dados, o Tableau enviará automaticamente o usuário ao provedor de identidade para se autenticar e consentir em delegar permissão aos seus dados. O Tableau receberá e usará tokens de acesso e atualização do OAuth para se conectar à fonte de dados.

Observação: instruções detalhadas estão disponíveis apenas para as etapas do Tableau.

Etapa 1: configurar o Okta como um provedor de identidade no AWS IAM Identity Center

Esta etapa requer configuração no Okta e no AWS. Para obter instruções detalhadas, acesse Documentação da Amazon.

Etapa 2: criar aplicativos cliente OAuth para Tableau no Okta

Para começar, consulte Aplicativos e conexões, na documentação do Okta.

Etapa 3: implementar o cliente OAuth no Tableau

OAuth é um protocolo de acesso delegado. O usuário, após se autenticar, está delegando permissão ao Tableau para agir em seu nome. Conclua as etapas a seguir para configurar a cliente OAuth.

Observação: esta etapa requer o uso de um arquivo de configuração OAuth. Se você não tem um arquivo OAuth Config, pode encontrar um exemplo no final desta página ou em nossa página no Github, em Arquivo de configuração OAuth

Tableau Server ou Tableau Cloud

  1. Navegue até as configurações do site do Tableau Server ou do Tableau Cloud.
  2. Adicione o ID do cliente OAuth e o segredo do cliente do aplicativo Okta.
  3. Carregue um arquivo de configuração OAuth.
  4. Selecione Adicionar cliente OAuth para concluir.

Cliente Tableau Desktop e Tableau Bridge

  1. Abra o arquivo OAuth Config no diretório em que você o salvou.
  2. Ajuste ClientID, Client Secret, authUri e tokenUri no arquivo XML com as informações do seu aplicativo Okta para Tableau Desktop.
  3. Salve o arquivo de configuração do OAuth na pasta “OAuthConfigs”, na pasta Meu repositório do Tableau.
  4. Se você estiver executando o cliente bridge, reinicie-o para garantir que uma nova configuração do OAuth seja carregada.

Passo 4. Crie uma política para a identidade federada na AWS

Crie uma relação de confiança da AWS que permita que o aplicativo de identidade federada (clientID) do Tableau seja confiável para assumir função com identidade da Web. Essa etapa é realizada na AWS. Para obter instruções detalhadas, consulte Conceda acesso a usuários e grupos aos recursos da AWS na documentação da Amazon.

A etapa 4 permite que o Tableau forneça o token de identidade OIDC recebido do Okta (após a autenticação do usuário), juntamente com a função IAM fornecida pelo usuário à AWS. A AWS é capaz de validar o token e a assinatura do Okta, extrair o ID do usuário do token, pesquisar o mapeamento do usuário para a função IAM e permitir ou bloquear o Tableau de assumir a função em nome do usuário. (ou seja, AssumeRoleWithWebIdentity).

Etapa 5: conectar-se ao Athena

Conclua as etapas a seguir no Tableau Server, Tableau Cloud ou Tableau Desktop.

  1. Faça login no Tableau.
  2. Sob Conectar, selecione Para um servidor.
  3. Selecione Amazon Atenas.
  4. Na caixa de diálogo de conexão, insira os parâmetros de conexão e o ARN apropriados para a função que você deseja que o Tableau assuma.
  5. Selecione o provedor OAuth configurado na Etapa 3. (Se existir apenas um cliente OAuth, ele será o padrão. Se existir mais de um cliente OAuth, um Criador poderá escolher conforme necessário.)
  6. Selecione Entrar para se conectar ao Amazon Athena.

Exemplo de arquivo de configuração OAuth

Você pode usar o arquivo a seguir como modelo para criar o próprio arquivo OAuth; no entanto, certifique-se de atualizá-lo com suas informações específicas, como o ID do cliente.

Copiar

Exemplo de arquivo de configuração 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>

Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!