Registre o EAS para habilitar o SSO para conteúdo inserido

Como administrador do Tableau Server, você pode registrar um servidor de autorização externo (EAS) para estabelecer uma relação de confiança entre o TTableau Server e o EAS usando o protocolo padrão OAuth 2.0. Ao estabelecer uma relação de confiança, você pode:

  • Fornecer aos usuários uma experiência de logon único (SSO) para o conteúdo do Tableau inserido em seus aplicativos externos por meio do provedor de identidade (IdP) que você já configurou para o site do Tableau Server.
  • Autorizar programaticamente o acesso à API REST do Tableau (e à API de metadados a partir de Tableau Server outubro de 2023) em nome dos usuários usando um JSON Web Token (JWT)

Quando o conteúdo inserido do Tableau é carregado em seu aplicativo externo, um fluxo OAuth padrão é usado. Após os usuários fazerem logon com sucesso no IdP, eles entram automaticamente no Tableau Server. Siga as etapas descritas abaixo para registrar seu EAS com o Tableau Server.

Importante:

  • alguns dos procedimentos neste tópico requerem configuração com software e serviços de terceiros. Fizemos o possível para verificar os procedimentos para habilitar o recurso EAS no Tableau Server. No entanto, software e serviços de terceiros podem mudar ou sua organização pode ser diferente. Se você tiver problemas, consulte a documentação de terceiros para obter detalhes e suporte de configuração confiável.
  • Para habilitar a incorporação por meio do EAS, o Tableau Server deve ser configurado para usar SSL para tráfego HTTP.
  • Para que o token de sessão seja válido, os relógios do aplicativo externo e do servidor que hospeda o aplicativo externo devem ser definidos como Tempo Universal Coordenado (UTC). Se um dos relógios usar um padrão diferente, o aplicativo conectado não será confiável.

Etapa 1: antes de começar

Para registrar um EAS com o Tableau Server , você deve ter um EAS já configurado. Além disso, o EAS deve enviar um token da Web JSON (JWT) válido que contenha as declarações registradas e o cabeçalho listado na tabela abaixo.

ReivindicaçãoNomeDescrição ou valor obrigatório
"kid "ID da chaveObrigatório (no cabeçalho). Um identificador de chave exclusivo do provedor de identidade.
"iss "EmissorObrigatório (no cabeçalho ou como uma declaração). URI de emissor exclusivo que identifica o aplicativo de conexão confiável e a chave de assinatura.
"alg "AlgoritmoObrigatório (no cabeçalho). Algoritmo de assinatura JWT. Os nomes de algoritmos compatíveis estão listados na página JWSAlgorithm de classe(O link abre em nova janela) na documentação javadoc.io. O algoritmo de assinatura pode ser configurado usando o comando vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms.
"sub "AssuntoNome de usuário do usuário autenticado do Tableau Server.
"aud "Público

O valor deve ser: "tableau"

"exp "Data de validadeUm JWT válido não deve ter expirado. O tempo de expiração (em UTC) do JWT deve estar dentro do período de validade máximo configurado O período máximo de validade pode ser configurado usando o comando vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes.
"jti "ID do JWTA declaração JWT ID fornece um identificador exclusivo para o JWT e diferencia maiúsculas de minúsculas.
"scp "Escopo

Para fluxos de inserir pastas de trabalho, os valores com suporte incluem:

"tableau:views:embed "
"tableau:views:embed_authoring " (Adicionado no Tableau Server 2022.3)
"tableau:metrics:embed" (Descontinuado no Tableau Server 2023.3)
tableau:ask_data:embed” (Adicionado no Tableau Server 2023.1. Será descontinuado no Tableau Server 2024.2)

Observações:

  • Os valores devem ser passados como um tipo de lista.
  • Para tableau:views:embed, o escopo respeita as permissões dos usuários já configuradas no Tableau Server e permite que eles interajam com as ferramentas na exibição inserida, se disponível na exibição original.
  • Recomendamos que o código de inserção exclua o parâmetro da barra de ferramentas. Para obter mais informações, consulte Problemas conhecidos (somente para inserir fluxos de trabalho) abaixo.

Para fluxos de trabalho de autorização da API REST, consulte Métodos da API REST que dão suporte à autorização JWT.

Para Fluxos de trabalho da API de metadados que usam a API REST para autenticação, o único escopo aceito é tableau:content:read.

Observação: as reivindicações JWT acima estão documentadas na seção Nomes de reivindicações registradas(O link abre em nova janela) na documentação distribuída pela organização Internet Engineering Task Force (IETF).

Etapa 2: registrar o EAS com o Tableau Server

Ao registrar o EAS com o Tableau Server, você estabelece uma relação de confiança entre o EAS e o Tableau Server . Isso significa que, quando os usuários acessam o conteúdo do Tableau inserido no aplicativo externo, eles são redirecionados para se autenticar com o IdP. O EAS gera o token de autenticação, que é passado ao Tableau Server para verificação. Depois que a relação de confiança é verificada, o acesso ao conteúdo inserido é concedido os usuários.

