Antes de configurar o SAML no Tableau Server, tenha certeza de que o ambiente atende aos requisitos.

Importante: as configurações de SAML, com o IdP e no Tableau Server, diferenciam maiúsculas de minúsculas. Por exemplo, as URLs configurados com o IdP e no Tableau Server devem corresponder exatamente.

Requisitos de certificado e de provedor de identidades (IdP)

Para configurar o Tableau Server para SAML, você precisa do seguinte:

  • Arquivo de certificado. Um arquivo de certificado x509 codificado por PEM com a extensão .crt. Esse arquivo é usado pelo Tableau Server, não pelo IdP. Se você tiver um certificado SSL, é possível, em alguns casos, usar o mesmo certificado com o SAML. Para obter mais informações, consulte Uso do certificado SSL e arquivos-chave para SAML adiante neste artigo.

    O Tableau Server requer um par de chave e certificado para assinar a solicitação enviada ao IdP. Isso reduz a ameaça de um ataque man-in-the-middle, dada a dificuldade de falsificar um pedido assinado. Além disso, o Tableau Server verifica que o AuthNResponse recebe do IdP confiável. O Tableau Server verifica o AuthNResponse usando a assinatura produzida pelo IdP. Os metadados de certificado IdP são fornecidos ao Tableau Server como parte do processo inicial de configuração SAML.

    Os pedidos assinados nem sempre são necessários para todos os IDPs. Por padrão, o Tableau Server requer solicitações assinadas. Recomendamos essa configuração para garantir uma transmissão de comunicação mais segura com o IdP. Trabalhe com sua equipe de IdP para entender se a desativação de solicitações assinadas é necessária. Para desativar as solicitações assinadas consulte Entidade samlSettings.

  • Algoritmo de assinatura. O certificado deve usar um algoritmo de assinatura seguro, por exemplo SHA-256. Se você tentar configurar o Tableau Server para SAML com um certificado que usa hash de assinatura SHA-1, o Tableau Server o rejeitará. Você pode configurar o Tableau Server para aceitar o hash SHA-1 menos seguro definindo a chave de configuração do tsmwgserver.saml.blocklisted_digest_algorithms.

  • Chave RSA e tamanhos de curva ECDSA. O certificado do Tableau Server deve ter uma força de chave RSA de 2048, e o certificado IdP deve ter uma força de chave RSA de 2048 ou um tamanho de curva ECDSA de 256.

    Você pode configurar o Tableau Server para aceitar os tamanhos menos seguros definindo as respectivas chaves de configuração, wgserver.saml.min_allowed.rsa_key_size e wgserver.saml.min_allowed.elliptic_curve_size .

  • Arquivo de chave do certificado. Um arquivo de chave privada RSA ou DSA com a extensão .key. As chaves RSA devem estar no formato PKCS#1ou PKCS#8.

    Os requisitos de proteção de senha são os seguintes:

    • O arquivo-chave RSA PKCS#1 não pode ser protegido por senha.
    • Para usar um arquivo de chave protegido por senha, configure o SAML com um arquivo RSA PKCS#8. Observação: um arquivo PKCS#8 com uma senha nula não é compatível.

    • Os arquivos-chave protegidos por senha não são aceitos em implantações SAML específicas do site.

    Resumo de suporte

    Formato de arquivo-chave Suporte SAML em todo servidor Suporte SAML no nível do site
    PKCS#8 RSA Sim Não
    PKCS#8 (sem senha/senha nula) Não Não
    PKCS#1 RSA Sim Sim
    PKCS#1 RSA (senha) Não Não
    PKCS#1 DSA (senha) Não Não
  • O IdP deve assinar asserções SAML com um algoritmo de assinatura seguro. Por padrão, o Tableau Server rejeitará asserções SAML assinadas com o algoritmo SHA-1. Você pode configurar o Tableau Server para aceitar asserções assinadas com o hash SHA-1 menos seguro definindo o a chave de configuração tsm wgserver.saml.blocklisted_digest_algorithms.

  • Conta de IdP que aceita SAML 2.0 ou posterior: Você precisa de uma conta com um provedor de identidades externo. Alguns exemplos são PingFederate, SiteMinder e Open AM.

  • Provedor IdP compatível com a importação e exportação de metadados XML. Embora um arquivo de metadados criado manualmente possa funcionar, o suporte técnico do Tableau não pode ajudar com a solução de problemas ou a geração do arquivo.

Descarregamento de SSL

Se a sua empresa encerrar conexões SSL do IdP em um servidor proxy, antes de enviar a solicitação de autenticação para o Tableau Server, você precisa fazer a configuração proxy. Nesse cenário, o SSL é "descarregado" no servidor proxy, o que significa que a solicitação https é encerrada no servidor proxy e depois encaminhada ao Tableau Server em http.

