Configurar OAuth desde el Centro de identidades de IAM para Amazon Redshift

A partir de Tableau 2023.3.2 para instalaciones locales (Tableau Desktop, Tableau Server y Tableau Prep) y finales de marzo de 2024 para Tableau Cloud, puede usar OAuth 2.0/OIDC para federar la identidad de un proveedor de identidad externo a Amazon Redshift.

Nota: Esta funcionalidad no está disponible para OSX debido a las limitaciones del controlador.

Estas instrucciones hacen referencia al servicio AWS IAM IDC más reciente. Para la integración del servicio IAM original, consulte Configurar OAuth de IAM para Amazon Redshift.

Según el proveedor de identidad, se necesitan diferentes pasos para configurar la integración. Esta es una descripción general de alto nivel. Tableau no puede proporcionar instrucciones detalladas sobre cómo configurar AWS o el proveedor de identidad (IdP), pero a continuación se expone el enfoque general.

Configuración del IdP

  1. Cree clientes OAuth en el IdP para Tableau Desktop y Tableau Server o Tableau Cloud. El cliente de Desktop debe habilitar PKCE y usar las redirecciones http://localhost.

  2. Agregue las notificaciones personalizadas necesarias para la autorización de roles.

  3. Cree los archivos de configuración de OAuth para Tableau. Consulte la documentación en GitHub(El enlace se abre en una ventana nueva) y ejemplos aquí (en inglés)(El enlace se abre en una ventana nueva). Agradeceremos cualquier ejemplo para otros IdP.

    1. Asegúrese de anteponer “custom_” a los ID de configuración de OAuth para Tableau.

    2. Si su IdP admite el puerto dinámico localhost, deshabilite OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL. Si su IdP no admite este puerto, asegúrese de agregar varias URL de devolución de llamada de localhost a la lista de permitidos del archivo de configuración y el IdP.

  4. Instale los archivos de configuración de OAuth para Tableau en equipos de escritorio y sitios de Tableau Server y Tableau Cloud.

Paso 2: Configure el IdP y los roles en AWS

Consulte la documentación de AWS para obtener más información sobre cómo hacerlo.

Paso 3: Conéctese a Redshift

  1. Conéctese a Redshift.

  2. Seleccione OAuth en Autenticación.

  3. Seleccione Identity Center (Centro de identidad) en Tipo de federación.

  4. (Opcional) Especifique el Espacio de nombre de Identity center si es necesario.

Cuando se configura correctamente, se le redirige al IdP para autenticar y autorizar los tokens para Tableau. Tableau recibirá un token de acceso y tokens de actualización. Enviará el token de acceso al controlador para su autenticación.

Okta

Si usa Okta, es mejor usar un “servidor de autorización personalizado” en lugar del “servidor de autorización de la organización”. Los servidores de autorización personalizados son más flexibles. Se crea un servidor de autorización personalizado de forma predeterminada con el nombre "predeterminado". La URL de autorización debe tener este aspecto:

https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize

Actualización del controlador

Si el OAuth de Redshift utiliza el servicio IAM IDC, debe utilizar el controlador ODBC de Redshift a partir de la versión 2.0.1.0, que se puede descargar desde https://github.com/aws/amazon-redshift-odbc-driver/tags (en inglés)(El enlace se abre en una ventana nueva). Tenga en cuenta que no hay disponible ningún controlador v2 para OSX.

Solución de problemas de OAuth con IAM IDC para Redshift

Si ve un mensaje de error sobre un token no válido o caducado procedente del controlador al realizar la primera conexión (en el mensaje de error aparecerá un código de error SQLState como [28000] o [08001]), entonces Tableau ha completado correctamente el flujo de OAuth, pero se ha producido un fallo en el controlador. Eso significa que hay un fallo de configuración en el lado de AWS o del IdP. Asimismo, es posible que el controlador devuelva algún error de permiso o autorización, lo que también está fuera del control de Tableau.

La mejor forma de diagnosticar estos errores es eliminar Tableau de la ecuación. En primer lugar, debe obtener un token de acceso (el predeterminado para IAM IDC) o un token de acceso (si está personalizado) para enviárselo al controlador.

A continuación, puede ver un ejemplo con Okta. Casi todos los IdP permiten hacerlo de una forma bastante similar. Tenga en cuenta que para utilizar este flujo debe habilitar el tipo de concesión de contraseña del propietario del recurso. Sustituya la URL del IdP, el secreto de cliente, el ID de cliente, el nombre de usuario y la contraseña.

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 vez que tenga el token, podrá usar un DSN para realizar la prueba. A continuación, se muestra un ejemplo del uso del administrador de controladores ODBC en Windows. En el caso de Mac, puede utilizar la interfaz de usuario del administrador de controladores iODBC. En Linux, puede utilizar la herramienta de línea de comandos isql que se incluye con Tableau Server en la carpeta customer-bin.

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