Depois de registrar o EAS, a relação de confiança estabelecida se aplica a todos os sites no Tableau Server.

Observação: alguns EAS são compatíves com a opção de exibir uma caixa de diálogo de consentimento que solicita a aprovação dos usuários para o aplicativo acessar o conteúdo do Tableau. Para garantir a melhor experiência para os usuários, recomendamos que você configure o EAS para consentir automaticamente a solicitação do aplicativo externo em nome dos usuários.

  1. Como administrador do Tableau Server, faça logon na interface do usuário na Web do Tableau Services Manager (TSM). Para obter mais informações, consulte Fazer logon na interface do usuário na Web do Tableau Services Manager.

  2. Navegue até Identidade e acesso do usuário > Servidor de autorização e faça o seguinte:
    1. Marque a caixa de seleção Habilitar acesso OAuth para conteúdo incorporado .

    2. Na caixa de texto URL do emissor, cole a URL do emissor do EAS.

    3. Clique no botão Salvar alterações pendentes.

  3. Quando terminar, faça o seguinte:
    1. No canto superior direito da página, clique no botão Alterações pendentes.

    2. No canto inferior direito da página, clique no botão Aplicar alterações e reiniciar para interromper e reiniciar o Tableau Server.

  1. Abra um prompt de comando como administrador no nó inicial (onde o TSM está instalado) no cluster.
  2. Execute os seguintes comandos:

    tsm configuration set -k vizportal.oauth.external_authorization.enabled -v true
    tsm configuration set -k vizportal.oauth.external_authorization_server.issuer -v "<issuer_url_of_EAS>"
    tsm restart

Etapa 3: próximas etapas

Para inserir fluxos de trabalho

Depois de configurar o Tableau Server EAS, você deve adicionar o código inserido ao aplicativo externo. Certifique-se de incluir o JWT válido gerado por seu EAS, conforme descrito na Etapa 1, no componente da Web chamado pelo aplicativo externo.

Para obter mais informações sobre a inserção de conteúdo do Tableau, consulte um ou ambos os itens a seguir:

Observação: para que os usuários se autentiquem com êxito, ao acessar o conteúdo incorporado, os navegadores devem ser configurados para permitir cookies de terceiros.

Controlar onde o conteúdo pode ser inserido usando a lista de permissões de domínio para inserção

A partir de Tableau Server 2023.3, você e seus usuários podem controlar se o conteúdo do Tableau pode ser inserido sem restrições ou restrito a determinados domínios usando o método Atualizar as configurações de inserção para site na API REST do Tableau.

Por padrão, a configuração do site unrestrictedEmbedding para inserção está definida como true para permitir a inserção irrestrita. Como alternativa, você e seus usuários podem definir a configuração como false e especificar os domínios nos quais o conteúdo do Tableau em aplicativos externos pode ser inserido usando o parâmetro allowList.

Para obter mais informações, consulte uma das seguintes alternativas ou as duas:

Para fluxos de trabalho de autorização da API REST

Após a configuração do JWT, você deve adicionar o JWT válido à solicitação de login da API REST para acesso autorizado. Para obter informações, consulte Escopos de acesso para aplicativos conectados.

Para obter os fluxos de trabalho da API de metadados

Após a configuração do JWT, você deve adicionar o JWT válido à solicitação de login da API REST. Para obter informações, consulte Escopos de acesso para aplicativos conectados.

Problemas conhecidos (somente para inserir fluxos de trabalho)

Existem alguns problemas conhecidos no uso de aplicativos conectados que serão abordados em uma versão futura.

  • Recursos da barra de ferramentas: quando o conteúdo incorporado tem o parâmetro da barra de ferramentas definido, nem todos os recursos da barra de ferramentas funcionarão. Para contornar esse problema, recomendamos que você oculte o parâmetro da barra de ferramentas como no exemplo abaixo.

    <tableau-viz id='tab-viz' src='https://<your_server>/t/<your_site>/...'
    	toolbar='hidden'>
    </tableau-viz>

  • Fontes de dados publicadas: as fontes de dados publicadas definidas como Solicitar usuário, para obter credenciais do banco de dados, não serão exibidas. Para contornar esse problema, se possível, recomendamos que os proprietários da fonte de dados incorporem suas credenciais de banco de dados.

Solução de problemas

Quando o conteúdo inserido não consegue ser exibido em seu aplicativo externo ou a autorização da API REST do Tableau falha, você pode usar as ferramentas de desenvolvedor de um navegador, para inspecionar e identificar códigos de erro que podem estar associados com o recurso EAS habilitado no Tableau Server .

Consulte a tabela abaixo para revisar a descrição do código de erro e a resolução potencial.

