Parte 5: Configuración del nivel web

El nivel web de la arquitectura de referencia debe incluir los siguientes componentes:

  • Un equilibrador de carga de aplicaciones orientado a la web que acepta solicitudes HTTPS de clientes de Tableau y se comunica con los servidores proxy inversos.
  • Proxy inverso: 
    • Recomendamos implementar la puerta de enlace independiente de Tableau Server.
    • Recomendamos un mínimo de dos servidores proxy para la redundancia y para manejar la carga de clientes.
    • Recibe tráfico HTTPS del equilibrador de carga.
    • Admite la sesión fija en el host de Tableau.
    • Configure el proxy para el equilibrio de carga por turnos para cada Tableau Server que ejecute el proceso de Gateway.
    • Maneja solicitudes de autenticación del IdP externo.
  • Proxy de reenvío: Tableau Server requiere acceso a Internet para las licencias y la funcionalidad de mapas. Debe configurar listas de admisión de proxys de reenvío para las URL de Tableau Service. Consulte Comunicación con Internet (Linux(El enlace se abre en una ventana nueva)).
  • Todo el tráfico relacionado con el cliente se puede cifrar a través de HTTPS:
    • Equilibrador de carga de cliente a aplicación
    • Equilibrador de carga de aplicaciones para servidores proxy inversos
    • Servidor proxy para Tableau Server
    • Controlador de autenticación que se ejecuta en proxy inverso al IdP
    • Tableau Server a IdP

Puerta de enlace independiente de Tableau Server

La versión 2022.1 de Tableau Server incluyó la puerta de enlace independiente de Tableau Server. La puerta de enlace independiente es una instancia independiente del proceso de puerta de enlace de Tableau que funciona como un proxy inverso compatible con Tableau.

La puerta de enlace independiente admite el equilibrio de carga de operación por turnos simple para los servidores back-end de Tableau. Sin embargo, la puerta de enlace independiente no está diseñada para servir como equilibrador de carga de aplicaciones empresariales. Recomendamos ejecutar la puerta de enlace independiente detrás de un equilibrador de carga de aplicaciones de clase empresarial.

La puerta de enlace independiente requiere una licencia de Advanced Management.

Autenticación y autorización

La arquitectura de referencia predeterminada especifica la instalación de Tableau Server con la autenticación local configurada. En este modelo, los clientes deben conectarse a Tableau Server para ser autenticados por el proceso de autenticación local nativo de Tableau Server. No recomendamos usar este método de autenticación en la arquitectura de referencia porque el escenario requiere que los clientes no autenticados se comuniquen con el nivel de la aplicación, lo cual es un riesgo de seguridad.

En su lugar, recomendamos configurar un proveedor de identidades externo de nivel empresarial junto con un módulo de AuthN para autenticar previamente todo el tráfico al nivel de la aplicación. Cuando se configura con un IdP externo, no se utiliza el proceso de autenticación local nativo de Tableau Server. Tableau Server autoriza el acceso a los recursos en la implementación después de que el IdP haya autenticado a los usuarios.

Autenticación previa con un módulo de AuthN

En el ejemplo documentado en esta guía, el SSO de SAML está configurado, pero el proceso de autenticación previa se puede configurar con la mayoría de los proveedores de identidades externos y un módulo de AuthN.

En la arquitectura de referencia, el proxy inverso está configurado para crear una sesión de autenticación de cliente con el IdP antes de enviar esas solicitudes a Tableau Server. Nos referimos a este proceso como la fase de preautorización. El proxy inverso solo redirigirá las sesiones de los clientes autenticados a Tableau Server. Luego, Tableau Server creará una sesión, verificará la autenticación de la sesión con el IdP y luego devolverá la solicitud del cliente.

El siguiente diagrama muestra en detalle y paso a paso el proceso de autenticación y autorización previa con un módulo de AuthN configurado. El proxy inverso puede ser una solución genérica de terceros o la puerta de enlace independiente de Tableau Server:

Los pasos que se muestran en el diagrama anterior. Paso 1: el cliente de Tableau solicita un recurso en Tableau Server. Paso 2: el proxy inverso crea una solicitud de autenticación con una redirección de URL al proveedor de identidad. Paso 3: el proveedor de identidad envía un formulario de inicio de sesión al usuario. Paso 4: se solicita al usuario y especifica las credenciales. Paso 5: el proveedor de identidad verifica las credenciales enviadas por el usuario. Paso 6: el proveedor de identidad responde al cliente con la afirmación SAML integrada que se envía al proveedor de servicios de proxy inverso. Paso 7: el proveedor de servicios en el proxy valida la afirmación, crea una sesión y luego redirige al proveedor de servicios en Tableau Server. Paso 8: el proveedor de servicios en Tableau Server crea la solicitud de autenticación para el proveedor de identidad. Paso 9: el proveedor de identidad valida la sesión actual. Paso 10: el proveedor de servicios en Tableau Server valida y crea su propia sesión y envía la respuesta al usuario. Paso 11: el usuario se conecta a Tableau Server para obtener autorización para el recurso especificado.

Descripción general de la configuración

Esta es una descripción general del proceso para configurar el nivel web. Verifique la conectividad después de cada paso:

  1. Configure dos proxies inversos para proporcionar acceso HTTP a Tableau Server.
  2. Configure la lógica de equilibrio de carga con sesiones fijas en servidores proxy para conectarse a cada instancia de Tableau Server que ejecuta el proceso de la puerta de enlace.
  3. Configure el equilibrio de carga de la aplicación con sesiones pegajosas en la puerta de enlace de Internet para reenviar solicitudes a los servidores proxy inversos.
  4. Configure la autenticación con un IdP externo. Puede configurar SSO o SAML instalando un controlador de autenticación en los servidores proxy inversos. El módulo de AuthN administra el protocolo de enlace de autenticación entre el IdP externo y su implementación de Tableau. Tableau también actuará como proveedor de servicios de IdP y autenticará a los usuarios con el IdP.
  5. Para autenticarse con Tableau Desktop en esta implementación, sus clientes deben ejecutar Tableau Desktop 2021.2.1 o posterior.

