Configurar aplicativos conectados com confiança OAuth 2.0

Como administrador do site do Tableau Cloud, você pode registrar um ou mais servidores de autorização externo (EASs) para estabelecer uma relação de confiança entre o site do Tableau Cloud 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 Cloud. 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 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 Cloud 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 Cloud. Siga as etapas descritas abaixo para registrar seu EAS com o no seu site Tableau Cloud

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 seu site do Tableau Cloud , 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, no HTTPS, 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.
"sub "AssuntoNome de usuário (endereço de e-mail) do usuário autenticado do Tableau Cloud.
"aud "Público

O valor deve ser: "tableau:<site_luid>"

Para obter o LUID do site, você pode usar o método Entrar da API REST do Tableau ou seguir as etapas abaixo para copiar a ID do site. Observação: você deve registrar um EAS usando o procedimento descrito aqui antes de poder copiar o ID do site.

  1. Selecione Configurações > Aplicativos conectados e, em seguida, selecione o aplicativo conectado ao Servidor de autorização externa.
  2. Clique no botão Copiar ID do site.

"exp "Data de validade

Um 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, que é de 10 minutos.

"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 "
"tableau:metrics:embed" (Removido em outubro de 2023 (Tableau 2023.3))
tableau:ask_data:embed” (Descontinuado em fevereiro de 2024 (Tableau 2024.1))

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 Cloud 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/odaAcesso sob demanda - reivindicação (habilitar capacidade)Para fluxos de trabalho inseridos somente.

O valor deve ser "true", e um ou mais grupos do Tableau Cloud devem ser especificados (consulte a próxima linha). Para obter mais informações, consulte a seção Acesso sob demanda (apenas fluxos de trabalho incorporados) abaixo.

https://tableau.com/groupsAcesso sob demanda – reivindicação (especifique o nome do grupo)Para fluxos de trabalho inseridos somente.

O valor deve corresponder ao nome de um ou mais grupos no Tableau Cloud. Para obter mais informações, consulte a seção Acesso sob demanda (apenas fluxos de trabalho incorporados) abaixo.

Associação ao grupo dinâmicaPara fluxos de trabalho inseridos somente.

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

(Atributos do usuário)(Valores de atributo do usuário)

Para fluxos de trabalho inseridos somente.

Você pode incluir atributos de usuário no JWT. Em seguira, quando as funções de atributo do usuário são usadas no conteúdo inserido, o Tableau verifica o contexto do usuário autenticado e determina quais dados podem ser exibidos em tempo de execução.

Observações:

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 Cloud

Ao registrar o EAS com o Tableau Cloud, você estabelece uma relação de confiança entre o EAS e o seu site do Tableau Cloud . 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 Cloud 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).

  1. Como um administrador de site, entre no Tableau Cloud.

  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 para usar seu site do Tableau Cloud site 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 junho de 2023 (Tableau 2023.2), 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

Acesso sob demanda (apenas fluxos de trabalho incorporados)

A partir de outubro de 2023, se o seu site estiver licenciado com Análise incorporada(O link abre em nova janela), você pode estender o acesso ao conteúdo incorporado do Tableau para mais usuários usando o acesso sob demanda. Com o acesso sob demanda, você permite que seus usuários interajam com o conteúdo incorporado do Tableau autenticado por meio do seu aplicativo conectado sem precisar provisionar esses usuários no seu site do Tableau Cloud. O acesso sob demanda elimina a necessidade de adicionar e gerenciar usuários no Tableau Cloud para oferecer suporte ao acesso ao conteúdo incorporado.

Como funciona o acesso sob demanda

O acesso ao conteúdo incorporado do Tableau usando acesso sob demanda é determinado por permissões em nível de grupo herdadas (por exemplo, em nível de projeto) ou aplicadas diretamente ao conteúdo. Usuários como administradores de sites, proprietários ou líderes de projetos e proprietários de conteúdo podem atribuir permissões em nível de grupo ao conteúdo. Quando os usuários acessam o conteúdo incorporado capacitado pelo recurso de acesso sob demanda, o Tableau valida se o JWT contém as declarações corretas de associação ao grupo antes de exibir o conteúdo.

Pré-requisitos

Os seguintes critérios devem ser atendidos para permitir o acesso sob demanda ao conteúdo incorporado:

  1. O site está licenciado com Análise incorporada(O link abre em nova janela) modelo baseado em uso
  2. O recurso de acesso sob demanda está habilitado para o grupo
  3. As permissões de grupo são especificadas para o conteúdo do Tableau
  4. O aplicativo conectado do Tableau é criado
  5. O JWT usado pelo aplicativo conectado inclui as reivindicações https://tableau.com/oda e https://tableau.com/groups
  6. O conteúdo do Tableau está incorporado em um aplicativo externo

Quando esses critérios forem atendidos, seus usuários poderão interagir com o conteúdo incorporado capacitado pelo recurso de acesso sob demanda do Tableau.

