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

A partir de Tableau 2023.3.2, puede utilizar OAuth 2.0/OIDC para federar la identidad de un proveedor de identidad externo a Amazon Redshift.

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.

Para ver algunos ejemplos detallados de cómo implementar la autenticación con Redshift, consulte "Integrar Tableau y Okta con Amazon Redshift mediante AWS IAM Identity Center(El enlace se abre en una ventana nueva)" e "Integrar Tableau y Microsoft Entra ID con Amazon Redshift mediante AWS IAM Identity Center(El enlace se abre en una ventana nueva)".

Paso 1: configurar el 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 nuevos archivos de configuración de Tableau OAuth en la carpeta OAuthConfigs asociada con cada aplicación en los hosts de escritorio (Tableau Desktop, Tableau Prep Builder o Tableau Bridge) y en cada sitio de Tableau Server y Tableau Cloud que usará OAuth.

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.

Tokens

De forma predeterminada, Redshift OAuth a IAM IDC pasa el token de acceso al controlador. Para los clientes locales, incluidos aquellos que usan Tableau Bridge, puede usar un archivo TDC para pasar el token de identificación.

<connection-customization class='redshift' enabled='true' version='10.0'>
	<vendor name='redshift' />
	<driver name='redshift' />
	<customizations>
		<customization name='CAP_OAUTH_FEDERATE_ID_TOKEN' value='yes'/>
	</customizations>
</connection-customization>

Para obtener más información sobre la configuración e instalación de archivos .tdc, consulte Personalizar y ajustar una conexión(El enlace se abre en una ventana nueva) y Usar un archivo .tdc con Tableau Server(El enlace se abre en una ventana nueva).

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

Para que Redshift OAuth utilice el servicio IAM IDC, debe utilizar al menos la versión 2.x del controlador ODBC. Descargue la versión más reciente del controlador ODBC de Redshift que se encuentra en https://github.com/aws/amazon-redshift-odbc-driver/tags(El enlace se abre en una ventana nueva). Tenga en cuenta que no hay disponible ningún controlador v2 para OSX aún.

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

La mejor forma de diagnosticar errores es eliminar Tableau de la ecuación. En lugar de eso, puede probar usando el administrador de controladores o una herramienta similar. Esto es solo para solucionar problemas: no debe utilizar un DSN o el conector "Otro ODBC" para el uso regular de esta funcionalidad. Para ayudar a garantizar una prueba válida, los parámetros deben ser los mismos que se muestran a continuación, excepto la información del clúster, la base de datos, el token y el espacio de nombres.

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.

Antes de empezar a hacer pruebas, debe obtener un token de acceso (el predeterminado para IAM IDC) o un token de actualización (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. En el caso de Windows, puede utilizar la interfaz de usuario del administrador de controladores ODBC. En Linux, puede utilizar la herramienta de línea de comandos isql que se incluye con Tableau Server en la carpeta customer-bin.

Tableau recomienda no utilizar otros complementos para realizar pruebas, ya que es posible que no funcionen en un entorno de servidor. Utilizan un perfil de AWS fijo o requieren acceso directo a un navegador.

A continuación, se muestra un ejemplo del uso del administrador de controladores ODBC en Windows.

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