Ejemplo de configuración de nivel web con la puerta de enlace independiente de Tableau Server

El resto de este tema proporciona un procedimiento de un extremo a otro que describe cómo implementar el nivel web en el ejemplo de la arquitectura de referencia de AWS usando la puerta de enlace independiente de Tableau Server. Para ver una configuración de ejemplo con Apache como proxy inverso, consulte el Apéndice: nivel web con implementación de ejemplo de Apache .

La configuración de ejemplo tiene los siguientes componentes:

  • Equilibrador de carga de aplicaciones de AWS
  • Puerta de enlace independiente de Tableau Server
  • Módulo de autenticación Mellon
  • IdP de Okta
  • Autenticación SAML

Nota: El ejemplo de configuración de nivel web que se presenta en esta sección incluye procedimientos detallados para implementar software y servicios de terceros. Hemos hecho todo lo posible por verificar y documentar los procedimientos para habilitar el escenario del nivel web. Sin embargo, el software de terceros puede cambiar o su escenario puede diferir de la arquitectura de referencia que se describe aquí. Consulte la documentación de terceros para obtener detalles de configuración autorizados y asistencia.

Los ejemplos de Linux a lo largo de esta sección muestran comandos para distribuciones similares a RHEL. Específicamente, los comandos aquí se han desarrollado con la distribución de Amazon Linux 2. Si está ejecutando distribuciones de Ubuntu, edite los comandos según corresponda.

La implementación del nivel web en este ejemplo sigue un procedimiento de verificación y configuración paso a paso. La configuración del nivel web principal consta de los siguientes pasos para habilitar HTTP entre Tableau e Internet. La puerta de enlace independiente se ejecuta y configura para proxy inverso/equilibrio de carga detrás del equilibrador de carga de la aplicación AWS:

  1. Preparar el entorno
  2. Instalar la puerta de enlace independiente
  3. Configurar el servidor de la puerta de enlace independiente
  4. Configurar el equilibrador de carga de aplicaciones de AWS

Una vez que se configura el nivel web y se verifica la conectividad con Tableau, debe configurar la autenticación con un proveedor externo.

Preparar entorno

Complete las siguientes tareas antes de implementar la puerta de enlace independiente.

  1. Cambios en el grupo de seguridad de AWS. Configure el grupo de seguridad pública para permitir el tráfico interno de entrada de la puerta de enlace independiente (TCP 21319) desde el grupo de seguridad privada.

  2. Instale la versión 22.1.1 (o posterior) en un clúster de Tableau Server de cuatro nodos como se documenta en la Paso 4: Instalar y configurar Tableau Server.

  3. Configure las dos instancias EC2 de proxy en el grupo de seguridad Público como se documenta en Configurar equipos host.

Instalar la puerta de enlace independiente

La puerta de enlace independiente de Tableau Server requiere una licencia de Advanced Management.

La implementación de la puerta de enlace independiente de Tableau Server consiste en instalar y ejecutar el paquete .rpm y luego configurar el estado inicial. El procedimiento incluido en esta guía proporciona orientación prescriptiva para la implementación en la arquitectura de referencia.

Si su implementación difiere de la arquitectura de referencia, consulte la documentación principal de Tableau Server, Instalar Tableau Server con la puerta de enlace independiente (Linux(El enlace se abre en una ventana nueva)).

Importante: La configuración de la puerta de enlace independiente puede ser un proceso propenso a errores. Es muy difícil solucionar problemas de configuración en dos instancias de servidores de puerta de enlace independientes. Por este motivo, recomendamos configurar un servidor de puerta de enlace independiente a la vez. Después de configurar el primer servidor y verificar la funcionalidad, debe configurar el segundo servidor de puerta de enlace independiente.

Aunque configurará cada servidor de puerta de enlace independiente por separado, ejecute este procedimiento de instalación en ambas instancias EC2 que instaló en el grupo de seguridad público: 

  1. Ejecute la actualización para aplicar las últimas correcciones al sistema operativo Linux:

    sudo yum update

  2. Si Apache está instalado, elimínelo:

     sudo yum remove httpd
  3. Copie el paquete de instalación de la puerta de enlace independiente versión 2022.1.1 (o posterior) de la página de descargas de Tableau(El enlace se abre en una ventana nueva) en el equipo host que ejecutará Tableau Server.

    Por ejemplo, en un equipo con el sistema operativo tipo RHEL de Linux, ejecute:

    wget https://downloads.tableau.com/esdalt/2022<version>/tableau-server-tsig-<version>.x86_64.rpm

  4. Ejecute el programa de instalación. Por ejemplo, en un sistema operativo tipo RHEL de Linux, ejecute:

    sudo yum install <tableau-tsig-version>.x86_64.rpm

  5. Cambie al directorio /opt/tableau/tableau_tsig/packages/scripts.<version_code>/ y ejecute el script initialize-tsig que aparece allí: Además de la marca --accepteula, debe incluir el rango de IP de las subredes donde se ejecuta la implementación de Tableau Server. Utilice la opción -c para especificar el rango de IP. El siguiente ejemplo muestra el comando con las subredes de AWS de ejemplo especificadas:

    sudo ./initialize-tsig --accepteula -c "ip 10.0.30.0/24 10.0.31.0/24"

  6. Una vez finalizada la inicialización, abra el archivo tsighk-auth.conf y copie el secreto de autenticación en el archivo. Deberá enviar este código para cada instancia de puerta de enlace independiente como parte de la configuración de Tableau Server de back-end:

    sudo less /var/opt/tableau/tableau_tsig/config/tsighk-auth.conf

  7. Después de ejecutar los pasos anteriores en ambas instancias de Independent Gateway, prepare el archivo de configuración tsig.json. El archivo de configuración consta de una matriz "independentGateways". La matriz contiene objetos de configuración que definen detalles de conexión para una instancia de puerta de enlace independiente.

    Copie el siguiente JSON y personalícelo según su entorno de implementación. El ejemplo aquí muestra un archivo para una arquitectura de referencia de AWS de muestra.

    El archivo JSON de ejemplo a continuación solo incluye información de conexión para una puerta de enlace independiente. Más adelante en el proceso, incluirá la información de conexión para el segundo servidor de puerta de enlace independiente.

    Guardar el archivo como tsig.json para los trámites que siguen.

    {
    "independentGateways": [
     {
     	"id": "ip-10-0-1-169.ec2.internal",
     	"host": "ip-10-0-1-169.ec2.internal",
     	"port": "21319",
     	"protocol" : "http",
     	"authsecret": "13660-27118-29070-25482-9518-22453"
     	}]
     }

    • "id": el nombre de DNS privado de la instancia AWS EC2 que ejecuta Independent Gateway.
    • "host": igual que "id".
    • "port": El puerto de limpieza, por defecto, "21319".
    • "protocol": el protocolo para el tráfico de clientes. Deje esto como http para la configuración inicial.
    • "authsecret": el secreto que copió en el paso anterior.