Código de erroResumoDescriçãoResolução ou explicação potencial
5SYSTEM_USER_NOT_FOUNDNão foi possível encontrar o usuário do Tableau
Para resolver esse problema, verifique se o valor da declaração 'sub' (Assunto) no JWT é "nome de usuário" para o Tableau Server autenticado. Este valor diferencia maiúsculas de minúsculas.
16LOGIN_FAILEDFalha no logonEsse erro normalmente é causado por um dos seguintes problemas de reivindicação no JWT:
67FEATURE_NOT_ENABLEDO acesso sob demanda não é compatívelO acesso sob demanda está disponível somente por meio de sites licenciados do Tableau Cloud.
10081COULD_NOT_RETRIEVE_IDP_METADATAEndpoint de metadados EAS ausentePara resolver esse problema, verifique se o EAS está configurado corretamente e se o emissor correto está sendo chamado.
10082AUTHORIZATION_SERVER_ISSUER_NOT_SPECIFIEDEmissor ausentePara resolver esse problema, verifique se o emissor correto está sendo chamado. Para alterar a URL do emissor, você pode usar o comando vizportal.oauth.external_authorization_server.issuer
10083BAD_JWTO cabeçalho JWT contém problemasAs declarações de 'kid’ (ID secreta) ou 'clientId' (Emissor) estão faltando no cabeçalho JWT. Para resolver esse problema, certifique-se de que essas informações estejam incluídas.
10084JWT_PARSE_ERRORJWT contém problemasPara resolver o problema, verifique o seguinte:
  • O valor 'aud' (Público) referenciado no JWT usa o valor "tableau". Este valor diferencia maiúsculas de minúsculas.
  • O 'aud' (Público) e 'sub' (Assunto) estão incluídos no JWT.
10085COULD_NOT_FETCH_JWT_KEYSO JWT não conseguiu encontrar as chavesNão foi possível encontrar o segredo.

Para resolver esse problema, verifique se o emissor correto está sendo chamado. Para alterar a URL do emissor, você pode usar o comando vizportal.oauth.external_authorization_server.issuer

10087BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGNProblema com o algoritmo de assinatura JWTPara resolver o problema, você pode remover o algoritmo de assinatura. Para obter mais informações, consulte vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms.
10088RSA_KEY_SIZE_INVALIDProblema com requisitos de assinatura JWTPara resolver esse problema, verifique com o EAS ou IdP se o JWT está sendo assinado com um tamanho de chave RSA de 2048.
10091JTI_ALREADY_USEDJWT exclusivo necessárioO JWT já foi usado no processo de autenticação. Para resolver esse problema, o EAS ou IdP deve gerar um novo JWT.
10092NOT_IN_DOMAIN_ALLOW_LISTO domínio do conteúdo inserido não foi especificadoPara resolver esse problema, verifique se a configuração unrestrictedEmbedding está definida como true ou se o parâmetro domainAllowlist inclui os domínios nos quais o conteúdo do Tableau está inserido usando o método Atualizar as configurações de inserção para site(O link abre em nova janela) na API REST do Tableau.
10094MISSING_REQUIRED_JTIID do JWT ausentePara resolver esse problema, verifique se o 'jti' (ID do JWT) está incluído no JWT.
10096JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD O 'exp' (Tempo de expiração) excede o período de validade máximo padrão. Para resolver esse problema, analise as reivindicações registradas(O link abre em nova janela) necessárias para um JWT válido e certifique-se de que o valor correto seja usado. Para alterar o período máximo de validade, você pode usar o comando vizportal.oauth.external_authorization_server.max_expiration_period_in_minutes
10097SCOPES_MALFORMEDProblemas com a reivindicação de escoposEsse erro pode ocorrer quando o 'scp' (Escopo) está faltando no JWT ou não foi passado como um tipo de lista. Para resolver esse problema, verifique 'scp' é incluído no JWT e passado como um tipo de lista. Para obter ajuda na solução de problemas com um JWT, consulte Depurador(O link abre em nova janela) no site auth0.
10098JWT_UNSIGNED_OR_ENCRYPTEDJWT não está assinado ou criptografadoO Tableau não oferece suporte a JWT não assinado ou criptografado.
10099SCOPES_MISSING_IN_JWTDeclaração de escopos ausenteO JWT não tem a declaração 'scp' (Escopo) necessária. Para resolver esse problema, verifique se o 'scp' está incluído no JWT. Para obter ajuda na solução de problemas com um JWT, consulte Depurador(O link abre em nova janela) no site auth0.
10100JTI_PERSISTENCE_FAILEDErro inesperado de ID JWTHouve um erro inesperado com o 'jti' (ID JWT). Para resolver esse problema, um novo JWT com um novo 'jti’ deve ser gerado.
10103JWT_MAX_SIZE_EXCEEDEDJWT excede o tamanho máximoEsse erro pode ocorrer quando o tamanho do JWT excede 8.000 bytes. Para resolver esse problema, certifique-se de que apenas as declarações necessárias estejam sendo passadas para Tableau Server.
Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!