Habilite o recurso de acesso sob demanda

Para ativar o recurso de acesso sob demanda para um grupo, ao criar ou editar um grupo, você deve selecionar a caixa de seleção Permitir acesso sob demanda. Para obter mais informações sobre a criação de grupos, consulte: Criar um grupo e adicionar usuários a ele

Você também pode ativar esse recurso usando a API REST do Tableau. Para obter mais informações, consulte os métodos Criar grupo(O link abre em nova janela) e Atualizar grupo(O link abre em nova janela) na Ajuda da API REST do Tableau.

Recursos quando o acesso sob demanda está ativado

Os usuários que acessam o conteúdo incorporado do Tableau têm recursos(O link abre em nova janela) de Exibição sobre o conteúdo. Os usuários têm recursos de Exibição, independentemente do modelo selecionado ou de recursos personalizados que possam ser configurados para o grupo (por exemplo, um usuário com a função de Viewer nunca poderá fazer download de uma fonte de dados, mesmo que esse recurso seja explicitamente concedido a eles em um fonte de dados específica).

Monitorar o acesso sob demanda

Se você tem o Tableau Cloud com Advanced Management(O link abre em nova janela), pode usar o registro de atividade para monitorar o uso do acesso sob demanda. Os eventos no registro de atividades que capturam o acesso sob demanda incluem, mas não se limitam a exibição de acesso e login. Para obter mais informações sobre esses eventos, consulte Referência do tipo de evento do registro de atividades.

Limitações

Como os fluxos de trabalho de acesso sob demanda permitem que determinados usuários que acessam o conteúdo incorporado do Tableau sejam anônimos e efêmeros no Tableau Cloud, os seguintes recursos não estão disponíveis para usuários com acesso sob demanda Recurso:

  • Criar exibições personalizadas
  • Compartilhe conteúdo usando o botão de compartilhamento de conteúdo
  • Assine o conteúdo para receber instantâneos de informações por e-mail

Observação: a partir de fevereiro de 2024 (Tableau 2024.1), as solicitações da API REST do Tableau poderão ser feitas como um usuário com acesso sob demanda.

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

A partir de Junho de 2024 (Tableau 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://online.tableau.com/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 seu site do Tableau Cloud .

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 TableauPara resolver esse problema, verifique se o valor da declaração 'sub' (Assunto) no JWT é o nome de usuário (endereço de e-mail) do usuário autenticado do Tableau Cloud. 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:
  • 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 não exceda 10 minutos.
  • O 'sub' (Assunto) está chamando um usuário desconhecido. Para resolver esse problema, verifique se o valor 'sub' é o nome de usuário (endereço de e-mail) do usuário autenticado do Tableau Cloud.
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.
142EXTERNAL_AUTHORIZATION_SERVER_NOT_FOUNDEAS não encontradoPara resolver esse problema, verifique se o emissor correto está sendo chamado.
143EXTERNAL_AUTHORIZATION_SERVER_LIMIT_EXCEEDEDLimite de EAS excedidoO site atingiu o número máximo permitido (1) de servidores de autorização externos (EAS) registrados.
144INVALID_ISSUER_URLURL do emissor inválidaA URL do emissor não é válida ou o atributo 'iss' (Emissor) está ausente do JWT.
149EAS_INVALID_JWKS_URIURI JWKS ausenteO URI JWKS não existe nos metadados IdP ou o URI JWKS não está configurado no Tableau. Para resolver esse problema, configure um URI JWKS válido.
150EAS_RETRIEVE_JWK_SOURCE_FAILEDFalha na recuperação da fonte de chavePara resolver esse problema, verifique se o URI do JWKS está configurado corretamente.
151EAS_RETRIEVE_METADATA_FAILEDFalha ao recuperar metadados de issuerUrlPara resolver esse problema, verifique se o URI do JWKS está configurado corretamente.
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.
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.

10087BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGNProblema com o algoritmo de assinatura JWTPara resolver o problema, você pode remover o algoritmo de assinatura.
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.
10095EXTERNAL_AUTHZ_SERVER_DISABLEDEAS desativadoO aplicativo conectado para o EAS registrado no site está desativado.
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 não exceda 10 minutos.
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.
10101EPHEMERAL_USER_LOGIN_FAILED_SITE_NOT_UBP_ENABLEDO acesso sob demanda não é compatívelO site não está licenciado com modelo baseado em uso do Embedded Analytics necessária para permitir o acesso sob demanda. Para obter mais informações, consulte Conheça os modelos de licenças.
10102EPHEMERAL_USER_NOT_SUPPORTEDO acesso sob demanda não é compatível quando o atributo iframe-auth está ativadoEsse erro pode ocorrer quando o atributo iframe-auth está habilitado. Para resolver esse problema, verifique se a API de inserção do Tableau versão 3.6 ou posterior está sendo usada.
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 Cloud.
Agradecemos seu feedback!Seu feedback foi enviado. Obrigado!