Apêndice - Camada da Web com exemplo de implantação do Apache

Este 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. A configuração de exemplo é inclui os seguintes componentes:

  • Balanceador de carga de aplicativo AWS
  • Servidores proxys do Apache
  • 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 Apache é executado e configurado para proxy reverso/balanceamento de carga por trás do balanceador de carga do aplicativo AWS:

  1. Instale o Apache
  2. Configure o proxy reverso para testar a conectividade com o Tableau Server
  3. Configure o balanceamento de carga no proxy
  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.

Instale o Apache

Execute o procedimento a seguir em ambos os hosts EC2 (Proxy 1 e Proxy 2). Se estiver implantando na AWS de acordo com o exemplo de arquitetura de referência, você deve ter duas zonas de disponibilidade e executar um único servidor proxy em cada zona.

  1. Instale o Apache:

    sudo yum update -y
    sudo yum install -y httpd
  2. Configure para iniciar o Apache na reinicialização:

    sudo systemctl enable --now httpd

  3. Verifique se a versão do httpd que você instalou inclui proxy_hcheck_module.

    sudo httpd -M

    O proxy_hcheck_module é necessário. Se a sua versão do httpd não inclui este módulo, atualize para uma versão do httpd que o inclua.

Configure o proxy para testar a conectividade com o Tableau Server

Execute este procedimento em um dos hosts proxy (Proxy 1). O objetivo desta etapa é verificar a conectividade entre a Internet e seu servidor proxy para o Tableau Server no grupo de segurança privada.

  1. Crie um arquivo chamado tableau.conf e adicione-o ao diretório /etc/httpd/conf.d.

    Copie o seguinte código e especifique as chaves ProxyPass e ProxyPassReverse com o endereço IP privado do Nó 1 do Tableau Server.

    Importante: a configuração mostrada abaixo não é segura e não deve ser usada na produção. Essa configuração só deve ser usada durante o processo de instalação para verificar a conectividade ponta a ponta.

    Por exemplo, se o endereço IP privado do Nó 1 for 10.0.30.32, então o conteúdo do arquivo tableau.conf será:

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

    sudo systemctl restart httpd

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

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

Se a página de login do Tableau Server não carregar em seu navegador, siga estas etapas de solução de problemas no host Proxy 1:

  • Pare e inicie o httpd como uma primeira etapa de solução de problemas.
  • Verifique novamente o arquivo tableau.conf. Verifique se o IP privado do Nó 1 está correto. Verifique as aspas duplas e analise cuidadosamente a sintaxe.
  • Execute o comando curl com no servidor proxi reverso com o endereço IP privado do Nó 1, por exemplo, curl 10.0.1.90 . Se o shell não retornar html ou se retornar html para a página da Web de teste do Apache, verifique a configuração do protocolo/porta entre os grupos de segurança Pública e Privada.
  • Execute o comando curl com endereço IP privado do Proxy 1, por exemplo, curl 10.0.0.163. Se o shell retornar o código html para a página da Web de teste do Apache, o arquivo proxy não está configurado corretamente.
  • Sempre reinicie o httpd (sudo systemctl restart httpd) após qualquer alteração na configuração do arquivo proxy ou dos grupos de segurança.
  • Certifique-se de que o TSM esteja em execução no Nó 1.

Configure o balanceamento de carga no proxy

  1. No mesmo host proxy (Proxy 1) onde você criou o arquivo tableau.conf, remova a configuração do Host virtual existente e edite o arquivo para incluir a lógica de balanceamento de carga.

    Por exemplo:

    <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. Pare e inicie httpd:

    sudo systemctl stop httpd
    sudo systemctl start httpd
  3. Verifique a configuração navegando até o endereço IP público do Proxy 1.