O Tableau Server valida a mensagem de resposta SAML retornada do IdP. Como o SSL é descarregado no proxy, o Tableau Server valida com o protocolo recebido (http), mas a resposta do IdP é formatada com https, então a validação falhará a menos que o servidor proxy inclua o cabeçalho X-Forwarded-Proto definido como https. Consulte Configurar o Tableau Server para funcionar com um servidor proxy reverso.

Uso do certificado SSL e arquivos-chave para SAML

Se estiver usando um arquivo de certificado x509 codificado por PEM, é possível usar o mesmo arquivo para SAML. Para SSL, o arquivo de certificado é usado para criptografar tráfego. Para SAML, o certificado é usado para autenticação.

Além dos requisitos listados em Requisitos de certificado e de provedor de identidades (IdP) acima, para usar o mesmo certificado para SSL e SAML, o certificado também deve atender à seguinte condição para trabalhar com o SAML:

  • Confirme se o certificado inclui apenas o que se aplica ao Tableau Server e não nenhum outro certificado ou chave.

    Para fazer isso, é possível criar uma cópia de backup do arquivo de certificado e, em seguida, abri-la em um editor de texto para revisar o conteúdo.

Requisitos de gerenciamento de usuário

Ao habilitar o SAML, a autenticação de usuário é realizada fora do Tableau, pelo IdP. No entanto, o gerenciamento do usuário é realizado por um repositório de identidades: um repositório de identidades externo (Active Directory ou LDAP) ou pelo Tableau Server em um repositório de identidades local. Para obter mais informações sobre o planejamento do gerenciamento do usuário com o Tableau Server, consulte Repositório de identidades.

Ao configurar o repositório de identidades durante a instalação, selecione a opção que reflete como você deseja usar o SAML. Se quiser usar SAML específico ao site, é obrigatória a configuração do SAML em todo o servidor antes da configuração dos sites individuais.

  • Para SAML específico ao site: caso tenha vários sites no Tableau Server e queira configurar cada um deles em um IdP específico ou aplicativo de IdP (ou configurar alguns sites para não usarem SAML), configure o Tableau Server para gerenciar usuários com um repositório de identidades local. Quando o SAML específico ao site é usado, o Tableau Server depende do IdP para a autenticação e não usa senhas.

  • Para SAML de servidor: se você configurar o SAML para servidor com um único IdP, pode configurar o Tableau Server para usar o repositório de identidades local ou um repositório de identidades externo.

  • Autenticação local no servidor e autenticação de SAML específico a cada site. Em um ambiente de vários sites, todos os usuários autenticam por meio de IdP um SAML configurado no nível do site. Nesse cenário, você especifica um IdP SAML padrão em todo o servidor para usuários que pertencem a vários sites. Para configurar esse cenário, o Tableau Server deve ser configurado com um repositório de identidades local.

Observação: a REST API e o tabcmd não oferecem suporte ao logon único (SSO) do SAML. Para fazer logon, especifique o nome e a senha de um usuário criados no servidor. O usuário pode ser gerenciado pelo repositório de identidades local ou por um repositório de identidades externo, dependendo de como configurou o Tableau Server. Para o Tableau Online, é possível especificar as credenciais do TableauID do usuário. As chamadas de REST API ou tabcmd terão as permissões do usuário pelo qual você faz logon.

