Configure aplicaciones conectadas con OAuth 2.0 Trust

Como administrador del sitio de Tableau Cloud, puede registrar un servidor de autorización externo (EAS) para establecer una relación de confianza entre el sitio de Tableau Cloud y el EAS usando el protocolo estándar OAuth 2.0. Al establecer una relación de confianza, puede:

  • Proporcione a sus usuarios una experiencia de inicio de sesión único (SSO) para el contenido de Tableau insertado en sus aplicaciones externas a través del proveedor de identidades (IdP) que ya ha configurado para su sitio de Tableau Cloud
  • Autorice mediante programación el acceso a la API de REST de Tableau (y a la API de metadatos a partir de Tableau Cloud octubre de 2023) en nombre de los usuarios utilizando un JSON Web Token (JWT)

Cuando se carga contenido de Tableau insertado en su aplicación externa, se utiliza un flujo de OAuth estándar. Cuando los usuarios inicien sesión correctamente en el IdP, iniciarán sesión automáticamente en Tableau Cloud. Siga los pasos que se describen a continuación para registrar su EAS con su sitio de Tableau Cloud.

Importante:

  • Algunos de los procedimientos de este tema requieren configuración con software y servicios de terceros. Hemos hecho todo lo posible por verificar los procedimientos para habilitar la funcionalidad EAS en Tableau Cloud. Sin embargo, el software y los servicios de terceros pueden cambiar o su organización puede ser diferente. Si tiene problemas, consulte la documentación de terceros para obtener detalles de configuración autorizados y asistencia.
  • Para que el token de sesión sea válido, los relojes de la aplicación externa y el servidor que aloja la aplicación externa deben configurarse en hora universal coordinada (UTC). Si alguno de los relojes usa un estándar diferente, no se confiará en la aplicación conectada.

Paso 1: Antes de comenzar

Para registrar un EAS con su sitio de Tableau Cloud, debe tener un EAS ya configurado. Además, el EAS debe enviar un JSON Web Token (JWT) válido que contenga los reclamos registrados y el encabezado que se enumeran en la siguiente tabla.

NotificaciónNombreDescripción o valor requerido
"kid"ID de claveObligatorio (en el encabezado). Un identificador de clave único del proveedor de identidad.
"iss"EmisorRequerido (en encabezado o como notificación). URI de emisor único, en HTTPS, que identifica la aplicación de conexión de confianza y su clave de firma.
"alg"AlgoritmoObligatorio (en el encabezado). Algoritmo de firma JWT. Los nombres de algoritmos admitidos aparecen enumerados en la página Class JWSAlgorithm(El enlace se abre en una ventana nueva), en la documentación de javadoc.io.
"sub"AsuntoNombre de usuario (dirección de correo electrónico) del usuario de Tableau Cloud autenticado.
"aud"Audiencia

El valor debe ser: "tableau:<site_luid>"

Para obtener el LUID del sitio, puede usar el método de inicio de sesión de la API de REST de Tableau o seguir los pasos a continuación para copiar el ID del sitio. Nota: Debe registrar un EAS utilizando el procedimiento descrito aquí antes de poder copiar el ID del sitio.

  1. Seleccione Configuración > Aplicaciones conectadas y luego seleccione la aplicación conectada al Servidor de autorización externo.
  2. Haga clic en el botón Copiar ID del sitio.

"exp"Tiempo de expiración

Un JWT válido no debe haber caducado. El tiempo de caducidad del JWT (en UTC) debe estar dentro del período de validez máximo, que es de 10 minutos.

"jti"ID de JWTLa notificación de ID de JWT proporciona un identificador único para el JWT y distingue entre mayúsculas y minúsculas.
"scp"Ámbito

Para insertar flujos de trabajo, los valores admitidos incluyen:

