Antes de configurar SAML en Tableau Server, asegúrese de que el entorno cumple los requisitos.

Importante: Las configuraciones de SAML, tanto con IdP como en Tableau Server, distinguen entre mayúsculas y minúsculas. Por ejemplo, las URL configuradas con el IdP y en Tableau Server deben coincidir exactamente.

Requisitos de certificado y de proveedor de identidades (IdP)

Para configurar Tableau Server para usar SAML, debe hacer lo siguiente:

  • Archivo de certificado. Un archivo de certificado x509 con codificación PEM con la extensión .crt. Tableau Server usa este archivo, no el IdP. Si dispone de un certificado SSL, en determinadas circunstancias se puede usar el mismo certificado con SAML. Para obtener más información, consulte la sección Utilizar archivos de certificado y clave SSL para SAML, que aparece más adelante en este artículo.

    Tableau Server necesita un par de claves de certificado para firmar la solicitud que se envía al IdP. Esto reduce la amenaza de un ataque de "hombre en el medio" dada la dificultad de falsificar una solicitud firmada. Además, Tableau Server comprueba la AuthNResponse que recibe del IdP de confianza. Tableau Server verifica la AuthNResponse usando la firma producida por el IdP. Los metadatos del certificado de IdP se proporcionan a Tableau Server como parte del proceso de configuración inicial de SAML.

    Las solicitudes firmadas no siempre son necesarias para todos los idPs. De forma predeterminada, Tableau Server requiere solicitudes firmadas. Recomendamos esta configuración para asegurar una transmisión de comunicación más segura con el IdP. Trabaje con su equipo de IdP para entender si es necesario deshabilitar las solicitudes firmadas. Para deshabilitar las solicitudes firmadas, consulte Entidad samlSettings.

  • Algoritmo de firma. El certificado debe utilizar un algoritmo de firma seguro, por ejemplo, SHA-256. Si intenta configurar Tableau Server para SAML con un certificado que usa hash de firma SHA-1, Tableau Server rechazará el certificado. Puede configurar Tableau Server para que acepte el hash SHA-1, menos seguro, configurando la clave de configuración del tsm wgserver.saml.blocklisted_digest_algorithms.

  • Tamaños de curva ECDSA y clave RSA. El certificado de Tableau Server debe tener una fuerza de clave RSA de 2048 y el certificado del IdP debe tener una fuerza de clave RSA de 2048 o un tamaño de curva ECDSA de 256.

    Puede configurar Tableau Server para que acepte los tamaños menos seguros configurando las claves de configuración respectivas, wgserver.saml.min_allowed.rsa_key_size ywgserver.saml.min_allowed.elliptic_curve_size.

  • Archivo de clave de certificado. Un archivo de clave privada RSA o DSA que tiene la extensión .key. Las claves RSA deben tener el formato PKCS#1 o PKCS#8.

    Los requisitos de protección por contraseña son los siguientes:

    • El archivo de clave PKCS#1 no puede estar protegidos por contraseña.
    • Para usar un archivo de clave protegido por contraseña, debe configurar SAML con un archivo RSA PKCS#8. Nota: No se admite el uso de un archivo PKCS#8 con una contraseña nula.

    • Los archivos de claves protegidos con contraseña no se admiten en implementaciones SAML específicas del sitio.

    Resumen de soporte

    Formato de archivo de clave Compatibilidad de SAML en todo el servidor Soporte SAML a nivel de sitio
    PKCS#8 RSA No
    PKCS#8 (sin contraseña o contraseña nula) No No
    PKCS#1 RSA
    PKCS#1 RSA (contraseña) No No
    PKCS#1 DSA (contraseña) No No
  • El IdP debe firmar las aserciones de SAML con un algoritmo de firma seguro. De forma predeterminada, Tableau Server rechaza las aserciones de SAML firmadas con el algoritmo SHA-1. Puede configurar Tableau Server para aceptar aserciones firmadas con el hash SHA-1, menos seguro, configurando la clave de configuración del tsm wgserver.saml.blocklisted_digest_algorithms.

  • Cuenta IdP compatible con SAML 2.0 o posterior. Necesita una cuenta con un proveedor de identidades externo. Algunos ejemplos son PingFederate, SiteMinder y OpenAM.

  • Proveedor de IdP que admite la importación y exportación de metadatos XML. Aunque un archivo de metadatos creado manualmente podría funcionar, el soporte técnico de Tableau no puede ayudarle a generar el archivo ni en la solución de problemas de este.