Puerta de enlace independiente: conexión directa vs. retransmisión

Antes de continuar, debe decidir qué esquema de conexión configurar en su implementación: conexión directa o de retransmisión. Cada opción se describe brevemente aquí, junto con los puntos de datos de decisión relevantes.

Conexión de retransmisión: Puede configurar la puerta de enlace independiente para retransmitir la comunicación del cliente a través de un solo puerto al proceso de la puerta de enlace en Tableau Server. Nos referimos a esta comunicación como conexión de retransmisión:

  • El proceso de retransmisión genera un salto adicional desde la puerta de enlace independiente hasta el proceso de puerta de enlace de Tableau Server de back-end. El salto adicional degrada el rendimiento en comparación con la configuración de conexión directa.
  • TLS es compatible con el modo de retransmisión. Toda la comunicación en modo de retransmisión está restringida a un solo protocolo (HTTP o HTTPS) y, por lo tanto, puede cifrarse y autenticarse con TLS.

Conexión directa: La puerta de enlace independiente puede comunicarse directamente con los procesos backend de Tableau Server a través de varios puertos. Nos referimos a esta comunicación como conexión directa:

  • Debido a que la conexión es directa al back-end de Tableau Server, el rendimiento del cliente mejora notablemente en comparación con la opción de conexión de retransmisión.
  • Requiere abrir más de 16 puertos de subredes públicas a privadas para la comunicación de procesos directos desde la puerta de enlace independiente a equipos de Tableau Server.
  • TLS aún no es compatible con los procesos de la puerta de enlace independiente a Tableau Server.

Para ejecutar TLS entre Tableau Server y la puerta de enlace independiente, debe configurar con una conexión de retransmisión. Los escenarios de ejemplo en el EDG están configurados con conexión de relé.

  1. Copie tsig.json al nodo 1 de su implementación de Tableau Server.

  2. En el nodo 1, ejecute los siguientes comandos para habilitar la puerta de enlace independiente.

    tsm stop
    tsm configuration set -k gateway.tsig.proxy_tls_optional -v none
    tsm pending-changes apply
    tsm topology external-services gateway enable -c tsig.json
    tsm start

Dado que la conexión directa no es compatible con TLS, recomendamos configurar la conexión directa solo si puede asegurar todo el tráfico de la red por otros medios. Para ejecutar TLS entre Tableau Server y la puerta de enlace independiente, debe configurar con una conexión de retransmisión. Los escenarios de ejemplo en el EDG están configurados con conexión de relé.

Si está configurando una puerta de enlace independiente para la conexión directa a Tableau Server, debe habilitar la configuración para activar la comunicación. Después de que Tableau Server se comunique con la puerta de enlace independiente, se establecerán los objetivos del protocolo. A continuación, debe recuperar el proxy_targets.csv desde el equipo de la puerta de enlace independiente y abrir los puertos correspondientes de los grupos de seguridad públicos a privados en AWS.

  1. Copie tsig.json al nodo 1 de su implementación de Tableau Server.

  2. En el nodo 1, ejecute los siguientes comandos para habilitar la puerta de enlace independiente.

    tsm stop
    tsm topology external-services gateway enable -c tsig.json
    tsm start
  3. En el equipo de la puerta de enlace independiente, ejecute el siguiente comando para ver los puertos que usa el clúster de Tableau Server:

    less /var/opt/tableau/tableau_tsig/config/httpd/proxy_targets.csv
  4. Configurar grupos de seguridad de AWS. Agregue los puertos TCP enumerados en proxy_targets.csv para permitir la comunicación del grupo de seguridad pública al grupo de seguridad privada.

    Recomendamos automatizar la configuración de entrada de puertos, ya que los puertos pueden cambiar si cambia la implementación de Tableau Server. Añadir nodos o reconfigurar procesos en la implementación de Tableau Server activará cambios en el acceso al puerto requerido por la puerta de enlace independiente.

Verificación: configuración de topología base

Debería poder acceder a la página de administración de Tableau Server desde http://<gateway-public-IP-address>.

Si la página de inicio de sesión de Tableau Server no se carga o si Tableau Server no se inicia, siga estos pasos de solución de problemas:

