Configurar aplicaciones conectadas con confianza de OAuth 2.0

Como administrador de Tableau Server, puede registrar uno o más servidores de autorización externos (EAS) para establecer una relación de confianza entre Tableau Server y el EAS usando el protocolo estándar OAuth 2.0.

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 Server. 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 habilitar la integración a través de EAS, Tableau Server debe estar configurado para usar SSL para el tráfico HTTP.
  • 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.

Funcionamiento de las aplicaciones conectadas de Tableau con la confianza de OAuth 2.0

La relación de confianza entre su sitio de Tableau Server y la aplicación externa se establece y verifica a través de un token de autenticación en el estándar JSON Web Token (JWT).

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

Componentes clave de una aplicación conectada

Los siguientes componentes del sistema conectado funcionan junto con el JWT en su aplicación externa para autenticar a los usuarios y mostrar contenido insertado.

  • Servidor de autorización externo (EAS): el servidor, normalmente su IdP, que funciona como interfaz entre el usuario y la aplicación externa. El servidor autentica y autoriza el acceso del usuario al contenido protegido de Tableau.

  • URL del emisor: la URL que identifica de forma única la instancia EAS.

Flujo de trabajo de la aplicación conectada

Integración de flujos de trabajo

El siguiente diagrama ilustra cómo funciona la autenticación entre el servidor de autorización externa (EAS), la aplicación externa (servidor web y página web) y la aplicación conectada de Tableau.

  1. El usuario visita la página web: cuando un usuario visita el contenido insertado en una página web, la página web envía una petición GET a la aplicación externa.

  2. La aplicación externa redirige la solicitud a EAS: la aplicación externa responde con una página web que redirecciona al servidor de autorización externo (EAS).

  3. El usuario se autentica con EAS: el usuario se autentica y autoriza con el EAS.

  4. EAS responde a la página web con el código de autorización: el EAS responde a la página con un código de autorización y redirecciona nuevamente a la página web.

  5. EAS convierte el código de autorización a JWT: la página web llama al EAS para convertir el código de autorización en un JWT, que la página web coloca en la URL del contenido incrustado.

  6. La página web solicita contenido de Tableau: la página web carga el iFrame y envía una solicitud GET a Tableau.

  7. Tableau valida el token: Tableau valida el JWT en la URL con la firma y responde con el contenido y respeta los alcances de inserción definidos en el JWT.

Crear una aplicación conectada

Paso 1: Antes de comenzar

Para registrar un EAS con de Tableau Server, 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, , 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. El algoritmo de firma se puede configurar mediante el comando vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms.
"sub"AsuntoNombre de usuario del usuario de Tableau Server autenticado.
"aud"Audiencia

El valor debe ser: "tableau"

"exp"Tiempo de expiraciónUn 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 configurado. El período de validez máximo se puede configurar mediante el comando vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes.
"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" (agregado en Tableau Server 2022.3)
"tableau:metrics:embed" (Retirada en Tableau Server 2023.3)
"tableau:ask_data:embed"(Agregado en Tableau Server 2023.1. Se retirará en Tableau Server 2024.2)

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 Server 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/groupsPertenencia a un grupo dinámicoSolo para insertar flujos de trabajo.

El valor debe coincidir con el nombre de uno o más grupos en Tableau Server. Para obtener más información, consulte la sección Pertenencia a grupos dinámicos (solo para flujos de trabajo de inserción).

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 Server

Al registrar su EAS con Tableau Server, establece una relación de confianza entre el EAS y . 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 Server 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.

Acerca de los EAS a nivel de sitio

A partir de Tableau Server 2024.2, puede configurar EAS a nivel de sitio. Para registrar un EAS a nivel de sitio, las aplicaciones conectadas deben estar habilitadas en Tableau Server Manager (TSM).

Hay dos formas de registrar EAS en todo el servidor: mediante la interfaz de usuario web de TSM o mediante la CLI de TSM.

Después de registrar el EAS, la relación de confianza establecida se aplica a todos los sitios de Tableau Server.

Opción 1: usar la interfaz de usuario web de TSM

  1. Como administrador de Tableau Server, inicie sesión en la interfaz de usuario web de Tableau Services Manager (TSM). Para obtener más información, consulte Iniciar sesión en la interfaz de usuario web de Tableau Services Manager.

  2. Aplique una de las siguientes opciones:

    • En Tableau Server 2024.2 y versiones posteriores, vaya a la página Acceso e identidad de los usuarios > pestaña Aplicaciones conectadas.

    • En Tableau Server 2023.3 y versiones anteriores, vaya a la página Acceso e identidad de los usuarios > pestaña Servidor de autorización.

  3. Aplique una de las siguientes opciones:
    • En Tableau Server 2024.2 y versiones posteriores:

      1. Seleccione la casilla de verificación Habilitar aplicaciones conectadas.

      2. Seleccione el segundo botón de selección, Permitir aplicaciones conectadas (configurar a nivel de sitio) y confianza de OAuth 2.0 en todo el servidor (configurar a continuación).

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

      4. Haga clic en el botón Guardar cambios pendientes.

    • En Tableau Server 2023.3 y versiones anteriores:

      1. Seleccione la casilla de verificación Habilitar acceso OAuth para contenido insertado.

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

      3. Haga clic en el botón Guardar cambios pendientes.

  4. Cuando termine, haga lo siguiente:
    1. En la esquina superior derecha de la página, haga clic en el botón Cambios pendientes.

    2. En la esquina inferior derecha de la página, haga clic en el botón Aplicar cambios y reiniciar para detener y reiniciar Tableau Server.