Descarga de SSL

Si su organización finaliza las conexiones SSL desde el IdP en un servidor proxy antes de enviar la solicitud de autenticación a Tableau Server, es posible que tenga que realizar una configuración de proxy. En esta situación, SSL se "descarga" en el servidor proxy, lo que significa que finaliza la solicitud https en el servidor proxy y luego se reenvía a Tableau Server mediante http.

Tableau Server valida el mensaje de respuesta SAML devuelto desde el IdP. Dado que SSL se descarga en el proxy, Tableau Server validará con el protocolo que recibe (http), pero la respuesta IdP se formatea con https, por lo que la validación fallará a menos que su servidor proxy tenga el encabezado X-Forwarded-Proto configurado en https. Consulte Configurar Tableau Server para que funcione con un servidor proxy inverso.

Utilizar archivos de certificado y clave SSL para SAML

Si usa un archivo de certificado x509 con codificación PEM para SSL, puede usar el mismo archivo para SAML. Para SSL, el archivo de certificado se usa para cifrar el tráfico. En cuanto a SAML, el certificado se usa para la autenticación.

Además de los requisitos indicados en la sección Requisitos de certificado y de proveedor de identidades (IdP) anterior, para usar el mismo certificado para SSL y SAML, el certificado debe cumplir también la siguiente condición para poder usarlo en SAML:

  • Confirme que el certificado incluye solo el certificado que se aplica a Tableau Server, y no otros certificados o claves.

    Para ello, puede crear una copia de seguridad del archivo de certificado y luego abrir la copia en un editor de texto para revisar su contenido.

Requisitos de administración de usuarios

Al habilitar SAML, la autenticación de usuario se lleva a cabo fuera de Tableau con el IdP. Sin embargo, la administración de usuarios se realiza mediante un almacén de identidades: un almacén de identidades externo (Active Directory o LDAP) o mediante Tableau Server en un almacén de identidades local. Para obtener más información sobre la planificación de la administración de usuarios con Tableau Server, consulte Almacén de identidades.

Al configurar el almacén de identidades durante la instalación, debe seleccionar la opción que refleje cómo desea utilizar SAML. Si quiere usar el SAML específico del sitio, deberá configurar SAML en todo el servidor para poder configurar sitios individuales.

  • Para SAML específico del sitio: Si cuenta con varios sitios en Tableau Server y desea configurar cada sitio para un IdP o una aplicación de IdP concretos (o para configurar algunos sitios para que no se utilice SAML), configure Tableau Server para administrar el usuario con un almacén de identidades local. En el caso de SAML específico de un sitio, Tableau Server confía en el IdP para la autenticación y no usa ninguna contraseña.

  • Para SAML en todo el servidor: Si configura SAML en todo el servidor con un único IdP, puede configurar Tableau Server para que utilice un almacén de identidades local o externo. Si usa Active Directory, debe deshabilitar la opción Habilitar inicio de sesión automático.

  • Autenticación SAML en todo el servidor y autenticación SAML en sitios específicos. En un entorno de múltiples sitios, todos los usuarios se autentican a través de un IdP de SAML configurado a nivel de sitio. En este escenario, usted especifica un IdP de SAML predeterminado a nivel de servidor para los usuarios que pertenecen a varios sitios. Para configurar este escenario, Tableau Server debe configurarse con un almacén de identidades locales.

Nota: La API de REST y tabcmd no admiten el inicio de sesión único (SSO) de SAML. Para iniciar sesión, debe especificar el nombre y la contraseña de un usuario que se haya creado en el servidor. Se puede usar un almacén de identidades local o externo para administrar al usuario, según la configuración de Tableau Server. Para Tableau Online, puede especificar las credenciales de TableauID del usuario. Las llamadas de la API de REST o tabcmd contarán con los permisos del usuario con el que inicie sesión.

