Utilizar su propio proveedor de identidad con Amazon Athena

Puede utilizar su propio proveedor de identidad (IDP) con el conector de Amazon Athena.

Nota: El proveedor de identidad debe admitir OAuth 2.0/OIDC

Descripción general

Dependiendo del proveedor de identidad que utilice, existen diferentes pasos que debe seguir para configurar su propio proveedor de identidad (IDP). La siguiente es una descripción general del proceso.

  1. Configure una relación de confianza entre el proveedor de identidad, Tableau y la fuente de datos.
  2. Cree credenciales de cliente OAuth para Tableau.
  3. Implemente los detalles del cliente OAuth en Tableau.
  4. Cree una directiva para la identidad federada.
  5. Conéctese a Amazon Athena.

Ejemplo de Amazon Athena y Okta

El siguiente ejemplo muestra el proceso de varios pasos para crear una solución OAuth federada y de confianza tripartita entre Tableau, Okta y AWS. Este documento asume que el lector ya tiene una cuenta de Okta y AWS.

Cómo interactúa Tableau con OAuth

Este ejemplo utiliza OAuth para conectar Tableau con datos. Cuando se configura correctamente, si un usuario intenta conectarse a los datos, Tableau enviará automáticamente al usuario al proveedor de identidad para que se autentique y dé su consentimiento para delegar permiso a sus datos. Tableau recibirá y utilizará tokens de actualización y acceso de OAuth para conectarse a la fuente de datos.

Nota: Las instrucciones detalladas solo están disponibles para los pasos de Tableau.

Paso 1: Configurar Okta como proveedor de identidad en AWS IAM Identity Center

Este paso requiere configuración tanto en Okta como en AWS. Para obtener instrucciones detalladas, vaya a la Documentación de Amazon.

Paso 2: Crear aplicaciones cliente OAuth para Tableau en Okta

Para empezar, consulte Aplicaciones y conexiones, en la documentación de Okta.

Paso 3: Implementar el cliente OAuth en Tableau

OAuth es un protocolo de acceso delegado. El usuario, después de autenticarse, delega permiso a Tableau para actuar en su nombre. Complete los siguientes pasos para configurar el cliente de OAuth.

Nota: Este paso requiere el uso de un archivo de configuración de OAuth. Si no tiene un archivo de configuración de OAuth, puede encontrar un ejemplo al final de esta página o en nuestra página de Github, en Archivo de configuración de OAuth

Tableau Server o Tableau Cloud

  1. Vaya a la configuración del sitio de Tableau Server o Tableau Cloud.
  2. Agregue el ID de cliente de OAuth y el secreto de cliente desde la aplicación Okta.
  3. Cargue un archivo de configuración de OAuth.
  4. Seleccione Añadir cliente de OAuth para terminar.

Cliente de Tableau Desktop y Tableau Bridge

  1. Abra su archivo de configuración de OAuth desde el directorio donde lo guardó.
  2. Ajuste ClientID, Client Secret, authUri y tokenUri en el archivo XML con la información de su aplicación Okta para Tableau Desktop.
  3. Guarde el archivo de configuración de OAuth en la carpeta "OAuthConfigs" en su carpeta Mi repositorio de Tableau.
  4. Si está ejecutando el cliente de Bridge, reinícielo para asegurarse de que se cargue una nueva configuración de OAuth.

Paso 4. Crear una directiva para la identidad federada en AWS

Cree una relación de confianza de AWS que permita confiar en la aplicación de identidad federada (clientID) de Tableau para asumir una función con identidad web. Este paso se realiza en AWS; para obtener instrucciones detalladas, consulte Otorgar acceso a usuarios y grupos a los recursos de AWS en la documentación de Amazon.

El paso 4 permite a Tableau proporcionar el token de identidad OIDC recibido de Okta (después de que el usuario se autentica), junto con la función de IAM proporcionada por el usuario a AWS. AWS puede validar el token y la firma de Okta, extraer el ID de usuario del token, buscar la asignación del usuario al rol de IAM y permitir o bloquear que Tableau asuma el rol en nombre del usuario. (es decir, AssumeRoleWithWebIdentity).

Paso 5: Conéctese a Athena

Complete los siguientes pasos en Tableau Server, Tableau Cloud o Tableau Desktop.

  1. Inicie sesión en Tableau.
  2. En Conectar, seleccione A un servidor.
  3. Seleccione Amazon Athena.
  4. En el cuadro de diálogo de conexión, indique los parámetros de conexión y el ARN apropiados para el rol que desea que asuma Tableau.
  5. Seleccione el proveedor de OAuth configurado en el paso 3. (Si solo existe un cliente OAuth, será el predeterminado. Si existe más de un cliente OAuth, un Creator puede elegir según sea necesario).
  6. Seleccione Iniciar sesión para conectarse a Amazon Athena.

Ejemplo de archivo de configuración de OAuth

Puede utilizar el siguiente archivo como plantilla para crear su propio archivo OAuth; sin embargo, asegúrese de actualizarlo con su información específica, como el ID del cliente.

Copiar

Ejemplo de archivo de configuración de 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>

¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!