Apéndice: nivel web con implementación de ejemplo de Apache

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. La configuración de ejemplo tiene los siguientes componentes:

  • Equilibrador de carga de aplicaciones de AWS
  • Servidores proxy de Apache
  • 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. Apache se ejecuta y configura para proxy inverso/equilibrio de carga detrás del equilibrador de carga de la aplicación AWS:

  1. Instalar Apache
  2. Configurar el proxy inverso para probar la conectividad con Tableau Server
  3. Configurar el equilibrio de carga en el proxy
  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.

Instalar Apache

Ejecute el siguiente procedimiento en ambos hosts EC2 (Proxy 1 y Proxy 2). Si está implementando en AWS de acuerdo con el ejemplo de arquitectura de referencia, debe tener dos zonas de disponibilidad y ejecutar un solo servidor proxy en cada zona de disponibilidad.

  1. Instale Apache:

    sudo yum update -y
    sudo yum install -y httpd
  2. Configuración para iniciar Apache al reiniciar:

    sudo systemctl enable --now httpd

  3. Verifique que la versión de httpd que ha instalado incluya proxy_hcheck_module.

    sudo httpd -M

    Se necesita proxy_hcheck_module. Si su versión de httpd no incluye este módulo, actualice a una versión de httpd que sí lo incluya.

Configurar el proxy para probar la conectividad a Tableau Server

Ejecute este procedimiento en uno de los hosts proxy (Proxy 1). El propósito de este paso es verificar la conectividad entre Internet, su servidor proxy y Tableau Server en el grupo de seguridad privado.

  1. Cree un archivo llamadotableau.conf y agréguelo al directorio/etc/httpd/conf.d.

    Copie el siguiente código y especifique las clavesProxyPass yProxyPassReverse con la dirección IP privada del Nodo 1 de Tableau Server.

    Importante: La configuración que se muestra a continuación no es segura y no debe usarse en producción. Esta configuración solo debe usarse durante el proceso de instalación para verificar la conectividad de un extremo a otro.

    Por ejemplo, si la dirección IP privada del Nodo 1 es10.0.30.32 , el contenido del archivo tableau.conf sería:

    <VirtualHost *:80>
    ProxyPreserveHost On
    ProxyPass "/" "http://10.0.30.32:80/"
    ProxyPassReverse "/" "http://10.0.30.32:80/"
    </VirtualHost>
  2. Reinicie httpd:

    sudo systemctl restart httpd

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

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

Si la página de inicio de sesión de Tableau Server no se carga en su navegador, siga estos pasos de solución de problemas en el host Proxy 1:

  • Detenga y luego inicie httpd como primer paso de solución de problemas.
  • Compruebe el archivo tableau.conf. Verifique que la IP privada del Nodo 1 sea correcta. Verifique las comillas dobles y revise cuidadosamente la sintaxis.
  • Ejecute el comando curl en el servidor del proxy inverso con la dirección IP privada del nodo 1, por ejemplo, curl 10.0.1.90. Si el shell no devuelve html, o si devuelve html para la página web de prueba de Apache, verifique la configuración del puerto/protocolo entre los grupos de seguridad Público y Privado.
  • Ejecute el comando curl con la dirección IP privada del proxy 1, por ejemplo, curl 10.0.0.163. Si el shell devuelve el código html para la página web de prueba de Apache, entonces el archivo proxy no está configurado correctamente.
  • Reinicie siempre httpd (sudo systemctl restart httpd) después de cualquier cambio de configuración en el archivo proxy o en los grupos de seguridad.
  • Asegúrese de que TSM se esté ejecutando en el nodo 1.

Configurar el equilibrio de carga en el proxy

  1. En el mismo host de proxy (Proxy 1) donde creó tableau.conf, elimine la configuración del host virtual existente y edite el archivo para incluir la lógica de equilibrio de carga.

    Por ejemplo:

    <VirtualHost *:80>
    ServerAdmin admin@example.com
    #Load balancing logic.
    ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
    Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED 
    <Proxy balancer://tableau>
    #Replace IP addresses below with the IP addresses to the Tableau Servers running the Gateway service.
    BalancerMember http://10.0.3.40/ route=1 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
    BalancerMember http://10.0.4.151/ route=2 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
    ProxySet stickysession=ROUTEID
    </Proxy>
    ProxyPreserveHost On
    ProxyPass / balancer://tableau/
    ProxyPassReverse / balancer://tableau/ 
    </VirtualHost>
  2. Detenga y luego inicie httpd:

    sudo systemctl stop httpd
    sudo systemctl start httpd
  3. Verifique la configuración navegando a la dirección IP pública de Proxy 1.