Requisitos y notas de compatibilidad con SAML

  • Nombres de usuario coincidentes: el nombre de usuario almacenado en Tableau Server debe coincidir con el nombre de usuario enviado por el IdP en la afirmación de SAML. De forma predeterminada, Tableau Server espera que la afirmación entrante contenga un atributo llamado "username" con la información de ese usuario. Por ejemplo, si el nombre de usuario de Jane Smith está almacenado en PingFederate como jsmith, también debe estarlo en Tableau Server como jsmith.

    Configuración de SAML durante la autenticación

    Si va a configurar SAML como parte de la configuración inicial de Tableau Server, asegúrese de que la cuenta que tiene pensado usar exista en su IdP antes de ejecutar la configuración. Durante la configuración de Tableau Server va a crear la cuenta de administrador del servidor.

    Ejecutar varios dominios

    Si utiliza la autenticación de Active Directory o el almacén de identidades externo LDAP y dispone de varios dominios (es decir, los usuarios pertenecen a varios dominios o la instalación de Tableau Server incluye varios dominios), el IdP debe enviar los atributos del nombre de usuario (username) y el dominio del usuario (domain) en la afirmación de SAML. Tanto el nombre de usuario como los atributos de dominio deben coincidir exactamente con el nombre de usuario y el dominio almacenados en Tableau Server. Utilice el formato domain\username para el atributo de usuario y el nombre de dominio completo (FQDN) para el atributo de dominio. Si no se incluye el atributo de dominio, el dominio del equipo de Tableau Server, también conocido como el dominio predeterminado, se usará para todos los usuarios. Si los usuarios no están en el mismo dominio que el equipo de Tableau Server, la exclusión del atributo de dominio provocará errores de inicio de sesión.

    Para obtener más información, consulte Compatibilidad con varios dominios y la sección "Coincidir afirmaciones" en la pestaña Usar la CLI de TSM de Configurar SAML en todo el servidor.

  • Algoritmo de firma: Tableau Server utiliza el algoritmo de firma SHA256.

  • Cierre de sesión único (SLO): Tableau Server admite tanto SLO iniciado por el proveedor de servicios (SP) como SLO iniciado por el proveedor de identidades (IdP) para SAML en todo el servidor y SAML específico del sitio.

  • Tipos de autenticación externos: Tableau Server admite el uso de un tipo de autenticación externo a la vez.

  • SSL mutua: Tableau Server no admite la SSL mutua (SSL bidireccional) y SAML conjuntamente. Si desea utilizar la SSL mutua, puede configurarla en el IdP.

  • Codificación de aserciones: las aserciones deben estar codificadas en UTF-8.

  • Cifrado y aserciones de SAML: cuando se configura para el SAML de todo el servidor, Tableau Server admite aserciones cifradas desde el IdP. Las aserciones de cifrado las habilita el certificado que se carga como parte de la configuración inicial para el SAML de todo el servidor.

    Cuando se configura para el SAML específico del sitio, Tableau Server no admite aserciones cifradas del IdP. Sin embargo, todas las solicitudes y respuestas de SAML se envían a través de HTTPS.

  • Identidad de usuarios en Tableau Server para usuarios de tabcmd: como se describe en la anterior sección Requisitos de administración de usuarios, debe iniciar sesión con un usuario definido en el servidor para poder utilizar tabcmd. No se pueden utilizar cuentas de SAML con tabcmd.

  • Uso de SAML SSO con Desktop: de forma predeterminada, Tableau Desktop permite la autenticación de SAML iniciada por SP.

    Si su IdP no admite esta funcionalidad, puede deshabilitar el inicio de sesión SAML para Tableau Desktop usando el siguiente comando:

    tsm authentication saml configure --desktop-access disable

    Para obtener más información, consulte tsm authentication saml <comandos>.

  • Instalaciones distribuidas: Las versiones de TSM de Tableau Server (2018.2 y posteriores) utilizan el Servicio de archivos de cliente para compartir archivos en un clúster de varios nodos. Después de haber configurado SAML en el nodo inicial de su clúster, el Servicio de archivos de cliente distribuirá los archivos de certificados y claves a los demás nodos.

  • URL de inicio de sesión: para que los usuarios puedan iniciar sesión, el IdP debe estar configurado con un punto de extremo de inicio de sesión SAML que envíe una solicitud POST a la siguiente URL:

    https://<tableauserver>/wg/saml/SSO/index.html.

  • URL de cierre de sesión: para permitir que los usuarios cierren sesión después de haber iniciado sesión con SAML (cierre de sesión único o SLO), el IdP debe estar configurado con un punto de extremo de cierre de sesión SAML que envíe una solicitud POST a la siguiente dirección URL:

    https://<tableauserver>/wg/saml/SingleLogout/index.html.

    Nota: Tableau Server admite tanto SLO iniciado por el proveedor de servicios (SP) como SLO iniciado por el proveedor de identidades (IdP) para SAML en todo el servidor y SAML específico del sitio.

  • URL de redireccionamiento posterior al cierre de sesión: de forma predeterminada, cuando un usuario cierra la sesión de Tableau Server, aparece la página de inicio de sesión. 

    Para mostrar otra página después de cerrar la sesión, utilice el comando tsm authentication saml configure con la opción -su o --signout-url.

    • Para especificar una dirección URL absoluta, utilice una URL completamente calificada que empiece por http:// o https://, como en este ejemplo:

      tsm authentication saml configure -su https://example.com

    • Para especificar una URL relativa al host de Tableau Server, utilice una página que empiece por / (barra):

      tsm authentication saml configure -su /ourlogoutpage.html

  • Servicio de federación de Active Directory (AD FS): Debe configurar AD FS para que devuelva atributos adicionales para la autenticación en Tableau con SAML. Los atributos Name ID y username se pueden asignar al mismo atributo de AD: SAM-Account-Name.

    Para obtener información de configuración, consulte Configurar SAML con AD FS en Tableau Server.

  • AuthNContextClassRef: AuthNContextClassRef es un atributo SAML opcional que aplica la validación de ciertos "contextos" de autenticación en los flujos iniciados por el IdP. Puede establecer valores separados por comas para este atributo con TSM. Cuando se establece este atributo, Tableau Server valida que la respuesta SAML contiene al menos uno de los valores enumerados. Si la respuesta SAML no contiene uno de los valores configurados, se rechazará la autenticación, incluso si el usuario se ha autenticado correctamente con el IdP.

    Dejar este atributo opcional en blanco dará como resultado un comportamiento predeterminado: cualquier respuesta SAML autenticada correctamente dará como resultado que se conceda una sesión a un usuario dentro de Tableau Server.

    Este valor solo se evalúa para el SAML en todo el servidor. Si se configura SAML para todo el sitio, AuthNContextClassRef omitirá el atributo.

    Para establecer este valor con la interfaz web de TSM, consulte Configurar SAML en todo el servidor.

    Para establecer este valor con tsm configuration set, utilice la clave wgserver.saml.authcontexts para establecer una lista de valores separados por comas.

    Para establecer este valor con un archivo de configuración JSON, consulte Entidad samlSettings.

