Configurar aplicativos conectados com confiança OAuth 2.0

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

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 inserçã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.

Como os aplicativos conectados do Tableau funcionam com a confiança do OAuth 2.0

A relação de confiança entre seu site do Tableau Server e o aplicativo externo são estabelecidos e verificados por meio de um token de autenticação no padrão JSON Web Token (JWT).

Quando o conteúdo inserido do Tableau é carregado em seu aplicativo externo, o fluxo de código de autorização e o fluxo OAuth são usados. 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

Principais componentes de um aplicativo conectado

Os seguintes componentes do conectado trabalham em conjunto com o JWT em seu aplicativo externo para autenticar usuários e exibir conteúdo inserido.

  • Servidor de autorização externa (EAS): o servidor, normalmente seu IdP, que funciona como a interface entre o usuário e o aplicativo externo. O servidor autentica e autoriza o acesso do usuário ao conteúdo protegido do Tableau.

  • URL do emissor: a URL que identifica exclusivamente a instância do EAS.

Fluxo de trabalho do aplicativo conectado

Inserindo fluxos de trabalho

O diagrama abaixo ilustra como funciona a autenticação entre o servidor de autorização externo (EAS), o aplicativo externo (servidor Web e página da Web) e o aplicativo conectado ao Tableau.

  1. O usuário visita a página da Web: quando um usuário visita o conteúdo inserido em uma página da Web, ela envia uma solicitação GET ao aplicativo externo.

  2. O aplicativo externo redireciona a solicitação para o EAS: o aplicativo externo responde com uma página da Web que redireciona para o servidor de autorização externo (EAS).

  3. O usuário se autentica com o EAS: o usuário autentica e autoriza com o EAS.

  4. O EAS responde à página da Web com código de autorização: o EAS responde à página com um código de autorização e redireciona de volta para a página da Web.

  5. O EAS converte o código de autorização em JWT: A página da Web chama o EAS para converter o código de autorização em um JWT, que a página da Web coloca na URL do conteúdo inserido.

  6. A página da Web solicita conteúdo do Tableau: a página da Web carrega o iFrame e envia uma solicitação GET ao Tableau.

  7. O Tableau valida o token: o Tableau valida o JWT na URL com a assinatura e responde com o conteúdo e respeita os escopos de inserção definidos no JWT.

Criar um aplicativo conectado

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.

https://tableau.com/groupsAssociação ao grupo dinâmicaPara fluxos de trabalho inseridos somente.

O valor deve corresponder ao nome de um ou mais grupos no Tableau Server. Para obter mais informações, consulte a seção Associação dinâmica a grupos (apenas fluxos de trabalho inseridos) abaixo.

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.

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.

Sobre EAS em nível de site

A partir do Tableau Server 2024.2, você pode configurar o EAS no nível do site. Para registrar um EAS no nível do site, os aplicativos conectados devem estar habilitados no Tableau Server Manager (TSM).

Há duas maneiras de registrar o EAS em todo o servidor: usando a interface de usuário da Web do TSM ou usando a CLI do TSM.

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

Opção 1: usar a interface de usuário da Web do TSM

  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. Execute um destes procedimentos:

    • No Tableau Server 2024.2 e posterior, navegue até a página Identidade e acesso do usuário > guia Aplicativos conectados.

    • No Tableau Server 2023.3 e versões anteriores, navegue até a página Identidade e acesso do usuário > guia Servidor de autorização.

  3. Execute um destes procedimentos:
    • No Tableau Server 2024.2 e posterior:

      1. Marque a caixa de seleção Habilitar aplicativos conectados.

      2. Selecione o segundo botão de opção, Permitir aplicativos conectados (configurar no nível do site) e confiança OAuth 2.0 em todo o servidor (configurar abaixo).

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

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

    • No Tableau Server 2023.3 e versões anteriores:

      1. Marque a caixa de seleção Habilitar acesso OAuth para conteúdo inserido.

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

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

  4. 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.

Opção 2: usando a CLI do TSM

  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

A partir do Tableau Server 2024.2, você pode registrar um ou mais EASs para um site. Depois de registar o EAS ao nível do local, a relação de confiança estabelecida aplica-se apenas ao local.

Observação: um pré-requisito para configurar o EAS em nível de site é que os aplicativos conectados estejam habilitados no TSM.

Etapa 1: habilitar aplicativos conectados

  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é a página Identidade e acesso do usuário > guia Aplicativos conectados.

  3. Marque a caixa de seleção Habilitar aplicativos conectados.

  4. Execute um destes procedimentos:

    • Selecione o primeiro botão de opção, Permitir aplicativos conectados (configurar no nível do site) para permitir o registro de EAS apenas no nível do site.

    • (Padrão) Selecione o segundo botão de opção, Permitir aplicativos conectados (configurar no nível do site) e confiança OAuth 2.0 em todo o servidor (configurar abaixo) para permitir o registro de EASs no nível do site e em todo o servidor. Se você escolher esta opção, certifique-se de que a URL do emissor especificado no nível do site seja diferente da URL do emissor em todo o servidor.

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

  6. 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.

Etapa 2: registrar o EAS

  1. Como um administrador do Tableau Server, entre em Tableau Server.

  2. No painel esquerdo, selecione Configurações > Aplicativos conectados.

  3. Clique na seta suspensa do botão Novo aplicativo conectado e selecione OAuth 2.0 Trust.

  4. Na caixa de diálogo Criar aplicativo conectado, faça o seguinte:
    1. Na caixa de texto Nome, insira um nome para o aplicativo conectado.

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

    3. Selecione o Habilitar aplicativo conectado. Por motivos de segurança, um aplicativo conectado é definido como desabilitado por padrão quando criado.

    4. Quando terminar, clique no botão Criar.

  5. Depois que o aplicativo conectado for criado, copie a ID do site do aplicativo conectado. A ID do site é usada para a declaração "aud" (público) do JWT descrita na Etapa 1 acima.

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.

Gerenciar um aplicativo conectado

Associação dinâmica a grupos (apenas fluxos de trabalho inseridos)

A partir de Tableau Server 2024.2, se os aplicativos conectados estiverem configurados e a configuração do recurso estiver habilitada, você poderá controlar dinamicamente a associação ao grupo por meio de declarações personalizadas incluídas no JWT enviado pelo aplicativo externo.

Quando configurado, durante a autenticação do usuário, o aplicativo externo envia o JWT que contém duas declarações personalizadas para associação ao grupo: grupo (https://tableau.com/groups) e nomes de grupos (por exemplo, "Grupo1" e "Grupo2") para inserir o usuário. O Tableau valida o JWT e, em seguida, permite o acesso aos grupos e ao conteúdo cujas permissões dependem desses grupos.

Para obter mais informações, consulte Associação dinâmica a grupos usando asserções.

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.

  • Exibições inseridas em vários sites: no Tableau Server 2023.1 e versões anteriores, alternar entre exibições em sites diferentes no mesmo navegador causa erro 1008: não foi possível buscar o segredo para o aplicativo de conexão. Para contornar esse problema, atualize para o Tableau Server 2023.3 ou posterior.

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!