"tableau:views:embed"
"tableau:views:embed_authoring"
"tableau:metrics:embed" (Retirada en octubre de 2023 (Tableau 2023.3))
"tableau:ask_data:embed"(Retirado en febrero de 2024 (Tableau 2024.1)

Notas:

  • Los valores deben pasarse como un tipo de lista.
  • Para tableau:views:embed, el ámbito respeta los permisos de los usuarios ya configurados en Tableau Cloud y permite a los usuarios interactuar con las herramientas en la vista insertada si están disponibles en la vista original.
  • Recomendamos que el código de inserción excluya el parámetro de la barra de herramientas. Para obtener más información, consulte Problemas conocidos (solo para insertar flujos de trabajo) más adelante.

Para conocer los flujos de trabajo de autorización de la API de REST, consulte Métodos de la API de REST que admiten la autorización JWT.

Para Flujos de trabajo de la API de metadatos que utilizan la API de REST para la autenticación, el único alcance admitido es tableau:content:read.

https://tableau.com/odaAcceso bajo demanda: reclamar (habilitar capacidad)Solo para insertar flujos de trabajo.

El valor debe ser "true" y se deben especificar uno o más grupos de Tableau Cloud (consulte la siguiente fila). Para obtener más información, consulte la sección Acceso bajo demanda (solo flujos de trabajo de inserción).

https://tableau.com/groupsAcceso bajo demanda: reclamar (especifique el nombre del grupo)Solo para insertar flujos de trabajo.

El valor debe coincidir con el nombre de uno o más grupos en Tableau Cloud. Para obtener más información, consulte la sección Acceso bajo demanda (solo flujos de trabajo de inserción).

(Atributos de usuario)(Valores de atributo de usuario)

Solo para insertar flujos de trabajo.

Puede incluir atributos de usuario en el JWT. Luego, cuando las funciones de atributos de usuario se usan en el contenido insertado, Tableau verifica el contexto del usuario autenticado y determina qué datos se pueden mostrar en el tiempo de ejecución.

Notas:

Nota: Las notificaciones de JWT anteriores están documentadas en la sección Nombres de notificaciones registradas(El enlace se abre en una ventana nueva), en la documentación distribuida por la organización Internet Engineering Task Force (IETF).

Paso 2: Registrar su EAS con Tableau Cloud

Al registrar su EAS con Tableau Cloud, establece una relación de confianza entre el EAS y su sitio de Tableau Cloud. Esto significa que cuando los usuarios acceden al contenido de Tableau insertado en su aplicación externa, se les redirige para autenticarse con el IdP. El EAS genera el token de autenticación, que se pasa a Tableau Cloud para su verificación. Una vez que se verifica la relación de confianza, se otorga a los usuarios acceso al contenido insertado.

Nota: Algunos EAS admiten la opción de mostrar un cuadro de diálogo de consentimiento que solicita la aprobación de los usuarios para que la aplicación acceda al contenido de Tableau. Para garantizar la mejor experiencia para sus usuarios, le recomendamos que configure su EAS para que dé su consentimiento automáticamente a la solicitud de la aplicación externa en nombre de los usuarios.

  1. Como administrador del sitio de , inicie sesión en Tableau Cloud.

  2. En el panel izquierdo, seleccione Configuración > Aplicaciones conectadas.

  3. Haga clic en la flecha desplegable del botón Nueva aplicación conectada y seleccione OAuth 2.0 Trust.

  4. En el cuadro de diálogo Crear aplicación conectada, siga uno de estos pasos:
    1. En el cuadro de texto Nombre, indique un nombre para la aplicación conectada.

    2. En el cuadro de texto URL del emisor, pegue la URL del emisor del EAS.

    3. Seleccione Habilitar aplicación conectada. Por motivos de seguridad, una aplicación conectada está desactivada de forma predeterminada cuando se crea.

    4. Cuando haya terminado, haga clic en el botón Crear.

  5. Después de crear la aplicación conectada, copie el ID del sitio de la aplicación conectada. El ID del sitio se usa para el reclamo "aud" (audiencia) de JWT descrito en el paso 1 anterior.

Paso 3: Siguientes pasos

Para insertar flujos de trabajo

Después de configurar su sitio de Tableau Cloud para usar su EAS, debe añadir el código de inserción a su aplicación externa. Asegúrese de incluir el JWT válido generado por su EAS, como se describe en el paso 1, en el componente web al que llama su aplicación externa.

Para obtener más información sobre cómo incorporar contenido de Tableau, consulte una o ambas de las siguientes opciones:

Nota: Para que los usuarios se autentiquen correctamente cuando accedan a contenido incrustado, los navegadores deben estar configurados para permitir cookies de terceros.

Controle dónde se puede insertar el contenido utilizando la lista de admisión de dominios para insertar

A partir de junio de 2023 (versión de Tableau 2023.2), usted y sus usuarios pueden controlar si el contenido de Tableau se puede insertar sin restricciones o restringirse a ciertos dominios mediante el método Actualizar configuración de inserción para el sitio en la API de REST de Tableau.

De forma predeterminada, la configuración del sitio unrestrictedEmbedding para insertar está establecida en true para permitir la inserción sin restricciones. Alternativamente, usted y sus usuarios pueden establecer la configuración en false y especificar los dominios donde el contenido de Tableau en aplicaciones externas se puede insertar usando el parámetro allowList.

Para obtener más información, consulte uno de los siguientes artículos:

Para flujos de trabajo de autorización de API de REST

Una vez configurado el JWT, debe agregar el JWT válido a la solicitud de inicio de sesión de la API de REST para obtener acceso autorizado. Para obtener más información, consulte Alcances del acceso para aplicaciones conectadas.

Para flujos de trabajo de la API de metadatos

Una vez configurado el JWT, debe agregar el JWT válido a la solicitud de inicio de sesión de la API de REST. Para obtener más información, consulte Alcances del acceso para aplicaciones conectadas.

Acceso bajo demanda (solo flujos de trabajo de inserción)

A partir de octubre de 2023, si su sitio tiene licencia con el modelo basado en el uso Análisis incorporado(El enlace se abre en una ventana nueva), puede ampliar el acceso a su contenido insertado de Tableau a más usuarios mediante el acceso bajo demanda. Con el acceso bajo demanda, usted permite que sus usuarios interactúen con contenido insertado de Tableau autenticado mediante su aplicación conectada sin necesidad de aprovisionar a esos usuarios en su sitio de Tableau Cloud. El acceso bajo demanda elimina el requisito de agregar y administrar usuarios en Tableau Cloud para admitir el acceso al contenido insertado.

Cómo funciona el acceso bajo demanda

El acceso al contenido insertado de Tableau mediante el acceso bajo demanda está determinado por permisos a nivel de grupo, ya sea heredados (por ejemplo, a nivel de proyecto) o aplicados directamente al contenido. Los usuarios, como administradores de sitios, propietarios o líderes de proyectos y propietarios de contenido, pueden asignar permisos a nivel de grupo al contenido. Cuando los usuarios acceden al contenido insertado y habilitado mediante la capacidad de acceso bajo demanda, Tableau valida que el JWT contenga las reclamaciones de pertenencia del grupo correctas antes de mostrar el contenido.

Requisitos previos

Los siguientes criterios deben cumplirse para permitir el acceso bajo demanda al contenido insertado:

  1. El sitio tiene licencia con el modelo basado en el uso Análisis incorporado(El enlace se abre en una ventana nueva)
  2. La capacidad de acceso bajo demanda está habilitada para el grupo.
  3. Se especifican permisos de grupo para el contenido de Tableau.
  4. Se crea la aplicación conectada de Tableau
  5. El JWT utilizado por la aplicación conectada incluye las reclamaciones https://tableau.com/oda y https://tableau.com/groups
  6. El contenido de Tableau está integrado en una aplicación externa

Cuando se cumplen estos criterios, sus usuarios pueden interactuar con el contenido insertado de Tableau y habilitado mediante la capacidad de acceso bajo demanda.

Habilitar la capacidad de acceso bajo demanda

Para habilitar la capacidad de acceso bajo demanda para un grupo, al crear o editar un grupo, debe seleccionar la casilla de verificación Permitir acceso bajo demanda. Para obtener más información sobre la creación de grupos, consulte Crear un grupo y añadirle usuarios

Puede habilitar esta capacidad utilizando la API de REST de Tableau. Para obtener más información, consulte los métodos Crear un grupo(El enlace se abre en una ventana nueva) y Actualizar un grupo(El enlace se abre en una ventana nueva) en la ayuda de la API de REST de Tableau.

Capacidades cuando el acceso bajo demanda está habilitado

Los usuarios que acceden al contenido insertado de Tableau tienen las capacidades(El enlace se abre en una ventana nueva) de visualización para el contenido. Los usuarios tienen capacidades de visualización independientemente de la plantilla seleccionada o las capacidades personalizadas que puedan configurarse para el grupo (por ejemplo, un usuario con el rol de Viewer nunca podrá descargar una fuente de datos incluso si esa capacidad se les otorga explícitamente en un fuente de datos específica).

Supervisar el acceso bajo demanda

Si usted tiene Tableau Cloud con Advanced Management(El enlace se abre en una ventana nueva), puede usar el Registro de actividad para supervisar el uso del acceso bajo demanda. Los eventos en el Registro de actividad que capturan el acceso bajo demanda incluyen, entre otros, vista de acceso e inicio de sesión. Para obtener más información sobre estos eventos, consulte Referencia de tipo de evento de registro de actividad.

Limitaciones

Debido a que los flujos de trabajo de acceso bajo demanda permiten que ciertos usuarios que acceden al contenido insertado de Tableau sean anónimos y efímeros en Tableau Cloud, las siguientes capacidades no están disponibles para los usuarios que acceden al contenido insertado y habilitado mediante la capacidad de acceso bajo demanda.

  • Crear vistas personalizadas
  • Compartir contenido usando el botón de compartir del contenido
  • Suscríbase al contenido para recibir instantáneas de información por correo electrónico

Nota: A partir de febrero de 2024 (Tableau 2024.1), las solicitudes de API de REST de Tableau se pueden realizar como usuario con acceso bajo demanda.

Problemas conocidos (solo para insertar flujos de trabajo)

Hay un par de problemas conocidos al usar aplicaciones conectadas que se tratarán en una versión futura.

  • Funciones de la barra de herramientas: cuando el contenido incrustado tenga definido el parámetro de la barra de herramientas, no todas las funciones de la barra de herramientas funcionarán. Para solucionar este problema, le recomendamos que oculte el parámetro de la barra de herramientas como en el siguiente ejemplo.

    <tableau-viz id='tab-viz' src='https://online.tableau.com/t/<your_site>/...'
    	toolbar='hidden'>
    </tableau-viz>

  • Fuentes de datos publicadas: las fuentes de datos publicadas que se hayan configurado para Preguntar al usuario las credenciales de la base de datos no se mostrarán. Para solucionar este problema, si es posible, recomendamos a los propietarios de fuentes de datos que incorporen sus credenciales de base de datos.

Solución de problemas

Cuando el contenido insertado no se muestra en su aplicación externa o si falla la autorización de la API de REST de Tableau, puede usar las herramientas del desarrollador de un navegador para inspeccionar e identificar los códigos de error que podrían estar asociados con la función EAS habilitada en su sitio de Tableau Cloud.

Consulte la tabla a continuación para revisar la descripción del código de error y la posible resolución.

Código de errorResumenDescripciónPosible resolución o explicación
5SYSTEM_USER_NOT_FOUNDNo se ha podido encontrar al usuario de TableauPara resolver este problema, verifique que el valor de la notificación 'sub' (sujeto) en JWT sea el nombre de usuario (dirección de correo electrónico) del usuario autenticado de Tableau Cloud. Este valor diferencia entre mayúsculas y minúsculas.
16LOGIN_FAILEDError al iniciar sesiónEste error suele deberse a uno de los siguientes problemas de notificaciones en JWT:
  • El 'exp' (tiempo de caducidad) excede el período de validez máximo predeterminado. Para resolver este problema, revise las notificaciones registradas(El enlace se abre en una ventana nueva) necesarias para JWT con validez y asegúrese de que el valor correcto no exceda los 10 minutos.
  • El 'sub' (sujeto) llama a un usuario desconocido. Para resolver este problema, verifique que el valor 'sub' sea el nombre de usuario (dirección de correo electrónico) del usuario autenticado de Tableau Cloud.
67FEATURE_NOT_ENABLEDEl acceso bajo demanda no es compatibleEl acceso bajo demanda está disponible únicamente a través de sitios con licencia de Tableau Cloud.
142EXTERNAL_AUTHORIZATION_SERVER_NOT_FOUNDEAS not foundPara resolver este problema, verifique que se llame al emisor correcto.
143EXTERNAL_AUTHORIZATION_SERVER_LIMIT_EXCEEDEDEAS limit exceededEl sitio ha alcanzado el número máximo permitido (1) de servidores de autorización externos registrados (EAS).
144INVALID_ISSUER_URLInvalid issuer URLLa URL del emisor no es válida o falta el atributo 'iss' (Emisor) en el JWT.
149EAS_INVALID_JWKS_URIFalta la URI de JWKSLa URI de JWKS no existe en los metadatos del IdP o la URI de JWKS no está configurada en Tableau. Para resolver este problema, configure una URI de JWKS válida.
150EAS_RETRIEVE_JWK_SOURCE_FAILEDError al recuperar la fuente de clavesPara resolver este problema, verifique que ha configurado correctamente la URI de JWKS.
151EAS_RETRIEVE_METADATA_FAILEDError al recuperar metadatos de issuerUrlPara resolver este problema, verifique que ha configurado correctamente la URI de JWKS.
10081COULD_NOT_RETRIEVE_IDP_METADATAFalta el extremo de los metadatos de EASPara resolver este problema, verifique que EAS se haya configurado correctamente y que se llame al emisor correcto.
10082AUTHORIZATION_SERVER_ISSUER_NOT_SPECIFIEDFalta el emisorPara resolver este problema, verifique que se llame al emisor correcto.
10083BAD_JWTEl encabezado JWT contiene problemasFaltan las notificaciones de 'kid' (ID secreta) o 'clientId' (emisor) en el encabezado JWT. Para resolver este problema, asegúrese de incluir esta información.
10084JWT_PARSE_ERRORJWT contiene problemasPara resolver este problema, verifique lo siguiente:
  • El valor de 'aud' (audiencia) al que se hace referencia en JWT use el valor de "tableau". Este valor diferencia entre mayúsculas y minúsculas.
  • Los valores 'aud' (Audiencia) y 'sub' (Asunto) están incluidos en el JWT.
10085COULD_NOT_FETCH_JWT_KEYSJWT no ha podido encontrar las clavesNo se ha podido encontrar el secreto.

Para resolver este problema, verifique que se llame al emisor correcto.

10087BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGNProblema con el algoritmo de firma JWTPara resolver el problema, puede eliminar el algoritmo de firma.
10088RSA_KEY_SIZE_INVALIDProblema con los requisitos de firma JWTPara resolver este problema, verifique con EAS o IdP que el JWT se firme con un tamaño de clave RSA de 2048.
10091JTI_ALREADY_USEDSe requiere JWT únicoJWT ya se ha utilizado en el proceso de autenticación. Para resolver este problema, EAS o IdP debe generar un nuevo JWT.
10092NOT_IN_DOMAIN_ALLOW_LISTNo se especifica el dominio del contenido insertadoPara resolver este problema, asegúrese de que el ajuste unrestrictedEmbedding se establece en true o que el parámetro domainAllowlist incluye los dominios donde el contenido de Tableau está insertado mediante Actualizar configuración de inserción para el sitio(El enlace se abre en una ventana nueva) en la API de REST de Tableau.
10094MISSING_REQUIRED_JTIMissing JWT IDPara resolver este problema, verifique que el valor 'jti' (JWT ID) esté incluido en el JWT.
10095EXTERNAL_AUTHZ_SERVER_DISABLEDEAS disabledLa aplicación conectada para el EAS registrado en el sitio está deshabilitada.
10096JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD  El 'exp' (tiempo de caducidad) excede el período de validez máximo predeterminado. Para resolver este problema, revise las notificaciones registradas(El enlace se abre en una ventana nueva) necesarias para JWT con validez y asegúrese de que el valor correcto no exceda los 10 minutos.
10097SCOPES_MALFORMEDProblemas con la reclamación de ámbitosEste error puede ocurrir cuando la reclamación "scp" (Ámbito) no se encuentra en el JWT o no se ha pasado como un tipo de lista. Para resolver este problema, compruebe que "scp" se incluye en el JWT y se pasa como un tipo de lista. Para obtener ayuda con la resolución de problemas con un JWT, consulte Depurador(El enlace se abre en una ventana nueva) en el sitio de auth0.
10098JWT_UNSIGNED_OR_ENCRYPTEDJWT no está firmado o está cifradoTableau no admite JWT sin firmar o cifrados.
10099SCOPES_MISSING_IN_JWTReclamación de ámbitos faltantesAl JWT le falta la reclamación requerida "scp" (Ámbito). Para resolver este problema, verifique que el valor 'scp' esté incluido en el JWT. Para obtener ayuda con la resolución de problemas con un JWT, consulte Depurador(El enlace se abre en una ventana nueva) en el sitio de auth0.
10100JTI_PERSISTENCE_FAILEDError de ID de JWT inesperadoHubo un error inesperado con el "jti" (ID de JWT). Para resolver este problema, se debe generar un nuevo JWT con un nuevo valor 'jti'.
10101EPHEMERAL_USER_LOGIN_FAILED_SITE_NOT_UBP_ENABLEDEl acceso bajo demanda no es compatibleEl sitio no tiene el modelo basado en el uso del Análisis incorporado que se requiere para habilitar el acceso bajo demanda. Para obtener más información, consulte Comprender modelos de licencias.
10102EPHEMERAL_USER_NOT_SUPPORTEDEl acceso bajo demanda no se admite cuando el atributo iframe-auth está habilitadoEste error puede ocurrir cuando el atributo iframe-auth está habilitado. Para resolver este problema, verifique que se esté utilizando la versión 3.6 o posterior de la API de inserción de Tableau.
10103JWT_MAX_SIZE_EXCEEDEDJWT supera el tamaño máximoEste error puede ocurrir cuando el tamaño de JWT excede los 8000 bytes. Para resolver este problema, asegúrese de que solo se transmitan las reclamaciones necesarias a Tableau Cloud.
¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!