Usar SSO de SAML con las aplicaciones de cliente de Tableau

Los usuarios de Tableau Server que tengan credenciales SAML pueden iniciar sesión en el servidor desde Tableau Desktop o con la aplicación de Tableau Mobile. Para conseguir la máxima compatibilidad, se recomienda que la versión de la aplicación cliente de Tableau coincida con la del servidor. Para conectarse mediante SAML específico de un sitio, los usuarios deben ejecutar la versión 10.0 o posterior de la aplicación cliente de Tableau.

Si se conecta a Tableau Server desde Tableau Desktop o Tableau Mobile, se utiliza una conexión iniciada por el proveedor de servicios (SP).

Volver a redirigir los usuarios autenticados a los clientes de Tableau

Cuando un usuario inicia sesión en Tableau Server, Tableau Server envía una solicitud SAML (AuthnRequest) al IdP, que incluye el valor RelayState de la aplicación de Tableau. Si el usuario ha iniciado sesión en Tableau Server desde un cliente de Tableau como Tableau Desktop o Tableau Mobile, es importante que el valor RelayState se devuelva a Tableau dentro de la respuesta SAML del IdP.

Si el valor RelayState no se indica correctamente en esta situación, el usuario es redirigido a su página de inicio de Tableau Server en el navegador web en lugar de regresar a la aplicación en la que ha iniciado sesión.