Copiar la configuración al segundo servidor proxy

  1. Copie el archivo tableau.conf de Proxy 1 y guárdelo en el directorio /etc/httpd/conf.d en el host Proxy 2.
  2. Detenga y luego inicie httpd:

    sudo systemctl stop httpd
    sudo systemctl start httpd
  3. Verifique la configuración navegando a la dirección IP pública de Proxy 2.

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. El ejemplo describe cómo configurar Tableau Server y los servidores proxy Apache 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 proxy inversos. 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

    1. En las instancias EC2 que ejecuta el servidor proxy Apache, ejecute los siguientes comandos para instalar los módulos PHP y Mellon:

      sudo yum install httpd php mod_auth_mellon

    2. Cree el directorio /etc/httpd/mellon

    Configurar Mellon como módulo de preautorización

    Ejecute este procedimiento en ambos servidores proxy.

    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/httpd/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. Cree el archivo mellon.conf en el directorio /etc/httpd/conf.d:

      sudo nano /etc/httpd/conf.d/mellon.conf

    6. Copie el siguiente contenido en mellon.conf.

      <Location />
      MellonSPPrivateKeyFile /etc/httpd/mellon/mellon.key
      MellonSPCertFile /etc/httpd/mellon/mellon.cert
      MellonSPMetadataFile /etc/httpd/mellon/sp_metadata.xml
      MellonIdPMetadataFile /etc/httpd/mellon/pre-auth_idp_metadata.xml
      MellonEndpointPath /sso
      MellonEnable "info"
      </Location>
    7. Añada el siguiente contenido en el archivo tableau.conf existente:

      Dentro del bloque <VirtualHost *:80>, agregue el siguiente contenido. Actualice ServerName con el nombre de host público en su ID de entidad:

      DocumentRoot /var/www/html
      ServerName tableau.example.com
      ServerSignature Off
      ErrorLog logs/error_sp.log
      CustomLog logs/access_sp.log combined
      LogLevel info 

      Agregue el bloque Ubicación fuera del bloque <VirtualHost *:80>. Actualice MellonCookieDomain con el dominio de nivel superior para conservar la información de las cookies como se muestra:

      <Location />
      AuthType Mellon
      MellonEnable auth
      Require valid-user
      MellonCookieDomain example.com					
      </Location>

      El archivo tableau.conf completo debería parecerse al siguiente ejemplo:

      <VirtualHost *:80>
      ServerAdmin admin@example.com
      ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
      Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
      <Proxy balancer://tableau>
      BalancerMember http://10.0.3.36/ route=1 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      BalancerMember http://10.0.4.15/ route=2 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      ProxySet stickysession=ROUTEID
      </Proxy>
      ProxyPreserveHost On
      ProxyPass / balancer://tableau/
      ProxyPassReverse / balancer://tableau/
      DocumentRoot /var/www/html
      ServerName tableau.example.com
      ServerSignature Off
      ErrorLog logs/error_sp.log
      CustomLog logs/access_sp.log combined
      LogLevel info 
      </VirtualHost>
      <Location />
      AuthType Mellon
      MellonEnable auth
      Require valid-user
      MellonCookieDomain example.com
      </Location>
    8. Verifique la configuración. Ejecute el comando siguiente:

      sudo apachectl configtest

      Si la prueba de configuración devuelve un error, corrija los errores y vuelva a ejecutar configtest. Si la configuración es correcta, aparecerá Syntax OK.

    9. Reinicie httpd:

      sudo systemctl restart httpd

    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.

    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

    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.

    Solución de problemas de validación

    Solicitud incorrecta: un error común para este escenario es un error de "Solicitud incorrecta" de Okta. A menudo, este problema ocurre cuando el navegador está almacenando en caché datos de la sesión anterior de Okta. Por ejemplo, si administra las aplicaciones de Okta como administrador de Okta y luego intenta acceder a Tableau con una cuenta diferente habilitada para Okta, los datos de sesión de los datos del administrador pueden causar el error "Solicitud incorrecta". Si este error persiste incluso después de borrar la memoria caché del navegador local, intente validar el escenario de Tableau conectándose con un navegador diferente.

    Otra causa del error "Solicitud incorrecta" es un error tipográfico en una de las muchas URL que especifique durante los procesos de configuración de Okta, Mellon y SAML. Revise todo esto cuidadosamente.

    A menudo, el archivo httpd error.log en el servidor Apache especificará qué URL está causando el error.

    No encontrada: la URL solicitada no se encontró en este servidor: este error indica uno de los muchos errores de configuración.

    Si el usuario está autenticado con Okta y luego recibe este error, es probable que haya cargado la aplicación de autorización previa de Okta en Tableau Server cuando configuró SAML. Compruebe que tiene los metadatos de la aplicación Okta de Tableau Server configurados en Tableau Server, y no los metadatos de la aplicación Okta de preautorización.

    Otros pasos de solución de problemas:

    • Revise tableau.conf con cuidado en busca de errores tipográficos o de configuración
    • Revise la configuración de la aplicación de autorización previa de Okta. Asegúrese de que los protocolos HTTP vs HTTPS estén configurados como se especifica en este tema.
    • Reinicie httpd en ambos servidores proxy.
    • Compruebe que sudo apachectl configtest devuelve "Sintaxis OK" en ambos servidores proxy.
    • Verifique que el usuario de prueba esté asignado a ambas aplicaciones en Okta.
    • Compruebe que stickiess esté configurado en el equilibrador de carga y los grupos de destino asociados

    Configurar SSL/TLS desde el equilibrador de carga a Tableau Server

    Algunas organizaciones requieren un canal de cifrado de un extremo a otro desde el cliente hasta el servicio de back-end. La arquitectura de referencia predeterminada, como se describe hasta este punto, especifica SSL desde el cliente hasta el equilibrador de carga que se ejecuta en el nivel web de su organización.

    Para configurar SSL desde el equilibrador de carga a Tableau Server, debe:

    • Instalar un certificado SSL válido tanto en Tableau como en los servidores proxy.
    • Configurar SSL desde el equilibrador de carga a los servidores proxy inversos.
    • Configurar SSL desde los servidores proxy a Tableau Server.
    • También puede configurar SSL desde Tableau Server a la instancia de PostgreSQL.

    El resto de este tema describe esta implementación en el contexto de la arquitectura de referencia de AWS de ejemplo.

    Ejemplo: Configurar SSL/TLS en la arquitectura de referencia de AWS

    Esta sección describe cómo configurar SSL en Tableau y configurar SSL en un servidor proxy Apache, todo en la arquitectura de referencia de AWS de ejemplo.

    Los procedimientos de Linux a lo largo de este ejemplo 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.

    Paso 1: Recopilar certificados y claves relacionadas

    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.

    El siguiente procedimiento de cómo generar certificados autofirmados. Si está utilizando certificados de terceros como recomendamos, puede omitir este procedimiento.

    Ejecute este procedimiento en uno de los hosts proxy. Después de generar el certificado y la clave asociada, lo compartirá con el otro host proxy y con el nodo 1 de Tableau Server.

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

      openssl genrsa -out rootCAKey.pem 2048

    2. Cree el certificado de CA raíz:

      openssl req -x509 -sha256 -new -nodes -key rootCAKey.pem -days 3650 -out rootCACert.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 (serverssl.csr y serverssl.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 serverssl.csr -keyout serverssl.key -subj "/CN=tableau.example.com"

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

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

    Paso 2: configurar el servidor proxy para SSL

    Ejecute este procedimiento en ambos servidores proxy.

    1. Instale el módulo ssl de Apache:

      sudo yum install mod_ssl

    2. Cree el directorio /etc/ssl/private:

      sudo mkdir -p /etc/ssl/private

    3. Copie los archivos .crt y .key en las siguientes rutas /etc/ssl/:

      sudo cp serverssl.crt /etc/ssl/certs/

      sudo cp serverssl.key /etc/ssl/private/

    4. Realice los siguientes cambios en el tableau.conf:

      • Agregue el bloque de reescritura de SSL:
        RewriteEngine on
        RewriteCond %{SERVER_NAME} =tableau.example.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
      • En el bloque de reescritura de SSL, actualice el nombre del servidor RewriteCond: agregue su nombre de host público, por ejemplo, tableau.example.com
      • Cambie <VirtualHost *:80> por <VirtualHost *:443>.
      • Envuelva el <VirtualHost *:443> y los bloques <Location /> con <IfModule mod_ssl.c>... </IfModule>.
      • BalancerMember: cambie el protocolo de http a https.
      • Agregue elementos SSL* dentro del bloque <VirtualHost *:443>:
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/serverssl.crt
        SSLCertificateKeyFile /etc/ssl/private/serverssl.key
        SSLProxyEngine on
        SSLProxyVerify none
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off
      • En el elemento LogLevel, agregue ssl:warn.
      • Opcional: Si ha instalado y configurado un módulo de autenticación, es posible que tenga elementos adicionales en el archivo tableau.conf. Por ejemplo, el bloque <Location /> </Location> incluirá elementos.

      Aquí se muestra un archivo tableau.conf de ejemplo configurado para SSL:

      RewriteEngine on
      RewriteCond %{SERVER_NAME} =tableau.example.com
      RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
      
      <IfModule mod_ssl.c>
      <VirtualHost *:443>
      ServerAdmin admin@example.com
      ProxyHCExpr ok234 {%{REQUEST_STATUS} =~ /^[234]/}
      Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
      <Proxy balancer://tableau>
      BalancerMember https://10.0.3.36/ route=1 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      BalancerMember https://10.0.4.15/ route=2 hcmethod=GET hcexpr=ok234 hcuri=/favicon.ico
      ProxySet stickysession=ROUTEID
      </Proxy>
      ProxyPreserveHost On
      ProxyPass / balancer://tableau/
      ProxyPassReverse / balancer://tableau/
      DocumentRoot /var/www/html
      ServerName tableau.example.com
      ServerSignature Off
      ErrorLog logs/error_sp.log
      CustomLog logs/access_sp.log combined
      LogLevel info ssl:warn
      SSLEngine on
      SSLCertificateFile /etc/ssl/certs/serverssl.crt
      SSLCertificateKeyFile /etc/ssl/private/serverssl.key
      SSLProxyEngine on
      SSLProxyVerify none
      SSLProxyCheckPeerName off
      SSLProxyCheckPeerExpire off
      </VirtualHost>
      <Location />
      #If you have configured a pre-auth module (e.g. Mellon) include those elements here.
      </Location>
      </IfModule>
    5. Agregue el archivo index.html para eliminar los errores 403:

      sudo touch /var/www/html/index.html
    6. Reinicie httpd:

      sudo systemctl restart httpd

    Paso 3: configurar Tableau Server para SSL externo

    Copie los archivos serverssl.crt y serverssl.key del host del Proxy 1 al Tableau Server inicial (Nodo 1).

    Ejecute los siguientes comandos en el nodo 1:

    tsm security external-ssl enable --cert-file serverssl.crt --key-file serverssl.key
    tsm pending-changes apply

    Paso 4: configuración de autenticación opcional

    Si ha configurado un proveedor de identidad externo para Tableau, es probable que deba actualizar las URL de retorno en el panel administrativo del IdP.

    Por ejemplo, si está utilizando una aplicación de preautenticación Okta, deberá actualizar la aplicación para usar el protocolo HTTPS para la URL del destinatario y la URL de destino.

    Paso 5: configurar el equilibrador de carga de AWS para HTTPS

    Si está implementando con el equilibrador de carga de AWS como se documenta en esta guía, vuelva a configurar el equilibrador de carga de AWS para enviar tráfico HTTPS a los servidores proxy:

    1. Anule el registro del grupo de destino HTTP existente:

      En Grupos de destino, seleccione el grupo de destino HTTP que se ha configurado para el equilibrador de carga, haga clic en Acciones y, a continuación, haga clic en Registrar y anular el registro de la instancia.

      En la página Registrar y anular el registro de destinos, seleccione las instancias que están configuradas actualmente, haga clic en Anular registro y luego en Guardar.

    2. Cree un grupo de destino HTTPS:

      Grupos de destino > Crear grupo de destino

      • Seleccione "Instancias"
      • Escriba un nombre de grupo de destino, TG-internal-HTTPS por ejemplo
      • Seleccione su VPC
      • Protocolo: HTTPS 443
      • 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 que están ejecutando la aplicación proxy y luego haga clic en Añadir a registrados.
      • Haga clic en Guardar.
    4. Una vez creado el grupo objetivo, debe habilitar la adherencia:

      • 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.
    5. En el equilibrador de carga, actualice las reglas del oyente. Seleccione el equilibrador de carga que ha configurado para esta implementación 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 > Redirigir a... En la configuración THEN resultante, especifiqueHTTPS y el puerto 443 y deje las otras opciones con la configuración predeterminada. Guarde la configuración y haga clic en Actualizar.
      • Para HTTP:443, 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. En la configuración THEN, en Reenviar a... cambie el grupo de destino al grupo HTTPS que acaba de crear. 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 6: verificar SSL

    Verifique la configuración navegando a https://tableau.example.com.

    ¡Gracias por sus comentarios!Sus comentarios se han enviado correctamente. ¡Gracias!