Notas e requisitos de compatibilidade do SAML

  • Nomes de usuário correspondentes: o nome de usuário armazenado no Tableau Server deve corresponder ao atributo de nome de usuário configurado enviado pelo IdP na asserção SAML. Por padrão, o Tableau Server espera que a declaração de entrada contenha um atributo denominado "nome de usuário" com as informações desse usuário. Por exemplo, se o nome de usuário de Jane Smith estiver armazenado no PingFederate como jsmith, também deverá ser armazenado no Tableau Server como jsmith.

    Ao configurar SAML durante a autenticação

    Se estiver configurando o SAML como parte da instalação inicial do Tableau Server, verifique se a conta que você planeja usar existe no IdP antes de executar a instalação. Durante a instalação do Tableau Server, crie a conta de administrador do servidor.

    Ao executar vários domínios

    Se você usar um Active Directory ou repositório de identidades externo LDAP e estiver em execução em vários domínios (isto é, os usuários pertencem a vários domínios ou a instalação do Tableau Server inclui vários domínios), o IdP deve enviar os atributos do nome e domínio do usuário para um usuário na asserção SAML. Esses atributos de nome de usuário e domínio devem corresponder exatamente ao nome de usuário e domínio armazenados no Tableau Server. Use o formato domain\username para o atributo de usuário e o nome de domínio totalmente qualificado (FQDN) para o atributo de domínio. Se o atributo de domínio não for incluído, o domínio do computador do Tableau Server, também conhecido como domínio padrão, será usado para todos os usuários. Se os usuários não estiverem no mesmo domínio que o computador do Tableau Server, a exclusão do atributo de domínio causará erros de entrada.

    Para obter mais informações, consulte Suporte a vários domínios e a seção "Asserções de correspondência" na guia Usar TSM CLI de Configurar SAML em todo o servidor.

  • Algoritmo de assinatura: o Tableau Server usa o algoritmo de assinatura SHA256.

  • Logout único (SLO): O Tableau Server é compatível com SLO iniciado por provedor de serviços (SP) e SLO iniciado por provedor de identidade (IdP) para SAML em todo o servidor e SAML específico do site.

  • Tipos de autenticação externa: o Tableau Server oferece suporte ao uso de um tipo de autenticação externa ao mesmo tempo.

  • SSL mútua: o Tableau Server não suporta SSL mútuo (SSL bidirecional) e SAML juntos. Caso queira usar o SSL mútuo, configure esta opção no IdP.

  • Codificação de asserções: as asserções devem ser codificadas por UTF-8.

  • Asserções de criptografia e SAML: quando configurado para SAML em todo o servidor, o Tableau Server suporta asserções criptografadas do IdP. As asserções de criptografia são habilitadas pelo certificado que você carrega como parte da configuração inicial para SAML em todo o servidor.

    Quando configurado para SAML específico do site, o Tableau Server não suporta asserções criptografadas do IdP. No entanto, todas as solicitações e respostas da SAML são enviadas pelo HTTPS.

  • Identidade do usuário no Tableau Server para usuários do tabcmd: conforme descrito na seção Requisitos de gerenciamento de usuário acima, para usar o tabcmd, faça logon com um usuário definido no servidor. Não é possível usar contas SAML com o tabcmd.

  • Uso do SAML SSO com Tableau Desktop: por padrão, o Tableau Desktop permite a autenticação SAML iniciada em SP.

    Caso seu IdP não suporte esta funcionalidade, é possível desabilitar o logon com SAML para Tableau Desktop usando o comando a seguir:

    tsm authentication saml configure --desktop-access disable

    Para obter mais informações, consulte tsm authentication saml <commands>.

  • Instalações distribuídas: versões TSM do Tableau Server (2018.2 e mais recente) usam o Serviço de arquivos do cliente para compartilhar arquivos em um cluster de vários nós. Depois de configurar o SAML no nó inicial do cluster, o Serviço de arquivo do cliente distribuirá arquivos de certificado principais para os outros nós.

  • URL de logon: para que os usuários possam fazer logon, o seu IdP deve ser configurado com o endpoint de Login do SAML que envia uma solicitação POST para a seguinte URL:

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

  • URL de logout: para que os usuários possam fazer logout após o logon com o SAML (logout único ou SLO), seu IdP deve ser configurado com um endpoint de Logout do SAML que envia uma solicitação POST para a URL a seguir:

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

    Observação: O Tableau Server é compatível com SLO iniciado por provedor de serviços (SP) e SLO iniciado por provedor de identidade (IdP) para SAML em todo o servidor e SAML específico do site.

  • URL de redirecionamento pós-logout: por padrão, quando um usuário faz logout do Tableau Server, a página de logon é exibida. 

    Para exibir uma página diferente após o logout, use o comando tsm authentication saml configure com a opção -su ou --signout-url.

    • Para especificar uma URL absoluta, use uma URL totalmente qualificada que comece com http:// ou https://, como neste exemplo:

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

    • Para especificar uma URL relativa Tableau Server, use uma página que inicie com um / (slash):

      tsm authentication saml configure -su /ourlogoutpage.html

  • Active Directory Federation Service (AD FS): é necessário configurar o AD FS para retornar atributos adicionais para a autenticação do Tableau com SAML. Os atributos ID do nome e nome de usuário podem ser mapeados no mesmo atributo AD: SAM-Account-Name

  • AuthNContextClassRef : AuthNContextClassRef é um atributo SAML opcional que impõe a validação de certos "contextos" de autenticação em fluxos iniciados pelo IdP. Você pode definir valores separados por vírgulas para este atributo com TSM. Quando esse atributo é definido, o Tableau Server valida que a resposta SAML contém pelo menos um dos valores listados. Se a resposta SAML não contiver um dos valores configurados, a autenticação será rejeitada, mesmo que o usuário tenha autenticado com sucesso com o IdP.

    Deixar esse atributo opcional em branco resultará em comportamento padrão: qualquer resposta SAML autenticada com sucesso resultará em um usuário sendo concedido a uma sessão dentro do Tableau Server.

    Este valor é compatível somente com SAML em todo o servidor. Se o SAML do site estiver configurado, o atributo AuthNContextClassRef será ignorado.

    Para definir esse valor com a interface da Web TSM, consulte Configurar SAML em todo o servidor.

    Para definir esse valor com tsm configuration set, use a chave wgserver.saml.authcontexts, para definir uma lista de valores separada por vírgula.

    Para definir esse valor com um arquivo de configuração JSON, consulte Entidade samlSettings.