Opción 2: usar la CLI de TSM

  1. Abra un símbolo del sistema como administrador en el nodo inicial (nodo en el que esté instalado TSM).
  2. Ejecute los comandos siguientes:

    tsm configuration set -k vizportal.oauth.external_authorization.enabled -v true
    tsm configuration set -k vizportal.oauth.external_authorization_server.issuer -v "<issuer_url_of_EAS>"
    tsm restart

A partir de Tableau Server 2024.2, puede registrar uno o más EAS en un sitio. Después de registrar el EAS a nivel de sitio, la relación de confianza establecida se aplica únicamente al sitio.

Nota: Uno de los requisitos previos para configurar EAS a nivel de sitio es que las aplicaciones conectadas estén habilitadas en TSM.

Paso 1: Habilitar las aplicaciones conectadas

  1. Como administrador de Tableau Server, inicie sesión en la interfaz de usuario web de Tableau Services Manager (TSM). Para obtener más información, consulte Iniciar sesión en la interfaz de usuario web de Tableau Services Manager.

  2. Vaya a la página Acceso e identidad de los usuarios > pestaña Aplicaciones conectadas.

  3. Seleccione la casilla de verificación Habilitar aplicaciones conectadas.

  4. Aplique una de las siguientes opciones:

    • Seleccione el primer botón de selección, Permitir aplicaciones conectadas (configurar a nivel de sitio), para permitir el registro de EAS solo a nivel de sitio.

    • (Predeterminado) Seleccione el segundo botón de selección, Permitir aplicaciones conectadas (configurar a nivel de sitio) y confianza de OAuth 2.0 en todo el servidor (configurar a continuación) para permitir el registro de EAS tanto a nivel de sitio como a nivel de servidor. Si elige esta opción, asegúrese de que la URL del emisor especificada a nivel de sitio sea diferente de la URL del emisor a nivel de servidor.

  5. Haga clic en el botón Guardar cambios pendientes.

  6. Cuando termine, haga lo siguiente:
    1. En la esquina superior derecha de la página, haga clic en el botón Cambios pendientes.

    2. En la esquina inferior derecha de la página, haga clic en el botón Aplicar cambios y reiniciar para detener y reiniciar Tableau Server.

Paso 2: Registrar el EAS

  1. Como administrador de Tableau Server, inicie sesión en Tableau Server.

  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 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 de Tableau Server 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 Tableau Server 2023.3, 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.

Administrar una aplicación conectada

Pertenencia a grupos dinámicos (solo para flujos de trabajo de inserción)

A partir de Tableau Server 2024.2, si las aplicaciones conectadas están configuradas y la configuración de la capacidad está habilitada, puede controlar dinámicamente la pertenencia del grupo a través de notificaciones personalizadas incluidas en el JWT enviado por la aplicación externa.

Cuando se configura, durante la autenticación del usuario, la aplicación externa envía el JWT que contiene dos reclamos personalizados para la pertenencia del grupo: grupo (https://tableau.com/groups) y nombres de grupos (por ejemplo, "Grupo1" y "Grupo2") para incluir al usuario. Tableau valida el JWT y luego habilita el acceso a los grupos y al contenido cuyos permisos dependen de esos grupos.

Para obtener más información, consulte Pertenencia a grupos dinámicos mediante confirmaciones.

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://<your_server>/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.

  • Vistas integradas en varios sitios: En Tableau Server 2023.1 y versiones anteriores, cambiar entre vistas en diferentes sitios en el mismo navegador provoca un error 1008: No se pudo recuperar el secreto para la aplicación de conexión. Para solucionar este problema, actualice a Tableau Server 2023.3 o posterior.

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 de Tableau Server.

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 Tableau
Para resolver este problema, verifique que el valor de la notificación 'sub' (sujeto) en JWT sea "nombre de usuario" para el Tableau Server autenticado. 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:
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.
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. Para cambiar la URL del emisor, puede utilizar el comando vizportal.oauth.external_authorization_server.issuer.
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. Para cambiar la URL del emisor, puede utilizar el comando vizportal.oauth.external_authorization_server.issuer.

10087BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGNProblema con el algoritmo de firma JWTPara resolver el problema, puede eliminar el algoritmo de firma. Para obtener más información, consulte vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms.
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.
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 se utiliza el valor correcto. Para cambiar el período de validez máximo, puede utilizar el comando vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes.
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'.
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 Server.
¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!