Parte 5 - Configuração do nível da Web

A camada da Web da arquitetura de referência deve incluir os seguintes componentes:

  • Um balanceador de carga de aplicativo voltado para a Web que aceita solicitações HTTPS de clientes Tableau e se comunica com os servidores proxy reverso.
  • Proxy reverso: 
    • Recomendamos a implantação do Tableau Server Independent Gateway.
    • Recomendamos um mínimo de dois servidores proxy para redundância e para lidar com a carga do cliente.
    • Recebe tráfego HTTPS do balanceador de carga.
    • Compatível com sessão fixa para o host do Tableau
    • Configure o proxy para balanceamento de carga round robin para cada Tableau Server executando o processo de Gateway.
    • Lida com solicitações de autenticação de IdP externo.
  • Proxy de encaminhamento: o Tableau Server requer acesso à Internet para licenciamento e funcionalidade de mapa. Você deve configurar listas seguras de proxy de encaminhamento para URLs de serviço do Tableau. Consulte Comunicação com a Internet ( Linux(O link abre em nova janela)).
  • Todo o tráfego relacionado ao cliente pode ser criptografado por HTTPS:
    • Balanceador de carga de cliente para aplicativo
    • Balanceador de carga de aplicativo para servidores proxy reversos
    • Servidor proxy para Tableau Server
    • Manipulador de autenticação em execução em proxy reverso para IdP
    • Tableau Server para IdP

Tableau Server Independent Gateway

O Tableau Server versão 2022.1 lançou o Tableau Server Independent Gateway. O Independent Gateway é uma instância autônoma do processo de Gateway do Tableau que funciona como um proxy reverso compatível com o Tableau.

O Independent Gateway oferece suporte ao balanceamento de carga round robin simples para os Tableau Servers de back-end. No entanto, o Independent Gateway não se destina a servir como balanceador de carga de aplicativos corporativos. Recomendamos executar o Independent Gateway por trás de um balanceador de carga de aplicativos de classe empresarial.

O Independent Gateway requer uma licença de Advanced Management.

Autenticação e autorização

A arquitetura de referência padrão especifica a instalação do Tableau Server com autenticação local configurada. Neste modelo, os clientes devem se conectar ao Tableau Server para serem autenticados pelo processo de autenticação local nativo do Tableau Server. Não recomendamos o uso desse método de autenticação na arquitetura de referência, porque o cenário exige que os clientes não autenticados se comuniquem na camada do aplicativo, o que é um risco à segurança.

Em vez disso, recomendamos a configuração de um provedor de identidade externo de nível empresarial junto com um módulo AuthN para pré-autenticar todo o tráfego para a camada de aplicativo. Quando configurado com um IdP externo, o processo de autenticação local nativo do Tableau Server não é usado. O Tableau Server autoriza o acesso a recursos na implantação, depois que o IdP autentica os usuários.

Pré-autenticação com um módulo AuthN

No exemplo documentado neste Guia, o SAML SSO está configurado, mas o processo de pré-autenticação pode ser configurado com a maioria dos provedores de identidade externos e um módulo AuthN.

Na arquitetura de referência, o proxy reverso é configurado para criar uma sessão de autenticação de cliente com o IdP, antes de fazer o proxy dessas solicitações para o Tableau Server. Chamamos esse processo de fase de pré-autenticação. O proxy reverso redirecionará apenas sessões de cliente autenticadas para o Tableau Server. O Tableau Server criará uma sessão, verificará a autenticação da sessão com o IdP e retornará a solicitação do cliente.

O diagrama a seguir mostra os detalhes passo a passo do processo de pré-autenticação e autenticação com um módulo AuthN configurado. O proxy reverso pode ser uma solução genérica de terceiros ou o Tableau Server Independent Gateway:

As etapas mostradas no diagrama acima. Etapa 1: um cliente solicita um recurso no Tableau Server. Etapa 2: o proxy reverso cria uma solicitação de autenticação com um redirecionamento de URL para o provedor de identidade. Etapa 3: O provedor de identidade envia um formulário de login para o usuário. Etapa 4: O usuário é solicitado e insere as credenciais. Etapa 5: o provedor de identidade verifica as credenciais enviadas pelo usuário. Etapa 6: O provedor de identidade responde ao cliente com a declaração SAML inserida que envia para o provedor de serviços de proxy reverso. Etapa 7: o provedor de serviços no proxy valida a declaração, cria uma sessão e redireciona para o provedor de serviços no Tableau Server. Etapa 8: o provedor de serviços no Tableau Server cria a solicitação de autenticação para o provedor de identidade. Etapa 9: O provedor de identidade valida a sessão atual. Etapa 10: o provedor de serviço no Tableau Server valida e cria sua própria sessão e envia a resposta ao usuário. Etapa 11: o usuário se conecta ao Tableau Server para autorização do recurso especificado.

Visão geral da configuração