Usar logon único SAML em aplicativos de clientes do Tableau

Os usuários do Tableau Server com credenciais do SAML podem fazer logon no servidor do aplicativo do Tableau Desktop ou do Tableau Mobile. Para obter total compatibilidade, é recomendável que a versão do aplicativo do cliente Tableau corresponda à do servidor. Para se conectarem por meio do SAML específico ao site, os usuários devem executar a versão 10.0 ou posterior do aplicativo do cliente do Tableau.

A conexão com o Tableau Server a partir do Tableau Desktop ou do Tableau Mobile usa uma conexão iniciada pelo provedor de serviços (SP).

Redirecionamento de usuários autenticados de volta aos clientes do Tableau

Quando um usuário faz logon no Tableau Server, Tableau Server envia uma solicitação SAML (AuthnRequest) para o IdP, que inclui o valor RelayState do aplicativo do Tableau. Se o usuário fez logon no Tableau Server a partir de um cliente do Tableau, como Tableau Desktop ou Tableau Mobile, é importante que o valor RelayState seja retornado na resposta SAML do IdP para o Tableau.

Quando o valor RelayState não é retornado corretamente neste cenário, o usuário é direcionado para a página inicial do Tableau Server no navegador da Web, em vez de ser redirecionado para o aplicativo no qual fez logon.

Trabalhe com o provedor de identidades e a equipe de TI interna para confirmar se esse valor será incluído como parte da resposta SAML do IdP e mantido por qualquer dispositivo de rede (como um proxy ou balanceador de carga) que reside entre o IdP e Tableau Server.

Requisitos de dados em XML

Como parte da configuração de SAML, há troca de metadados XML entre o Tableau Server e o IdP. Esses metadados XML são usados para verificar as informações de autenticação de um usuário, quando ele inicia o processo de logon no Tableau Server.

O Tableau Server e o IdP geram seus próprios metadados. Cada conjunto de metadados deve conter as informações descritas na seguinte lista. Se um dos conjuntos estiver com informações ausentes, poderão ocorrer erros ao configurar o SAML ou quando os usuários tentarem fazer logon.

  • HTTP POST: o Tableau Server aceita apenas as solicitações HTTP POST para as comunicações do SAML. Redirecionamento HTTP não compatível.

  • Com o atributo Binding definido como HTTP-POST, os metadados do SAML exportados pelo Tableau Server e pelo IdP devem conter os elementos a seguir.

    • O elemento que especifica a URL para a qual o IdP vai redirecionar após a autenticação ser efetuada com êxito. Isso é necessário nos metadados do Provedor de serviços, não nos metadados do Provedor de identidade.

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

      Para o SAML do site, o endpoint Location é /samlservice/public/sp/metadata?alias=<site alias>.

    • O elemento de endpoint de logoff aparece nos metadados do Tableau Server e especifica a URL que o IdP usará para o endpoint de logout do Tableau Server: Se esse elemento não estiver nos metadados IdP, o Tableau Server não poderá negociar um endpoint de logoff com o IdP e o recurso Logoff do SAML não estará disponível no Tableau Server:

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

      Observação: o SLO iniciado por SP é compatível com SAML em todo o servidor e específico do site. Entretanto, o SLO iniciado por IdP não é compatível.

    • Verifique se o XML de IdP inclui um elemento SingleSignOnService, no qual a associação é definida para HTTP-POST, conforme o exemplo a seguir:

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

    • Esse elemento deve aparecer nos metadados IdP e especifica a URL que o Tableau Server usará para o endpoint de logout do IdP.

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

  • Atributo nomeado nome de usuário: configure o IdP para retornar uma asserção que inclua o atributo username no elemento saml:AttributeStatement. O tipo de atributo da asserção deve ser xs:string (não deve ser digitado como xs:any).

    Veja o exemplo a seguir.

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

    Por padrão, o Tableau Server lerá o atributo username no AuthNResponse que retornou do Idp. No entanto, alguns IdPs podem retornar um atributo diferente que é indicado para identificar o usuário.

    Para alterar o atributo SAML que passa o valor username, execute o comando TSM a seguir:

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

    Consulte tsm authentication.

Agradecemos seu feedback!