Red: 

  • Verifique la conectividad entre la implementación de Tableau y la instancia de puerta de enlace independiente ejecutando el siguiente comando wget del nodo 1 de Tableau Server: wget http://<dirección IP interna de la puerta de enlace independiente>:21319, por ejemplo:

     wget http://ip-10-0-1-38:21319

    Si la conexión se rechaza o falla, verifique que el grupo de seguridad pública esté configurado para permitir el tráfico de limpieza de puerta de enlace independiente (TCP 21319) desde el grupo de seguridad privada.

    Si el grupo de seguridad está configurado correctamente, verifique que haya especificado las direcciones IP o los rangos de IP correctos durante la inicialización de la puerta de enlace independiente. Puede ver y cambiar esta configuración en el archivo environment.bash ubicado en/etc/opt/tableau/tableau_tsig/environment.bash. Si realiza un cambio en este archivo, reinicie el servicio tsig-http como se describe a continuación.

En el host del Proxy 1:

  1. Sobrescriba el archivo httpd.conf con el archivo auxiliar de la puerta de enlace independiente:

    cp /var/opt/tableau/tableau_tsig/config/httpd.conf.stub /var/opt/tableau/tableau_tsig/config/httpd.conf
  2. Reinicie tsig-httpd como primer paso de solución de problemas:
    sudo su - tableau-tsig
    systemctl --user restart tsig-httpd
    exit

En el nodo 1 de Tableau

  • Compruebe el archivo tsig.json. Si encuentra errores, corríjalos y luego ejecute tsm topology external-services gateway update -c tsig.json.
  • Si ejecuta una conexión directa, verifique que los puertos TCP enumerados en proxy_targets.csv se configuran como puertos de entrada de grupos de seguridad públicos a privados.

Configurar el equilibrador de carga de aplicaciones de AWS

Configure el equilibrador de carga como una escucha HTTP. Este procedimiento describe cómo agregar un equilibrador de carga en AWS.

Paso 1: crear un grupo de destino

Un grupo de destino es una configuración de AWS que define las instancias EC2 que ejecutan sus servidores proxy. Estos son los destinos del tráfico de LBS.

  1. EC2>Grupos de destino > Crear grupo de destino

  2. En la página Crear:

    • Escriba un nombre de grupo de destino, TG-internal-HTTP por ejemplo
    • Tipo de destino: instancias
    • Protocolo: HTTP
    • Puerto: 80
    • VPC: seleccione su VPC
    • En Comprobaciones de estado > Configuración de comprobaciones de estado avanzadas > Códigos de éxito, agregue la lista de códigos para leer: 200,303.
    • Haga clic en Crear
  3. Seleccione el grupo de destino que acaba de crear y luego haga clic en la pestaña Destinos

    • Haga clic en Editar.
    • Seleccione las instancias EC2 (o instancia única si está configurando una a la vez) que ejecutan la aplicación de proxy y luego haga clic en Agregar a registrado.
    • Haga clic en Guardar.

Paso 2: iniciar el asistente del equilibrador de carga

  1. EC2> Equilibradores de carga > Crear equilibrador de carga

  2. En la página "Seleccionar tipo de equilibrador de carga", cree un equilibrador de carga de aplicaciones.

Nota: La interfaz de usuario que se muestra para configurar el equilibrador de carga no es coherente en los centros de datos de AWS. El procedimiento siguiente, "Configuración del asistente", se asigna al asistente de configuración de AWS que comienza con el Paso 1: configurar el equilibrador de carga

Si su centro de datos muestra todas las configuraciones en una sola página que incluye un botón Crear equilibrador de carga en la parte inferior de la página, siga el procedimiento de "Configuración de una sola página" a continuación.

  1. Página configurar equilibrador de carga:

    • Especifique el nombre
    • Esquema: orientado a Internet (predeterminado)
    • Tipo de dirección IP: ipv4 (predeterminado)
    • Oyentes (oyentes y enrutamiento):
      1. Deje el oyente HTTP predeterminado
      2. Haga clic en Agregar oyente y agregue HTTPS:443
    • VPC: seleccione la VPC donde instaló todo
    • Zonas de disponibilidad:
      • Seleccione a y b para las regiones de su centro de datos
      • En cada selector del menú desplegable correspondiente, seleccione la subred pública (donde residen sus servidores proxy).
    • Haga clic en Establecer configuración de seguridad
  2. Página Configurar ajustes de seguridad

    • Suba su certificado SSL público.
    • Haga clic en Siguiente: Configurar grupos de seguridad.
  3. Página Configurar grupos de seguridad:

    • Seleccione el grupo de seguridad público. Si se selecciona el grupo de seguridad predeterminado, borre esa selección.
    • Haga clic en Siguiente: Configurar el enrutamiento.
  4. Página Configurar enrutamiento

    • Grupo de destino: Grupo de destino existente.
    • Nombre: seleccione el grupo de destino que creó anteriormente
    • Haga clic en Siguiente: Registrar destinos.
  5. Página Registrar destinos

    • Deben mostrarse las dos instancias de servidor proxy que configuró anteriormente.
    • Haga clic en Siguiente: Revisión.
  6. Página Revisión

    Haga clic en Crear.

Configuración básica

  • Especifique el nombre
  • Esquema: orientado a Internet (predeterminado)
  • Tipo de dirección IP: ipv4 (predeterminado)

Mapeo de redes

  • VPC: seleccione la VPC donde instaló todo
  • Mapeo:
    • Seleccione las zonas de disponibilidad a y b (o comparables) para sus regiones de centros de datos
    • En cada selector del menú desplegable correspondiente, seleccione la subred pública (donde residen sus servidores proxy).