Póngase en contacto con su proveedor de identidad y con su equipo interno de TI para confirmar que este valor se incluirá en la respuesta SAML del IdP y que se mantendrá en cualquier dispositivo de red (por ejemplo, un proxy o un equilibrador de carga) que resida entre el IdP y Tableau Server.

Requisitos de datos XML

Como parte de la configuración de SAML, se intercambian metadatos XML entre Tableau Server y el IdP. Estos metadatos XML se utilizan para comprobar la información de autenticación de un usuario cuando este inicia el proceso de inicio de sesión de Tableau Server.

Tableau Server y el IdP generan sus propios metadatos. Cada conjunto de metadatos debe contener la información descrita en la siguiente lista. Si falta información en cualquiera de estos conjuntos, se pueden producir errores al configurar SAML o cuando los usuarios intenten iniciar sesión.

  • HTTP POST: Tableau Server solo admite las solicitudes HTTP POST para las comunicaciones SAML. No se admite la redirección HTTP.

  • Con el atributo Binding establecido en HTTP-POST, los metadatos SAML que exportan Tableau Server y el IdP deben contener los siguientes elementos.

    • El elemento que especifica la URL a la que redirige el IdP tras haberse autenticado correctamente. Es necesario en los metadatos del Proveedor de servicios, no en los metadatos del Proveedor de identidad.

      <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://<tableau-server>/wg/saml/SSO/index.html index="0" isDefault="true"/>

      Para el SAML de sitio, el extremo Location es /samlservice/public/sp/metadata?alias=<site alias>.

    • El elemento del punto de extremo de cierre de sesión aparece en los metadatos del Tableau Server y especifica la URL que el IdP utilizará para el extremo de cierre de sesión de Tableau Server. Si este elemento no está en los metadatos de IdP, Tableau Server no puede negociar un extremo de cierre de sesión con el IdP y la función de cierre de sesión de SAML no estará disponible en Tableau Server:

      <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/slo"

      Nota: El SLO iniciado por un SP es compatible con SAML específico del sitio y de todo el servidor. Sin embargo, el SLO iniciado por un IdP no es compatible.

    • Verifique que el XML de metadatos del IdP incluye un elemento SingleSignOnService cuyo enlace esté establecido en HTTP-POST, como en el siguiente ejemplo:

      <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/SSO.saml2"/>

    • Este elemento debe aparecer en los metadatos de IdP y especifica la URL que Tableau Server utilizará para el extremo de cierre de sesión de IdP.

      <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://SERVER-NAME:9031/idp/slo"/>

  • Atributo llamado nombre de usuario: debe configurar el IdP para que indique una aserción que incluya el atributo username en el elemento saml:AttributeStatement. El tipo de atributo de la aserción debe ser xs:string (no se debe escribir xs:any).

    En el siguiente ejemplo se muestra cómo podría quedar.

    <saml:Assertion assertion-element-attributes>
      <saml:Issuer>issuer-information</saml:Issuer>
      <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
        ...
      </Signature>
      <saml:Subject>
        ...
      </saml:Subject>
      <saml:Conditions condition-attributes >
        ...
      </saml:Conditions>
      <saml:AuthnStatement authn-statement-attributes >
        ...
      </saml:AuthnStatement>
    
      <saml:AttributeStatement>
        <saml:Attribute Name="username" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic">
        <saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
              user-name
        </saml:AttributeValue>
        </saml:Attribute>
      </saml:AttributeStatement>
    </saml:Assertion>
    .

    De forma predeterminada, Tableau Server leerá el atributo username en el AuthNResponse devuelto desde el IdP. Sin embargo, algunos IdP pueden devolver un atributo diferente pensado para identificar al usuario.

    Para cambiar el atributo SAML que pasa el valor username, utilice el siguiente comando TSM:

    tsm authentication saml map-assertions --user-name <USER-NAME>.

    Consulte tsm authentication.

¡Gracias por sus comentarios!