Registre EAS para habilitar SSO para contenido insertado

Como administrador de Tableau Server, puede registrar un servidor de autorización externo (EAS) para establecer una relación de confianza entre Tableau Server 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 Tableau Server.
  • Autorice mediante programación el acceso a la API de REST de Tableau (y a la API de metadatos a partir de Tableau Server 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 Server. Siga los pasos que se describen a continuación para registrar su EAS con Tableau Server.

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.

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.

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

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

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 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 Identidad y acceso de usuario > Servidor de autorización y haga lo siguiente:
    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.

  3. 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.

  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

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.

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.

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!