Copie a configuração para o segundo servidor proxy

  1. Copie otableau.conf arquivo do Proxy 1 e salve-o no diretório /etc/httpd/conf.d no host Proxy 2.
  2. Pare e inicie httpd:

    sudo systemctl stop httpd
    sudo systemctl start httpd
  3. Verifique a configuração navegando até o endereço IP público do Proxy 2.

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. O exemplo descreve como configurar o Tableau Server e os servidores proxy Apache para usar 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 proxy reversos. 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

    1. Nas instâncias EC2 que estão executando o servidor proxy Apache, execute os seguintes comandos para instalar os módulos PHP e Mellon:

      sudo yum install httpd php mod_auth_mellon

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

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

    Execute este procedimento em ambos os servidores proxy.

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

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

    6. Copie o seguinte conteúdo para 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. Adicione o conteúdo a seguir no arquivo tableau.conf existente:

      Dentro do bloco <VirtualHost *:80>, adicione o seguinte conteúdo. Atualize ServerName com o nome de host público em sua ID de entidade:

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

      Adicione o bloco de localização fora do bloco <VirtualHost *:80>. Atualize MellonCookieDomain com o domínio de nível superior para preservar as informações do cookie, conforme mostrado:

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

      O arquivo tableau.conf completo deve ser parecido com o exemplo a seguir:

      <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 a configuração. Execute o seguinte comando:

      sudo apachectl configtest

      Se o teste de configuração retornar um erro, corrija os erros e execute configtest novamente. Uma configuração bem-sucedida retornará,Syntax OK.

    9. Reinicie o httpd:

      sudo systemctl restart httpd

    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.

    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

    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.

    Solução de problemas de validação

    Solicitação inválida: um erro comum neste cenário é um erro de "Solicitação inválida" da Okta. Frequentemente, esse problema ocorre quando o navegador está armazenando dados em cache de uma sessão anterior do Okta. Por exemplo, se você gerencia os aplicativos Okta como um administrador Okta e, em seguida, tenta acessar o Tableau usando uma conta habilitada para Okta diferente, os dados da sessão dos dados do administrador podem causar o erro "Solicitação inválida". Se esse erro persistir mesmo depois de limpar o cache do navegador local, tente validar o cenário do Tableau conectando-se em um navegador diferente.

    Outra causa do erro "Solicitação inválida" é um erro de digitação em uma das muitas URLs que você insere durante os processos de configuração do Okta, Mellon e SAML. Verifique tudo isso com atenção.

    Muitas vezes o arquivo de httpd error.log no servidor Apache especificará qual URL está causando o erro.

    Não encontrado - A URL solicitada não foi encontrado neste servidor: este erro indica um dos muitos erros de configuração.

    Se o usuário for autenticado com Okta e receber esse erro, é provável que você tenha carregado o aplicativo de pré-autenticação Okta para o Tableau Server quando configurou o SAML. Verifique se você tem os metadados do aplicativo Okta Tableau Server configurados no Tableau Server, e não os metadados do aplicativo de pré-autenticação Okta

    Outras etapas de solução de problemas:

    • Analise o tableau.conf com cuidado para verificar os erros de digitação ou configuração
    • Revise as configurações do aplicativo de pré-autenticação do Okta. Certifique-se de que os protocolos HTTP vs HTTPS estejam definidos, conforme especificado neste tópico.
    • Reinicie o httpd em ambos os servidores proxy.
    • Verifique se sudo apachectl configtest retorna “Sintaxe OK” em ambos os servidores proxy.
    • Verifique se o usuário de teste está atribuído a ambos os aplicativos no Okta.
    • Verifique se a aderência está definida no balanceador de carga e grupos de destino associados

    Configurar SSL/TLS do balanceador de carga para o Tableau Server

    Algumas organizações exigem um canal de criptografia de ponta a ponta do cliente para o serviço de back-end. A arquitetura de referência padrão, conforme descrito até este ponto, especifica SSL do cliente para o balanceador de carga em execução na camada da Web de sua organização.

    Para configurar SSL do balanceador de carga para o Tableau Server, você deve:

    • Instalar um certificado SSL válido nos servidores Tableau e proxy.
    • Configurar o SSL do balanceador de carga para os servidores proxy reversos.
    • Configurar o SSL dos servidores proxy para o Tableau Server.
    • Você também pode configurar o SSL do Tableau Server para a instância PostgreSQL.

    O restante deste tópico descreve essa implementação no contexto do exemplo de arquitetura de referência da AWS.

    Exemplo: configurar SSL/TLS na arquitetura de referência da AWS

    Esta seção descreve como configurar SSL no Tableau e configurar SSL em um servidor proxy Apache, tudo em execução na arquitetura de referência de exemplo da AWS.

    Os procedimentos do Linux em todo este exemplo 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.

    Etapa 1: coletar certificados e chaves relacionadas

    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.

    O procedimento a seguir como gerar certificados autoassinados. Se você estiver usando certificados de terceiros como recomendamos, pule este procedimento.

    Execute este procedimento em um dos hosts proxy. Depois de gerar o certificado e a chave associada, você os compartilhará com o outro host proxy e com o nó 1 do Tableau Server.

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

      openssl genrsa -out rootCAKey.pem 2048

    2. Crie o certificado CA raiz:

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

    4. Assine o novo certificado com o certificado CA que você criou na etapa 2. O comando a seguir também produz o certificado no formato crt:

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

    Etapa 2: configurar o servidor proxy para SSL

    Execute este procedimento em ambos os servidores proxy.

    1. Instale o módulo Apache ssl:

      sudo yum install mod_ssl

    2. Crie o diretório /etc/ssl/private:

      sudo mkdir -p /etc/ssl/private

    3. Copie os arquivos crt e key para os seguintes caminho /etc/ssl/ paths:

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

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

    4. Atualize o tableau.conf existente com as seguintes atualizações:

      • Adicione o bloco de reconfiguração SSL:
        RewriteEngine on
        RewriteCond %{SERVER_NAME} =tableau.example.com
        RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
      • No bloco de reconfiguração SSL, atualize o nome do servidor RewriteCond: adicione seu nome de host público, por exemplo,tableau.example.com
      • Altere <VirtualHost *:80> para <VirtualHost *:443>.
      • Conclua os blocos <VirtualHost *:443> e <Location /> com <IfModule mod_ssl.c> ... </IfModule>.
      • BalancerMember: altere o protocolo de http para https.
      • Adicione os elementos SSL* dentro do bloco <VirtualHost *:443>:
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/serverssl.crt
        SSLCertificateKeyFile /etc/ssl/private/serverssl.key
        SSLProxyEngine on
        SSLProxyVerify none
        SSLProxyCheckPeerName off
        SSLProxyCheckPeerExpire off
      • No elemento LogLevel: adicione ssl:warn .
      • Opcional: se você instalou e configurou um módulo de autenticação, pode ter elementos adicionais no arquivo tableau.conf. Por exemplo, o bloco <Location /> </Location> incluirá elementos.

      Um exemplo de arquivo tableau.conf configurado para SSL é mostrado aqui:

      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. Adicione o arquivo index.html para suprimir os erros 403:

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

      sudo systemctl restart httpd

    Etapa 3: configurar o Tableau Server para SSL externo

    Copie os arquivos serverssl.crt e serverssl.key do host Proxy 1 para o Tableau Server inicial (Nó 1).

    Execute os seguintes comandos no Nó 1:

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

    Etapa 5: configuração de autenticação opcional

    Se você configurou um provedor de identidade externo para o Tableau, provavelmente precisará atualizar as URLs de retorno no painel administrativo do IdP.

    Por exemplo, se você estiver usando um aplicativo de pré-autenticação Okta, precisará atualizar o aplicativo para usar o protocolo HTTPS para a URL do destinatário e a URL de destino.

    Etapa 5: configurar o balanceador de carga AWS para HTTPS

    Se você estiver implantando com o balanceador de carga AWS conforme documentado neste guia, reconfigure o balanceador de carga AWS para enviar tráfego HTTPS para os servidores proxy:

    1. Cancele o registro do grupo de destino HTTP existente:

      Em Grupos de destino, selecione o grupo de destino HTTP que foi configurado para o balanceador de carga, clique em Ações e, em seguida, clique em Registrar e cancelar o registro da instância.

      Na página Registrar e cancelar o registro de destinos, selecione as instâncias que estão configuradas atualmente, clique em Cancelar o registro e em Salvar.

    2. Crie o grupo de destino HTTPS:

      Grupos de destino > Criar grupo de destino

      • Selecione "Instâncias"
      • Insira um nome para o grupo de destino, por exemplo TG-internal-HTTPS
      • Selecione o VPC
      • Protocolo: HTTPS 443
      • 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 EC2 que executam o aplicativo proxy e clique em Adicionar para registrada.
      • Clique em Salvar.
    4. Depois que o grupo de destino é criado, você deve habilitar a aderência:

      • 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.
    5. No balanceador de carga, atualize as regras do ouvinte. Selecione o balanceador de carga que você configurou para esta implantação 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 > Redirecionar para.... Na configuração THEN resultante, especifique HTTPS e a porta 443 e deixe as outras opções com as configurações padrão. Salve a configuração e clique em Atualizar.
      • Para HTTP:443, 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. Na configuração THEN, em Encaminhar para ... altere o grupo de destino para o grupo HTTPS que você acabou de criar. 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 6: verificar SSL

    Verifique a configuração navegando para https://tableau.example.com.

    Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!