Grupos de seguridad

  • Seleccione el grupo de seguridad público. Si se selecciona el grupo de seguridad predeterminado, borre esa selección.
  • Oyentes y enrutamiento

    • Deje el oyente HTTP predeterminado. Para la acción predeterminada, especifique el grupo de destino que configuró anteriormente.
    • Haga clic en Agregar oyente y agregue HTTPS:443 . Para la acción predeterminada, especifique el grupo de destino que configuró anteriormente.

    Configuración de oyente seguro

    • Suba su certificado SSL público.

    Haga clic en Crear el equilibrador de carga.

    Paso 3: habilitar la adherencia

    1. Una vez creado el equilibrador de carga, debe habilitar la adherencia en el grupo de destino.

      • Abra la página del grupo de destino de AWS (EC2> Equilibradores de carga > Grupos de destino), seleccione la instancia del grupo de destino que acaba de configurar. En el menú Acciones, seleccione Editar atributos.
      • En la página Editar atributos, seleccione Adherencia, especifique una duración de 1 day y luego Guardar cambios.
    2. En el equilibrador de carga, habilite la adherencia en el oyente HTTP. Seleccione el equilibrador de carga que acaba de configurar y luego haga clic en la pestaña Oyentes:

      • Para HTTP:80, haga clic en Ver/editar reglas. En la página Reglas resultante, haga clic en el icono de edición (una vez en la parte superior de la página y luego nuevamente por la regla) para editar la regla. Elimine la regla THEN existente y reemplácela haciendo clic en Agregar acción > Reenviar a... En la configuración THEN resultante, especifique el mismo grupo de destino que ha creado. En Adherencia a nivel de grupo, habilite la adherencia y establezca la duración en 1 día. Guarde la configuración y haga clic en Actualizar.

    Paso 4: Establezca el tiempo de espera inactivo en el equilibrador de carga

    En el equilibrador de carga, actualice el tiempo de espera inactivo a 400 segundos.

    Seleccione el equilibrador de carga que ha configurado para esta implementación y luego haga clic en Acciones > Editar atributos. Establezca el tiempo de espera inactivo en400 segundos y luego haga clic en Guardar.

    Paso 5: Verificar la conectividad LBS

    Abra la página del equilibrador de carga de AWS (EC2 > Equilibradores de carga), seleccione la instancia del equilibrador de carga que acaba de configurar.

    En Descripción, copie el nombre del DNS y péguelo en un navegador para acceder a la página de inicio de sesión de Tableau Server.

    Si aparece el error 500, probablemente necesite reiniciar sus servidores proxy.

    Actualizar DNS con URL pública de Tableau

    Utilice el nombre de la zona DNS de su dominio de la descripción del equilibrador de carga de AWS para crear un valor CNAME en su DNS. El tráfico a su URL (tableau.example.com) debe enviarse al nombre de DNS público de AWS.

    Verificar la conectividad

    Una vez finalizadas las actualizaciones de DNS, debería poder navegar a la página de inicio de sesión de Tableau Server con su URL pública, por ejemplo, https://tableau.example.com.

    Ejemplo de configuración de autenticación: SAML con IdP externo

    El siguiente ejemplo describe cómo instalar y configurar SAML con Okta IdP y el módulo de autenticación Mellon para una implementación de Tableau que se ejecuta en la arquitectura de referencia de AWS.

    Este ejemplo se basa en la sección anterior y supone que está configurando una puerta de enlace independiente a la vez.

    El ejemplo describe cómo configurar Tableau Server y la puerta de enlace independiente para usar HTTP. Okta enviará la solicitud al equilibrador de carga de AWS a través de HTTPS, pero todo el tráfico interno viajará a través de HTTP. Mientras configura para este escenario, tenga en cuenta los protocolos HTTP y HTTPS al configurar cadenas de URL.

    Este ejemplo utiliza Mellon como un módulo de proveedor de servicios de autenticación previa en los servidores de la puerta de enlace independiente. Esta configuración garantiza que solo el tráfico autenticado se conecte a Tableau Server, que también actúa como proveedor de servicios con Okta IdP. Por lo tanto, debe configurar dos aplicaciones IdP: una para el proveedor de servicios Mellon y otra para el proveedor de servicios Tableau.

    Crear la cuenta de administrador de Tableau

    Un error común al configurar SAML es olvidarse de crear una cuenta de administrador en Tableau Server antes de habilitar SSO.

    El primer paso es crear una cuenta en Tableau Server con un rol de administrador del servidor. En el caso de ejemplo de Okta, el nombre de usuario debe tener el formato de una dirección de correo electrónico válida, por ejemplo, usuario@ejemplo.com. Debe establecer una contraseña para este usuario, pero la contraseña no se utilizará después de configurar SAML.

    Configurar la aplicación de autorización previa de Okta

    El escenario de un extremo a otro descrito en esta sección requiere dos aplicaciones Okta:

    • Solicitud de autorización previa de Okta
    • Aplicación Okta de Tableau Server

    Cada una de estas aplicaciones está asociada con diferentes metadatos que deberá configurar en el proxy inverso y Tableau Server, respectivamente.

    Este procedimiento describe cómo crear y configurar la aplicación de autorización previa de Okta. Más adelante en este tema, creará la aplicación Okta de Tableau Server. Para obtener una cuenta de Okta de prueba gratuita con usuarios limitados, consulte la página web de desarrolladores de Okta(El enlace se abre en una ventana nueva).

    Cree una integración de la aplicación SAML para el proveedor de servicios de autenticación previa de Mellon.

    1. Abra el panel de administración de Okta > Aplicaciones > Crear integración de aplicaciones.

    2. En la página Crear una nueva integración de aplicaciones, seleccione SAML 2.0 y luego haga clic en Siguiente.

    3. En la pestaña Configuración general, escriba un nombre de aplicación, como Tableau Pre-Auth y haga clic en Siguiente.

    4. En la pestaña Configurar SAML:

      • URL de inicio de sesión único (SSO). El elemento final de la ruta en la URL de inicio de sesión único se denomina MellonEndpointPath en el archivo de configuración mellon.conf que aparece más adelante en este procedimiento. Puede especificar cualquier punto final que desee. En este ejemplo, sso es el punto final. El último elemento, postResponse, es obligatorio:https://tableau.example.com/sso/postResponse .
      • Desmarque la casilla de verificación: Usar esto para la URL del destinatario y la URL de destino.
      • URL del destinatario: igual que la URL de SSO, pero con HTTP. Por ejemplo, http://tableau.example.com/sso/postResponse.
      • URL de destino: igual que la URL del SSO, pero con HTTP. Por ejemplo, http://tableau.example.com/sso/postResponse.
      • URI de audiencia (ID de entidad SP). Por ejemplo, https://tableau.example.com.
      • Formato del ID de nombre: EmailAddress
      • Nombre de usuario de la aplicación: Email
      • Declaraciones de atributos: Nombre = mail; Formato de nombre = Unspecified; Valor = user.email.

      Haga clic en Siguiente.

    5. En la pestaña Comentarios, seleccione:

      • Soy un cliente de Okta que agrega una aplicación interna
      • Esta es una aplicación interna que hemos creado
      • Haga clic en Finalizar.
    6. Cree el archivo de metadatos de IdP previo a la autenticación:

      • En Okta: Aplicaciones > Aplicaciones > Su nueva aplicación (p. ej., Tableau Pre-Auth)> Iniciar sesión
      • Junto a Certificados de firma de SAML, haga clic en Ver instrucciones de configuración de SAML.
      • En la página Cómo configurar SAML 2.0 para la aplicación <pre-auth>, desplácese hacia abajo hasta la sección Opcional, Proporcionar los siguientes metadatos de IDP a su proveedor de SP .
      • Copie el contenido del campo XML y guárdelo en un archivo llamado pre-auth_idp_metadata.xml.
    7. (Opcional) Configure la autenticación multifactor:

      • En Okta: Aplicaciones > Aplicaciones > Su nueva aplicación (p. ej., Tableau Pre-Auth)> Iniciar sesión
      • En Directiva de inicio de sesión, haga clic en Agregar regla.
      • En la regla de inicio de sesión de la aplicación, especifique un nombre y las diferentes opciones de MFA. Para probar la funcionalidad, puede dejar todas las opciones predeterminadas. Sin embargo, en Acciones, debe seleccionar Solicitar factor y luego especificar la frecuencia con la que los usuarios deben iniciar sesión. Haga clic en Guardar.

    Crear y asignar un usuario de Okta

    1. En Okta, cree un usuario con el mismo nombre de usuario que creó en Tableau (usuario@ejemplo.com): Directorio > Personas > Agregar persona.
    2. Una vez creado el usuario, asigne la nueva aplicación Okta a esa persona: haga clic en el nombre de usuario y luego asigne la aplicación en Asignar aplicación.

    Instalar Mellon para preautorización

    Este ejemplo usa mod_auth_mellon, un popular módulo de código abierto. Algunas distribuciones de Linux empaquetan versiones obsoletas de mod_auth_mellon de un repositorio anterior. Esas versiones obsoletas pueden contener vulnerabilidades de seguridad desconocidas o problemas funcionales. Si elige usar mod_auth_mellon, verifique que esté usando una versión actual.

    El módulo mod_auth_mellon es un software de terceros. Hemos hecho todo lo posible por verificar y documentar los procedimientos para habilitar este caso. Sin embargo, el software de terceros puede cambiar o su escenario puede diferir de la arquitectura de referencia que se describe aquí. Consulte la documentación de terceros para obtener detalles de configuración autorizados y asistencia.

    1. En la instancia activa de EC2 que ejecuta la puerta de enlace independiente, instale una versión actual del módulo de autenticación Mellon.

    2. Cree el directorio /etc/mellon:

      sudo mkdir /etc/mellon

    Configurar Mellon como módulo de preautorización

    Ejecute este procedimiento en la primera instancia de la puerta de enlace independiente.

    Debe tener una copia de pre-auth_idp_metadata.xml que creó a partir de la configuración de Okta.

    1. Cambie el directorio:

      cd /etc/mellon

    2. Cree los metadatos del proveedor de servicios. Ejecute el script mellon_create_metadata.sh. Debe incluir el ID de entidad y la URL de retorno de su organización en el comando.

      La URL de retorno se denomina URL de inicio de sesión único en Okta. El elemento final de la ruta en la URL de retorno se denomina MellonEndpointPath en el archivo de configuración mellon.conf que aparece más adelante en este procedimiento. En este ejemplo, especificamos sso como la ruta del punto final.

      Por ejemplo:

      sudo /usr/libexec/mod_auth_mellon/mellon_create_metadata.sh https://tableau.example.com "https://tableau.example.com/sso"

      El script devuelve el certificado del proveedor de servicios, la clave y los archivos de metadatos.

    3. Cambie el nombre de los archivos del proveedor de servicios en el directorio mellon para facilitar la lectura. Nos referiremos a estos archivos por los siguientes nombres en la documentación:

      sudo mv *.key mellon.key
      sudo mv *.cert mellon.cert
      sudo mv *.xml sp_metadata.xml

    4. Copie el archivo pre-auth_idp_metadata.xml en el mismo directorio.

    5. Cambiar la propiedad y los permisos de todos los archivos en el directorio /etc/mellon:

      sudo chown tableau-tsig mellon.key
      sudo chown tableau-tsig mellon.cert
      sudo chown tableau-tsig sp_metadata.xml
      sudo chown tableau-tsig pre-auth_idp_metadata.xml 
      sudo chmod +r * mellon.key
      sudo chmod +r * mellon.cert
      sudo chmod +r * sp_metadata.xml
      sudo chmod +r * pre-auth_idp_metadata.xml 

    6. Cree el directorio /etc/mellon/conf.d:

      sudo mkdir /etc/mellon/conf.d
    7. Cree el archivo global.conf en el directorio /etc/mellon/conf.d.

      Copie el contenido del archivo como se muestra a continuación, pero actualice MellonCookieDomain con su nombre de dominio raíz. Por ejemplo, si el nombre de dominio de Tableau es tableau.example.com, introduzca example.com para el dominio raíz.

      <Location "/">
      AuthType Mellon
      MellonEnable auth
      Require valid-user
      MellonCookieDomain <root domain>
      MellonSPPrivateKeyFile /etc/mellon/mellon.key
      MellonSPCertFile /etc/mellon/mellon.cert
      MellonSPMetadataFile /etc/mellon/sp_metadata.xml
      MellonIdPMetadataFile /etc/mellon/pre-auth_idp_metadata.xml
      MellonEndpointPath /sso
      </Location>
      
      <Location "/tsighk">
      MellonEnable Off
      </Location>
    8. Cree el archivo mellonmod.conf en el directorio /etc/mellon/conf.d.

      Este archivo contiene una única directiva que especifica la ubicación del expediente mod_auth_mellon.so. La ubicación en el ejemplo aquí es la ubicación predeterminada del archivo. Verifique que el archivo esté en esta ubicación o cambie la ruta en esta directiva para que coincida con la ubicación real de mod_auth_mellon.so:

      LoadModule auth_mellon_module /usr/lib64/httpd/modules/mod_auth_mellon.so

    Crear la aplicación de Tableau Server en Okta

    1. En el panel de Okta: Aplicaciones > Aplicaciones > Examinar catálogo de aplicaciones
    2. En Examinar catálogo de integración de aplicaciones, busque Tableau, seleccione la miniatura de Tableau Server y luego haga clic en Agregar.
    3. En Agregar Tableau Server > Configuración general, especifique una Etiqueta y luego haga clic en Siguiente.
    4. En Opciones de inicio de sesión, seleccione SAML 2.0 y,después, desplácese hacia abajo hasta Configuración avanzada de inicio de sesión:
      • ID de entidad SAML: especifique la URL pública, por ejemplo, https://tableau.example.com.
      • Formato de nombre de usuario de la aplicación: correo electrónico
    5. Haga clic en el enlace de metadatos del proveedor de identidad para iniciar un navegador. Copie el enlace del navegador. Este es el enlace que utilizará cuando configure Tableau en el procedimiento que se muestra a continuación.
    6. Haga clic en Realizado.
    7. Asigne la nueva aplicación Okta de Tableau Server a su usuario (usuario@example.com): haga clic en el nombre de usuario y luego asigne la aplicación en Asignar aplicación.

    Establecer la configuración del módulo de autenticación en Tableau Server

    Ejecute los siguientes comandos en el nodo 1 de Tableau Server. Estos comandos especifican las ubicaciones de los archivos de configuración de Mellon en el equipo remoto de la puerta de enlace independiente. Vuelva a verificar que las rutas de archivo especificadas en estos comandos se correspondan con las rutas y la ubicación del archivo en el equipo remoto de la puerta de enlace independiente.

    tsm configuration set -k gateway.tsig.authn_module_block -v "/etc/mellon/conf.d/mellonmod.conf" --force-keys
    tsm configuration set -k gateway.tsig.authn_global_block -v "/etc/mellon/conf.d/global.conf" --force-keys

    Para reducir el tiempo de inactividad, no aplique cambios hasta que haya habilitado SAML como se describe en la siguiente sección.

    Habilitar SAML en Tableau Server para IdP

    Ejecute este procedimiento en el nodo 1 de Tableau Server.

    1. Descargue los metadatos de la aplicación de Tableau Server de Okta. Utilice el enlace que guardó del procedimiento anterior:

      wget https://dev-66144217.okta.com/app/exk1egxgt1fhjkSeS5d7/sso/saml/metadata -O idp_metadata.xml

    2. Copie un certificado TLS y un archivo de clave relacionado en Tableau Server. El archivo de claves debe ser una clave RSA. Para obtener más información sobre la configuración y los requisitos de SAML, consulte Requisitos de SAML (Linux(El enlace se abre en una ventana nueva)).

      Para simplificar la administración y la implementación de certificados, y como práctica recomendada de seguridad, recomendamos usar certificados generados por una autoridad de certificación (CA) de terceros de confianza. Como alternativa, puede generar certificados autofirmados o usar certificados de una PKI para TLS.

      Si no tiene un certificado TLS, puede generar un certificado autofirmado mediante el procedimiento integrado a continuación.

      Generar un certificado autofirmado

      Ejecute este procedimiento en el nodo 1 de Tableau Server.

      1. Genere la clave de la autoridad certificadora (CA) raíz de firma:

        openssl genrsa -out rootCAKey-saml.pem 2048

      2. Cree el certificado de CA raíz:

        openssl req -x509 -sha256 -new -nodes -key rootCAKey-saml.pem -days 3650 -out rootCACert-saml.pem

        Se le pedirá que especifique los valores para los campos del certificado. Por ejemplo:

        Country Name (2 letter code) [XX]:US
        State or Province Name (full name) []:Washington
        Locality Name (eg, city) [Default City]:Seattle
        Organization Name (eg, company) [Default Company Ltd]:Tableau
        Organizational Unit Name (eg, section) []:Operations
        Common Name (eg, your name or your server's hostname) []:tableau.example.com
        Email Address []:example@tableau.com
      3. Cree el certificado y la clave relacionada (server-saml.csr y server-saml.key en el ejemplo siguiente). El nombre del sujeto del certificado debe coincidir con el nombre del host público del host de Tableau. El nombre del sujeto se establece con la opción -subj con el formato "/CN=<host-name>", por ejemplo:

        openssl req -new -nodes -text -out server-saml.csr -keyout server-saml.key -subj "/CN=tableau.example.com"

      4. Firme el nuevo certificado con el certificado CA que creó anteriormente. El siguiente comando también genera el certificado en el formato crt:

        openssl x509 -req -in server-saml.csr -days 3650 -CA rootCACert-saml.pem -CAkey rootCAKey-saml.pem -CAcreateserial -out server-saml.crt

      5. Convierta el archivo de clave a RSA. Tableau requiere un archivo de clave RSA para SAML. Para convertirlo, ejecute el siguiente comando:

        openssl rsa -in server-saml.key -out server-saml-rsa.key

    3. Configure SAML: Ejecute el siguiente comando, especificando su ID de entidad y URL de retorno, y las rutas al archivo de metadatos, archivo de certificado y archivo de clave:

      tsm authentication saml configure --idp-entity-id "https://tableau.example.com" --idp-return-url "https://tableau.example.com" --idp-metadata idp_metadata.xml --cert-file "server-saml.crt" --key-file "server-saml-rsa.key"

      tsm authentication saml enable

    4. Si su organización ejecuta Tableau Desktop 2021.4 o posterior, debe ejecutar el siguiente comando para habilitar la autenticación a través de los servidores proxy inversos.

      Las versiones de Tableau Desktop 2021.2.1 - 2021.3 funcionarán sin ejecutar este comando, siempre que su módulo de autenticación previa (p. ej., Mellon) esté configurado para permitir la conservación de cookies de dominio de nivel superior.

      tsm configuration set -k features.ExternalBrowserOAuth -v false

    5. Aplique los cambios de configuración:

      tsm pending-changes apply

    Reinicie el servicio tsig-httpd

    A medida que su implementación de Tableau Server aplique cambios, vuelva a iniciar sesión en el equipo de la puerta de enlace independiente de Tableau Server y ejecute los siguientes comandos para reiniciar el servicio tsig-httpd:

    sudo su - tableau-tsig
    systemctl --user restart tsig-httpd
    exit

    Validar la funcionalidad SAML

    Para validar la funcionalidad SAML de un extremo a otro, inicie sesión en Tableau Server con la URL pública (p. ej., https://tableau.example.com) con la cuenta de administrador de Tableau que creó al comienzo de este procedimiento.

    Si TSM no se inicia ("error de puerta de enlace") o si obtiene errores del navegador cuando intenta conectarse, consulte Solucionar problemas de la puerta de enlace independiente de Tableau Server.

    Configurar el módulo de autenticación en la segunda instancia de la puerta de enlace independiente

    Una vez que haya configurado correctamente la primera instancia de la puerta de enlace independiente, implemente la segunda instancia. El ejemplo aquí es el proceso final para instalar el escenario de AWS/Mellon/Okta descrito en este tema. El procedimiento asume que ya instaló la puerta de enlace independiente en la segunda instancia como se describe en este tema anteriormente (Instalar la puerta de enlace independiente).

    El proceso para implementar la segunda puerta de enlace independiente requiere los siguientes pasos:

    1. En la segunda instancia de la puerta de enlace independiente: Instale el módulo de autenticación de Mellon.

      No configure el módulo de autenticación de Mellon como se describe anteriormente en este tema. En su lugar, debe clonar la configuración como se describe en los pasos siguientes.

    2. En la (primera) instancia configurada de la puerta de enlace independiente:

      Tome una copia tar de la configuración de Mellon existente. La copia de seguridad tar conservará todos los permisos y la jerarquía de directorios. Ejecute los comandos siguientes:

      cd /etc
      sudo tar -cvf mellon.tar mellon

      Copie mellon.tar en la segunda instancia de la puerta de enlace independiente.

    3. En la segunda instancia de la puerta de enlace independiente:

      Extraiga ("descomprima") el archivo tar a la segunda instancia en el directorio /etc. Ejecute los comandos siguientes:

      cd /etc
      sudo tar -xvf mellon.tar

    4. En el nodo 1 de la implementación de Tableau Server: actualice el archivo de conexión (tsig.json) con la información de conexión de la segunda puerta de enlace independiente. Deberá recuperar la clave de autenticación como se describe en este tema anteriormente (Instalar la puerta de enlace independiente).

      Un archivo de conexión de ejemplo (tsig.json) se muestra aquí:

      {
      "independentGateways": [
       {
         "id": "ip-10-0-1-169.ec2.internal",
         "host": "ip-10-0-1-169.ec2.internal",
         "port": "21319",
         "protocol" : "http",
         "authsecret": "13660-27118-29070-25482-9518-22453"
       },
       {
         "id": "ip-10-0-2-230.ec2.internal",
         "host": "ip-10-0-2-230.ec2.internal",
         "port": "21319",
         "protocol" : "http",
         "authsecret": "9055-27834-16487-27455-30409-7292"
       }]
       }
    5. En el nodo 1 de la implementación de Tableau Server: ejecute los siguientes comandos para actualizar la configuración:

      tsm stop
      tsm topology external-services gateway update -c tsig.json
      
      tsm start
    6. En ambas instancias de la puerta de enlace independiente: mientras se inicia Tableau Server, reinicie el proceso tsig-httpd:

      sudo su - tableau-tsig
      systemctl --user restart tsig-httpd
      exit
    7. En AWS EC2>Grupos de destino: actualice el grupo de destino para incluir la instancia EC2 que ejecuta la segunda instancia de la puerta de enlace independiente.

      Seleccione el grupo de destino que acaba de crear y luego haga clic en la pestaña Destinos: 

      • Haga clic en Editar.
      • Seleccione la instancia EC2 del segundo equipo de la puerta de enlace independiente y luego haga clic en Agregar a registrado. Haga clic en Guardar.
    ¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!