Esta é uma visão geral do processo de configuração do nível da Web. Verifique a conectividade após cada etapa:

  1. Configure dois proxies reversos para fornecer acesso HTTP ao Tableau Server.
  2. Configure a lógica de balanceamento de carga com sessões persistentes em servidores proxy para se conectar a cada instância do Tableau Server que executa o processo de Gateway.
  3. Configure o balanceamento de carga do aplicativo com sessões persistentes no gateway da Internet para encaminhar solicitações aos servidores proxy reverso.
  4. Configure a autenticação com um IdP externo. Você pode configurar o SSO ou SAML instalando um manipulador de autenticação nos servidores proxy reverso. O módulo AuthN gerencia o handshake de autenticação entre o IdP externo e a implantação do Tableau. O Tableau também atuará como um provedor de serviços IdP e autenticará usuários com o IdP.
  5. Para autenticar com o Tableau Desktop nesta implantação, seus clientes devem estar executando o Tableau Desktop 2021.2.1 ou posterior.

Exemplo de configuração de camada da Web com o Tableau Server Independent Gateway

O restante deste tópico fornece um procedimento de ponta a ponta que descreve como implementar o nível da Web no exemplo de arquitetura de referência da AWS usando o Tableau Server Independent Gateway. Para obter um exemplo de configuração usando o Apache como proxy reverso, consulte Apêndice - Camada da Web com exemplo de implantação do Apache.

A configuração de exemplo é inclui os seguintes componentes:

  • Balanceador de carga de aplicativo AWS
  • Tableau Server Independent Gateway
  • Módulo de autenticação Mellon
  • Okta IdP
  • Autenticação SAML

Observação: o exemplo de configuração de nível da Web apresentado nesta seção inclui procedimentos detalhados para implantação de software e serviços de terceiros. Fizemos o melhor esforço para verificar e documentar os procedimentos para habilitar o cenário de nível da Web. No entanto, o software de terceiros pode mudar ou seu cenário pode ser diferente da arquitetura de referência descrita aqui. Consulte a documentação de terceiros para obter detalhes e suporte de configuração confiável.

Os exemplos do Linux em toda esta seção mostram comandos para distribuições do tipo RHEL. Especificamente, os comandos aqui foram desenvolvidos com a distribuição Amazon Linux 2. Se você estiver executando a distribuição do Ubuntu, edite os comandos de forma apropriada.

A implementação do nível da Web neste exemplo segue uma configuração passo a passo e procedimento de verificação. A configuração principal da camada da Web consiste nas etapas a seguir para habilitar HTTP entre o Tableau e a Internet. O Independent Gateway é executado e configurado para proxy reverso/balanceamento de carga por trás do balanceador de carga do aplicativo AWS:

  1. Preparação do ambiente
  2. Desinstalação do Independent Gateway
  3. Configuração do servidor Independent Gateway
  4. Configure o balanceador de carga do aplicativo AWS

Depois que a camada da Web for configurada, e a conectividade com o Tableau verificada, configure a autenticação com um provedor externo.

Preparar o ambiente

Conclua as tarefas a seguir antes de implementar o Independent Gateway.

  1. Alterações do grupo de segurança da AWS. Configure o grupo de segurança pública para permitir o tráfego de manutenção do Independent Gateway de entrada (TCP 21319) do grupo de segurança privada.

  2. Instale a versão 22.1.1 (ou posterior) no cluster do Tableau Server de quatro nós, conforme documentado na Parte 4 - Instalar e configurar o Tableau Server.

  3. Configure as duas instâncias de proxy do EC2 no grupo de segurança pública conforme documentado em Configurar computadores host.

Desinstalação do Independent Gateway

O Tableau Server Independent Gateway requer uma licença de Advanced Management.

A implantação do Tableau Server Independent Gateway consiste em instalar e executar o pacote .rpm e, em seguida, configurar o estado inicial. O procedimento incluído neste Guia fornece orientação prescritiva para implantação na arquitetura de referência.

Se sua implantação for diferente da arquitetura de referência, consulte a documentação principal do Tableau Server, Instalar o Tableau Server com Independent Gateway (Linux(O link abre em nova janela)).

Importante: configurar o Independent Gateway pode ser um processo propenso a erros. É muito difícil solucionar problemas de configuração em duas instâncias de servidores de Independent Gateway. Por esse motivo, recomendamos configurar um servidor Independent Gateway de cada vez. Depois de configurar o primeiro servidor e verificar a funcionalidade, você deve configurar o segundo servidor Independent Gateway.

Embora você configure cada servidor de Independent Gateway separadamente, execute este procedimento de instalação em ambas as instâncias do EC2 que você instalou no grupo de segurança pública: 

  1. Execute a atualização para aplicar as correções mais recentes ao sistema operacional Linux:

    sudo yum update

  2. Se o Apache estiver instalado, remova-o:

     sudo yum remove httpd
  3. Copie o pacote de instalação da versão 2022.1.1 (ou posterior) do Independent Gateway página Downloads do Tableau(O link abre em nova janela) para o computador host que executará o Tableau Server.

    Por exemplo, em um computador executando o sistema operacional semelhante ao Linux RHEL, execute:

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

  4. Execute o programa de Instalação. Por exemplo, em um sistema operacional semelhante ao Linux RHEL, execute:

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

  5. Mude para o diretório /opt/tableau/tableau_tsig/packages/scripts.<version_code>/ e execute o script initialize-tsig localizado lá: Além do sinalizador --accepteula, você deve incluir o intervalo de IP das sub-redes em que a implantação do Tableau Server está sendo executada. Use a opção -c para especificar o intervalo de IP. O exemplo abaixo mostra o comando com as sub-redes da AWS de exemplo especificadas:

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

  6. Após a conclusão da inicialização, abra o arquivo tsighk-auth.conf e copie o segredo de autenticação no arquivo. Você precisará enviar este código para cada instância de Independent Gateway como parte da configuração de back-end do Tableau Server:

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

  7. Depois de executar as etapas anteriores nas duas instâncias do Independent Gateway, prepare o arquivo de configuração tsig.json. O arquivo de configuração consiste em uma matriz de "independentGateways". A matriz contém objetos de configuração que definem detalhes de conexão para uma instância de Independent Gateway.

    Copie o seguinte JSON e personalize-o de acordo com seu ambiente de implementação. O exemplo aqui mostra um arquivo para uma arquitetura de referência da AWS de exemplo.

    O arquivo JSON de exemplo abaixo inclui apenas informações de conexão para um Independent Gateway. Mais tarde no processo, você incluirá as informações de conexão para o segundo servidor Independent Gateway.

    Salve o arquivo comotsig.json para os procedimentos a seguir.

    {
    "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"- O nome DNS privado da instância do AWS EC2 que executa o Independent Gateway.
    • "host"- igual a "id".
    • "port"- A porta de limpeza, por padrão, "21319".
    • "protocol"- O protocolo para o tráfego do cliente. Deixe isso como http para a configuração inicial.
    • "authsecret"- O segredo que você copiou na etapa anterior.

Independent Gateway: conexão direta versus relé

Antes de continuar, você deve decidir qual esquema de conexão configurar em sua implantação: conexão direta ou de relé. Cada opção é brevemente descrita aqui, juntamente com os pontos de dados de decisão relevantes.

Conexão de relé: você pode configurar o Independent Gateway para retransmitir a comunicação do cliente por uma única porta para o processo de gateway no Tableau Server. Essa comunicação é chamada conexão de relé:

  • O processo de relé resulta em um salto extra do Independent Gateway para o processo back-end do Gateway do Tableau Server. O salto extra degrada o desempenho em comparação com a configuração de conexão direta.
  • TLS é compatível com o modo de relé. Toda a comunicação no modo de relé é restrita a um único protocolo (HTTP ou HTTPS) e, portanto, pode ser criptografada e autenticada com TLS.

Conexão direta: o Independent Gateway pode se comunicar diretamente com os processos back-end do Tableau Server em várias portas. Essa comunicação é chamada conexão direta.

  • Como a conexão é direta com o Tableau Server de back-end, o desempenho do cliente é significativamente aprimorado em comparação com a opção de conexão de relé.
  • Requer a abertura de mais de 16 portas de sub-redes Públicas para Privadas para comunicação direta do processo do Independent Gateway para computadores do Tableau Server.
  • O TLS ainda não é compatível com os processos do Independent Gateway para o Tableau Server.

Para executar o TLS entre o Tableau Server e o Independent Gateway, você deve configurar com uma conexão de retransmissão. Os cenários de exemplo no EDG são configurados com conexão de relé.

  1. Cópia de tsig.json para o nó 1 de sua implantação do Tableau Server.

  2. No Nó 1, execute os comandos a seguir para habilitar o Independent Gateway.

    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

Como a conexão direta não oferece suporte a TLS, recomendamos configurar a conexão direta somente se você conseguir proteger todo o tráfego de rede por outros meios. Para executar o TLS entre o Tableau Server e o Independent Gateway, você deve configurar com uma conexão de retransmissão. Os cenários de exemplo no EDG são configurados com conexão de relé.

Se você estiver configurando o Independent Gateway para conexão direta com o Tableau Server, deverá habilitar a configuração para acionar a comunicação. Depois que o Tableau Server se comunicar com o Independent Gateway, os destinos do protocolo serão estabelecidos. Você deve então recuperar o proxy_targets.csv do computador do Independent Gateway e abra as portas correspondentes dos grupos de segurança Pública para Privada na AWS.

  1. Cópia de tsig.json para o nó 1 de sua implantação do Tableau Server.

  2. No Nó 1, execute os comandos a seguir para habilitar o Independent Gateway.

    tsm stop
    tsm topology external-services gateway enable -c tsig.json
    tsm start
  3. No computador do Independent Gateway, execute o seguinte comando para exibir as portas que o cluster do Tableau Server está usando:

    less /var/opt/tableau/tableau_tsig/config/httpd/proxy_targets.csv
  4. Configurar grupos de segurança de AWS. Adicione as portas TCP listadas em proxy_targets.csv para permitir a comunicação do grupo de segurança pública para o grupo de segurança privada.

    Recomendamos automatizar a configuração de entrada de porta, pois as portas podem ser alteradas se a implantação do Tableau Server for alterada. Adicionar nós ou reconfigurar processos na implantação do Tableau Server acionará alterações no acesso à porta exigido pelo Independent Gateway.

Verificação: configuração da topologia de base

Você deve conseguir acessar a página de administração do Tableau Server navegando para http://<gateway-public-IP-address>.

Se a página de entrada do Tableau Server não carregar ou se o Tableau Server não iniciar, siga estas etapas de solução de problemas:

Rede: 

  • Verifique a conectividade entre a implantação do Tableau e a instância do Independent Gateway executando o seguinte comando wget do Tableau Server Nó1: wget http://<endereço IP interno do Independent Gateway> :21319, por exemplo:

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

    Se a conexão for recusada ou falhar, verifique se o grupo de segurança pública está configurado para permitir o tráfego de manutenção do Independent Gateway (TCP 21319) do grupo de segurança privada.

    Se o grupo de segurança estiver configurado corretamente, verifique se você especificou os endereços IP ou intervalos de IP corretos durante a inicialização do Independent Gateway. Você pode visualizar e alterar esta configuração no arquivo environment.bash localizado em /etc/opt/tableau/tableau_tsig/environment.bash. Se você fizer uma alteração nesse arquivo, reinicie o serviço tsig-http conforme descrito abaixo.

No host Proxy 1:

  1. Substitua o arquivo httpd.conf pelo arquivo stub do Independent Gateway:

    cp /var/opt/tableau/tableau_tsig/config/httpd.conf.stub /var/opt/tableau/tableau_tsig/config/httpd.conf
  2. Reinicie o tsig-httpd como uma primeira etapa de solução de problemas:
    sudo su - tableau-tsig
    systemctl --user restart tsig-httpd
    exit

Nó 1 do Tableau

  • Verifique novamente o arquivo tsig.json. Se você encontrar erros, corrija-os e execute tsm topology external-services gateway update -c tsig.json .
  • Se estiver executando uma conexão direta, verifique as portas TCP listadas em proxy_targets.csv são configurados como portas de entrada de grupos de segurança Público para Privado.

Configure o balanceador de carga do aplicativo AWS

Configure o balanceador de carga como um ouvinte HTTP. O procedimento aqui descreve como adicionar um balanceador de carga na AWS.

Etapa 1: criar grupo de destinos

Um grupo de destino é uma configuração da AWS que define as instâncias do EC2 que executam os servidores proxy. Esses são os destinos do tráfego do LBS.

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

  2. Na página Criar:

    • Insira um nome para o grupo de destino, por exemplo TG-internal-HTTP
    • Tipo de destino: instâncias
    • Protocolo: HTTP
    • Porta: 80
    • VPC: selecione o seu VPC
    • Em Verificações de integridade > Configurações avançadas de verificações de integridade > Códigos de sucesso , anexe a lista de códigos para ler: 200,303.
    • Clique em Criar
  3. Selecione o grupo de destinos que você acabou de criar e clique na guia Destinos

    • Clique em Editar.
    • Selecione as instâncias do EC2 (ou instância única, se você estiver configurando uma de cada vez) que estão executando o aplicativo proxy e clique em Adicionar ao arquivo.
    • Clique em Salvar.

Etapa 2: iniciar o assistente de balanceador de carga

  1. EC2 > Balanceadores de carga> Criar balanceador de carga

  2. Na página “Selecionar tipo de balanceador de carga”, crie um Balanceador de carga de aplicativo.

Observação: a interface de usuário exibida para configurar o balanceador de carga não é consistente em datacenters AWS. O procedimento abaixo, "Configuração do assistente," mapeia para o assistente de configuração da AWS que começa na Etapa 1 Configurar o balanceador de carga

Se o seu datacenter exibe todas as configurações em uma única página que inclui um botão Criar balanceador de carga na parte inferior da página, siga o procedimento "Configuração de página única" abaixo.

  1. Página Configurar o balanceador de carga:

    • Especifique o nome
    • Esquema: voltado para a Internet (padrão)
    • Tipo de endereço IP: ipv4 (padrão)
    • Ouvintes (ouvintes e roteamento):
      1. Deixe o ouvinte HTTP padrão
      2. Clique em Adicionar ouvinte e adicione HTTPS:443
    • VPC: selecione o VPC onde você instalou tudo
    • Zonas de disponibilidade:
      • Selecione a e b para suas regiões de datacenter
      • Em cada seletor suspenso correspondente, selecione a sub-rede pública (onde residem seus servidores proxy).
    • Clique em: Definir configurações de segurança
  2. Página Definir configurações de segurança

    • Faça upload do seu certificado SSL público.
    • Clique em Próximo: configurar grupos de segurança.
  3. Página Definir configurações de segurança:

    • Selecione o grupo de segurança Pública. Se o grupo de segurança Padrão for selecionado, desmarque essa seleção.
    • Clique em Próximo: configurar rota.
  4. Página Configurar roteamento

    • Grupo de destino: Grupo de destino existente.
    • Nome: selecione o grupo de destino que você criou anteriormente
    • Clique em Avançar: Registrar destinos.
  5. Página Registrar destinos

    • As duas instâncias do servidor proxy que você configurou anteriormente devem ser exibidas.
    • Clique em Próximo: revisão.
  6. Página Revisão

    Clique em Criar.

Configuração básica

  • Especifique o nome
  • Esquema: voltado para a Internet (padrão)
  • Tipo de endereço IP: ipv4 (padrão)

Mapeamento de rede

  • VPC: selecione o VPC onde você instalou tudo
  • Mapeamentos:
    • Selecione as Zonas de disponibilidade a e b (ou comparáveis) para as suas regiões de datacenter
    • Em cada seletor suspenso correspondente, selecione a sub-rede pública (onde residem seus servidores proxy).

Grupos de segurança

  • Selecione o grupo de segurança Pública. Se o grupo de segurança Padrão for selecionado, desmarque essa seleção.
  • Ouvintes e roteamento

    • Deixe o ouvinte HTTP padrão. Para a ação padrão, especifique o grupo-alvo que você configurou anteriormente.
    • Clique em Adicionar ouvinte e adicione HTTPS:443. Para a ação padrão, especifique o grupo-alvo que você configurou anteriormente.

    Configurações de ouvinte seguro

    • Faça upload do seu certificado SSL público.

    Clique em Criar o balanceador de carga.

    Etapa 3: habilitar aderência

    1. Depois que o balanceador de carga é criado, você deve habilitar a aderência no grupo de destino.

      • Abra a página Balanceador de carga da AWS (EC2> Balanceadores de carga> Grupos de destinos), selecione a instância do balanceador de carga que você acabou de configurar. No menu Ação, selecione Editar atributos.
      • Na página Editar atributos, selecione Aderência, especifique uma duração de 1 day e, em seguida, Salvar alterações.
    2. No balanceador de carga, ative a aderência no ouvinte HTTP. Selecione o balanceador de carga que você acabou de configurar e clique na guia Ouvintes:

      • Para HTTP: 80, clique em Exibir/editar regras. Na página Regras, clique no ícone de edição (uma vez no topo da página e depois novamente na regra) para editar a regra. Exclua a regra THEN existente e substitua-a clicando em Adicionar ação > Encaminhar para.... Na configuração THEN resultante, especifique o mesmo grupo de destino que você criou. Em Aderência em nível de grupo, ative a aderência e defina a duração para 1 dia. Salve a configuração e clique em Atualizar.

    Etapa 4: definir o tempo limite de inatividade no balanceador de carga

    No balanceador de carga, atualize o tempo limite de inatividade para 400 segundos.

    Selecione o balanceador de carga que você configurou para esta implantação e clique em Ações > Editar atributos. Defina o Tempo limite de inatividade para 400 segundos e, em seguida, clique em Salvar.

    Etapa 5: verificar a conectividade LBS

    Abra a página Balanceador de carga da AWS (EC2> Balanceadores de carga), selecione a instância do balanceador de carga que você acabou de configurar.

    Em Descrição copie o nome DNS e cole-o em um navegador para acessar a página de entrada do Tableau Server.

    Se você receber um erro de nível 500, provavelmente precisará reiniciar seus servidores proxy.

    Atualize DNS com URL pública do Tableau

    Use o nome da zona DNS de seu domínio da descrição do Balanceador de carga da AWS para criar um valor CNAME em seu DNS. O tráfego para a sua URL (tableau.example.com) deve ser enviado ao nome DNS público da AWS.

    Verifique a conectividade

    Depois que suas atualizações de DNS forem concluídas, você deverá conseguir navegar para a página de entrada do Tableau Server inserindo a URL pública, por exemplo,https://tableau.example.com.

    Exemplo de configuração de autenticação: SAML com IdP externo

    O exemplo a seguir descreve como instalar e configurar o SAML com Okta IdP e módulo de autenticação Mellon para uma implantação do Tableau em execução na arquitetura de referência da AWS.

    Este exemplo retoma a seção anterior e supõe que você esteja configurando um Independent Gateway por vez.

    O exemplo descreve como configurar o Tableau Server e o Independent Gateway por HTTP. O Okta enviará a solicitação ao balanceador de carga AWS por HTTPS, mas todo o tráfego interno se deslocará por HTTP. Ao configurar para este cenário, esteja ciente dos protocolos HTTP vs HTTPS ao configurar cadeias de caractere de URL.

    Este exemplo usa o Mellon como um módulo de provedor de serviços de pré-autenticação nos servidores do Independent Gateway. Essa configuração garante que apenas o tráfego autenticado se conecte ao Tableau Server, que também atua como um provedor de serviços com o Okta IdP. Portanto, você deve configurar dois aplicativos IdP: um para o provedor de serviços Mellon e um para o provedor de serviços Tableau.

    Crie a conta de administrador do Tableau

    Um erro comum ao configurar o SAML é esquecer de criar uma conta de administrador no Tableau Server, antes de habilitar o SSO.

    A primeira etapa é criar uma conta no Tableau Server com uma função de Administrador do servidor. Para o exemplo do cenário Okta, o nome de usuário deve estar em um formato de endereço de e-mail válido, por exemplo, usuário@example.com. Você deve definir uma senha para este usuário, mas a senha não será usada após a configuração do SAML.

    Configurar aplicativo de pré-autenticação Okta

    O cenário de ponta a ponta descrito nesta seção requer dois aplicativos Okta:

    • Aplicativo de pré-autenticação Okta
    • Aplicativo Okta Tableau Server

    Cada um desses aplicativos está associado a metadados diferentes que você precisará configurar no proxy reverso e no Tableau Server, respectivamente.

    Este procedimento descreve como criar e configurar o aplicativo de pré-autenticação Okta. Posteriormente neste tópico, você criará o aplicativo Okta Tableau Server. Para uma conta Okta de teste gratuita com usuários limitados, consulte a página da Web do Desenvolvedor do Okta(O link abre em nova janela).

    Crie uma integração de aplicativo SAML para o provedor de serviços de pré-autenticação Mellon.

    1. Abra o painel de administração do Okta> Aplicativos > Criar integração de aplicativo.

    2. Na página Criar uma nova integração de aplicativo, selecione SAML 2.0 e clique em Avançar.

    3. Na guia Configurações gerais, insira um nome de aplicativo, por exemplo Tableau Pre-Auth e clique em Avançar.

    4. Na guia Configurar SAML:

      • Logon único (SSO) na URL. O elemento final do caminho na URL de logon único é conhecido como MellonEndpointPath no arquivo de configuração mellon.conf posteriormente neste procedimento. Você pode especificar qualquer ponto de extremidade que desejar. Neste exemplo, sso é um ponto de extremidade. O último elemento, postResponse, é necessário: https://tableau.example.com/sso/postResponse .
      • Desmarque a caixa de seleção: Use para URL do destinatário e URL de destino.
      • URL do destinatário: igual à URL do SSO, mas com HTTP. Por exemplo, http://tableau.example.com/sso/postResponse.
      • URL de destino: igual à URL do SSO, mas com HTTP. Por exemplo, http://tableau.example.com/sso/postResponse.
      • URI de público (ID da entidade SP). Por exemplo, https://tableau.example.com.
      • Formato de ID do nome:EmailAddress
      • Nome de usuário do aplicativo: Email
      • Declarações de atributos: Nome =mail; Formato do nome =Unspecified; Valor =user.email.

      Clique em Próximo.

    5. Na guia Feedback, selecione:

      • Sou um cliente do Okta adicionando um aplicativo interno
      • Este é um aplicativo interno que criamos
      • Clique em Concluir.
    6. Crie o arquivo de metadados do IdP de pré-autenticação:

      • No Okta: Aplicativos > Aplicativos > Seu novo aplicativo (por exemplo,Tableau Pre-Auth ) > Entrar
      • Ao lado de Certificados de assinatura SAML , clique em Exibir instruções de configuração SAML.
      • Em Como configurar o SAML 2.0 para<pre-auth> Aplicativo, na página, role para baixo até a seção Opcional, forneça os seguintes metadados de IDP para seu provedor de SP.
      • Copie o conteúdo do campo XML e salve-o em um arquivo chamado pre-auth_idp_metadata.xml .
    7. (Opcional) Configure a autenticação multifator:

      • No Okta: Aplicativos > Aplicativos > Seu novo aplicativo (por exemplo,Tableau Pre-Auth ) > Entrar
      • Em Política de logon, clique em Adicionar regra.
      • Na Regra de logon do aplicativo, especifique um nome e as diferentes opções de MFA. Para testar a funcionalidade, você pode deixar todas as opções como padrão. No entanto, em Ações, você deve selecionar Solicitar fator e, a seguir, especificar a frequência com que os usuários devem entrar. Clique em Salvar.

    Crie e atribua usuário do Okta

    1. No Okta, crie um usuário com o mesmo nome de usuário que você criou no Tableau (usuário@example.com): Diretório > Pessoas > Adicionar pessoa.
    2. Depois que o usuário for criado, atribua o novo aplicativo Okta a essa pessoa: clique no nome do usuário e atribua o aplicativo em Atribuir aplicativo.

    Instale o Mellon para pré-autenticação

    Este exemplo usa mod_auth_mellon, um módulo de código aberto popular. Algumas distribuições Linux empacotam versões mod_auth_mellon obsoletas de um repositório mais antigo. Essas versões obsoletas podem conter vulnerabilidades de segurança desconhecidas ou problemas funcionais. Se você optar por usar mod_auth_mellon, verifique se está usando uma versão atual.

    O módulo mod_auth_mellon é um software de terceiros. Fizemos o melhor esforço para verificar e documentar os procedimentos para habilitar este cenário. No entanto, o software de terceiros pode mudar ou seu cenário pode ser diferente da arquitetura de referência descrita aqui. Consulte a documentação de terceiros para obter detalhes e suporte de configuração confiável.

    1. Nas instâncias do EC2 ativo que estão executando o Independent Gateway, instale uma versão atual do módulo de autenticação Mellon.

    2. Crie o diretório /etc/mellon:

      sudo mkdir /etc/mellon

    Configure o Mellon como módulo de pré-autenticação

    Execute este procedimento na primeira instância do Independent Gateway.

    Você deve ter uma cópia do arquivo pre-auth_idp_metadata.xml que você criou a partir da configuração do Okta.

    1. Altere o diretório:

      cd /etc/mellon

    2. Crie os metadados do provedor de serviços. Execute o script mellon_create_metadata.sh. Você deve incluir a ID da entidade e a URL de retorno para sua organização no comando.

      A URL de retorno é conhecida como URL de logon único no Okta. O elemento final do caminho na URL de retorno é conhecido como oMellonEndpointPath no arquivo de configuração mellon.conf posteriormente neste procedimento. Neste exemplo, especificamos sso como o caminho do terminal.

      Por exemplo:

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

      O script retorna o certificado do provedor de serviços, a chave e os arquivos de metadados.

    3. Renomeie os arquivos do provedor de serviços no diretório mellon para facilitar a leitura. Faremos referência a esses arquivos pelos seguintes nomes na documentação:

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

    4. Copie o arquivo pre-auth_idp_metadata.xml para o mesmo diretório.

    5. Altere a propriedade e as permissões em todos os arquivos no diretório /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. Crie o diretório /etc/mellon/conf.d:

      sudo mkdir /etc/mellon/conf.d
    7. Crie o arquivo global.conf no diretório /etc/mellon/conf.d.

      Copie o conteúdo do arquivo conforme mostrado abaixo, mas atualize MellonCookieDomain com seu nome de domínio raiz. Por exemplo, se o nome de domínio do Tableau for tableau.example.com, digitar example.com para o domínio raiz.

      <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. Crie o arquivo mellonmod.conf no diretório /etc/mellon/conf.d.

      Este arquivo contém uma única diretiva que especifica a localização do arquivo mod_auth_mellon.so. O local no exemplo aqui é o local padrão do arquivo. Verifique se o arquivo está neste local ou altere o caminho nesta diretiva para corresponder ao local real de mod_auth_mellon.so:

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

    Crie o aplicativo Tableau Server no Okta

    1. No painel do Okta: Aplicativos > Aplicativos > Navegar no catálogo de aplicativos
    2. Em Procurar catálogo de integração de aplicativos, pesquise Tableau, selecione o bloco do Tableau Server e clique em Adicionar.
    3. Em Adicionar Tableau Server > Configurações gerais, insira um rótulo e clique em Avançar.
    4. Em Opções de logon, selecione SAML 2.0 role a página para baixo até Configurações de logon avançadas:
      • ID da entidade SAML: insira a URL pública, por exemplo, https://tableau.example.com.
      • Formato do nome de usuário do aplicativo: e-mail
    5. Clique no link de metadados do provedor de identidade para iniciar um navegador. Copie o link do navegador. Esse é o link que você usará ao configurar o Tableau no procedimento a seguir.
    6. Clique em Concluído.
    7. Atribua o novo aplicativo Tableau Server Okta ao seu usuário (usuário@example.com): clique no nome do usuário e atribua o aplicativo em Atribuir aplicativo.

    Definir a configuração do módulo de autenticação no Tableau Server

    Execute os seguintes comandos no Nó 1 do Tableau Server. Esses comandos especificam os locais dos arquivos de configuração do Mellon no computador remoto do Independent Gateway. Verifique novamente se os caminhos de arquivo especificados nesses comandos são mapeados para os caminhos e o local do arquivo no computador remoto do Independent Gateway.

    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 reduzir o tempo de inatividade, não aplique as alterações até ativar o SAML, conforme descrito na próxima seção.

    Habilite SAML no Tableau Server para IdP

    Execute este procedimento no nó 1 do Tableau Server.

    1. Baixe os metadados do aplicativo Tableau Server no Okta. Use o link que você salvou no procedimento anterior:

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

    2. Copie um certificado TLS e o arquivo de chave relacionado para o Tableau Server. O arquivo de chave deve ser uma chave RSA. Para obter mais informações sobre o certificado e requisitos do SAML, consulte Requisitos do SAML (Linux(O link abre em nova janela)).

      Para simplificar o gerenciamento e a implantação de certificados e como prática recomendada de segurança, recomendamos o uso de certificados gerados por uma autoridade de certificação (CA) de terceiros confiável. Como alternativa, você pode gerar certificados autoassinados ou usar certificados de uma PKI para TLS.

      Se você não tiver um certificado TLS, poderá gerar um certificado autoassinado usando o procedimento incorporado a seguir.

      Gerar um certificado autoassinado

      Execute este procedimento no nó 1 do Tableau Server.

      1. Gere a chave de autoridade de certificação raiz (CA) de assinatura:

        openssl genrsa -out rootCAKey-saml.pem 2048

      2. Crie o certificado CA raiz:

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

        Você será solicitado a inserir valores para os campos do certificado. Por exemplo:

        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. Crie o certificado e a chave relacionada (server-saml.csr e server-saml.key no exemplo abaixo) para o computador Postgres. O nome do assunto do certificado deve corresponder ao nome do host público do host do Tableau. O nome do assunto é definido com a opção -subj e o formato"/CN=<host-name>", por exemplo:

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

      4. Assine o novo certificado com o certificado CA que você criou antes. O comando a seguir também produz o certificado no 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. Converta o arquivo de chave em RSA. O Tableau requer um arquivo de chave RSA para SAML. Para converter a chave, execute o comando a seguir:

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

    3. Configure o SAML. Execute o seguinte comando, especificando seu ID de entidade e URL de retorno, e os caminhos para o arquivo de metadados, arquivo de certificado e arquivo de chave:

      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. Se sua organização estiver executando o Tableau Desktop 2021.4 ou posterior, você deve executar o seguinte comando para habilitar a autenticação por meio dos servidores proxy reverso.

      As versões do Tableau Desktop 2021.2.1 - 2021.3 funcionarão sem executar este comando, desde que seu módulo de pré-autenticação (por exemplo, Mellon) esteja configurado para permitir a preservação de cookies de domínio de nível superior.

      tsm configuration set -k features.ExternalBrowserOAuth -v false

    5. Aplique as alterações configuração:

      tsm pending-changes apply

    Reiniciar o serviço tsig-httpd

    À medida que a implantação do Tableau Server aplica as alterações, entre novamente no computador do Tableau Server Independent Gateway e execute os seguintes comandos para reiniciar o serviço tsig-httpd:

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

    Validar a funcionalidade SAML

    Para validar a funcionalidade SAML de ponta a ponta, entre no Tableau Server com a URL pública (por exemplo, https://tableau.example.com) com a conta de administrador do Tableau que você criou no início deste procedimento.

    Se o TSM não iniciar ("erro de gateway") ou se você receber erros de navegador ao tentar se conectar, consulte Solucionar problemas o Tableau Server Independent Gateway.

    Configurar o módulo de autenticação na segunda instância do Independent Gateway

    Depois de configurar com êxito a primeira instância do Independent Gateway, implante a segunda instância. O exemplo aqui é o processo final para instalar o cenário AWS/Mellon/Okta descrito neste tópico. O procedimento pressupõe que você já instalou o Independent Gateway na segunda instância conforme descrito neste tópico anteriormente (Instalar o Independent Gateway).

    O processo de implantação do segundo Independent Gateway requer as seguintes etapas:

    1. Na segunda instância do Independent Gateway: instale o módulo de autenticação Mellon.

      Não configure o módulo de autenticação Mellon conforme descrito anteriormente neste tópico. Em vez disso, você deve clonar a configuração conforme descrito nas etapas subsequentes.

    2. Na (primeira) instância configurada do Independent Gateway:

      Faça uma cópia tar da configuração Mellon existente. O backup tar preservará toda a hierarquia de diretórios e permissões. Execute os seguintes comandos:

      cd /etc
      sudo tar -cvf mellon.tar mellon

      Copie mellon.tar para a segunda instância do Independent Gateway.

    3. Na segunda instância do Independent Gateway:

      Extraia ("descompacte") o arquivo tar para a segunda instância no diretório /etc. Execute os seguintes comandos:

      cd /etc
      sudo tar -xvf mellon.tar

    4. No nó 1 da implantação do Tableau Server: atualize o arquivo de conexão (tsig.json ) com as informações de conexão do segundo Independent Gateway. Você precisará recuperar a chave de autenticação conforme descrito neste tópico anteriormente (Instalar Independent Gateway).

      Um arquivo de conexão de exemplo (tsig.json ) é mostrado aqui:

      {
      "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. No nó 1 da implantação do Tableau Server: execute os seguintes comandos para atualizar a configuração:

      tsm stop
      tsm topology external-services gateway update -c tsig.json
      
      tsm start
    6. Nas duas instâncias do Independent Gateway: conforme o Tableau Server está iniciando, reinicie o processo tsig-httpd:

      sudo su - tableau-tsig
      systemctl --user restart tsig-httpd
      exit
    7. Em AWS EC2>Grupos de destino : atualize o grupo de destino para incluir a instância do EC2 que executa a segunda instância do Independent Gateway.

      Selecione o grupo de destinos que você acabou de criar e clique na guia Destinos: 

      • Clique em Editar.
      • Selecione a instância do EC2 do segundo computador do Independent Gateway e clique em Adicionar ao registrado. Clique em Salvar.
    Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!