Configurer les applications connectées à l’aide de la confiance Oauth 2.0

En tant qu’administrateur de site Tableau Cloud, vous pouvez enregistrer un serveur d’autorisation externe (EAS) de manière à établir une relation de confiance entre votre site Tableau Cloud et le serveur EAS à l’aide du protocole standard Oauth 2.0. En établissant une relation de confiance, vous pouvez :

  • Offrir à vos utilisateurs une expérience d’authentification unique (SSO) pour le contenu Tableau intégré dans vos applications externes par le biais du fournisseur d’identités (IdP) que vous avez déjà configuré pour le site Tableau Cloud
  • Autoriser par programme l’accès à l’API REST de Tableau (et à l’API de métadonnées Tableau à partir Tableau Cloudd’octobre 2023) au nom des utilisateurs à l’aide d’un jeton JSON Web Token (JWT)

Lorsque le contenu Tableau intégré est chargé dans votre application externe, un flux OAuth standard est utilisé. Une fois que tous les utilisateurs se sont correctement connectés à leur IdP, ils sont automatiquement connectés à Tableau Cloud. Suivez les étapes décrites ci-dessous pour enregistrer votre serveur EAS auprès du site Tableau Cloud.

Important :

  • Certaines des procédures de cette rubrique nécessitent une configuration avec des logiciels et services tiers. Nous nous sommes efforcés de vérifier les procédures d’activation de la fonctionnalité EAS sur Tableau Cloud. Toutefois, les logiciels et services tiers peuvent changer ou votre organisation peut être différente. Si vous rencontrez ces problèmes, consultez la documentation du fournisseur tiers pour obtenir des détails concernant la configuration et l’assistance.
  • Pour que le jeton de session soit valide, les horloges de l’application externe et du serveur qui héberge l’application externe doivent être définies sur le temps universel coordonné (UTC). Si l’une ou l’autre des horloges utilise une norme différente, l’application connectée ne sera pas approuvée.

Étape 1 : Avant de commencer

Pour enregistrer un serveur EAS auprès du site Tableau Cloud , vous devez avoir déjà configuré un serveur EAS. En outre, l’EAS doit envoyer un jeton Web JSON (JWT) valide qui contient les revendications enregistrées et l’en-tête répertorié dans le tableau ci-dessous.

RevendicationNomDescription ou valeur requise
« kid »ID de cléRequis (dans l’en-tête) Un identifiant de clé unique du fournisseur d’identité.
« iss »ÉmetteurObligatoire (dans l’en-tête ou comme revendication). URI d’émetteur unique, en HTTPS, qui identifie l’application de connexion de confiance et sa clé de signature.
« alg »AlgorithmeRequis (dans l’en-tête) Algorithme de signature JWT. Les noms d’algorithmes pris en charge sont répertoriés dans la page Class JWSAlgorithm(Le lien s’ouvre dans une nouvelle fenêtre) de la documentation javadoc.io.
« sub »ObjetNom d’utilisateur (adresse de courriel) de l’utilisateur Tableau Cloud authentifié.
« aud »Public

La valeur doit être : "tableau:<site_luid>"

Pour obtenir le LUID du site, vous pouvez utiliser la méthode de connexion de l’API REST Tableau ou suivre les étapes ci-dessous pour copier l’ID du site. Remarque : vous devez enregistrer un serveur EAS à l’aide de la procédure décrite ici avant de pouvoir copier le ID du site.

  1. Sélectionnez Paramètres > Applications connectées, puis sélectionnez l’application connectée au serveur d’autorisation externe.
  2. Cliquez sur le bouton Copier le ID du site.

« exp »Heure d’expiration

Pour être valide, un jeton JWT ne doit pas avoir expiré. Le délai d’expiration (en UTC) du jeton JWT doit être compris dans la période de validité maximale, qui est de 10 minutes.

« jti »Identifiant JWTLa revendication d’ID JWT fournit un identifiant unique pour le jeton JWT et est sensible à la casse.
« scp »Étendue

Pour l’intégration des flux de travail, les valeurs prises en charge incluent :

"tableau:views:embed"
"tableau:views:embed_authoring "
"tableau:metrics:embed" (Retiré en octobre 2023 (Tableau 2023.3))
"tableau:ask_data:embed"(Retiré en février 2024 (Tableau 2024.1))

Remarques :

  • Les valeurs doivent être transmises sous forme de type de liste.
  • Pour tableau:views:embed, la portée respecte les autorisations des utilisateurs déjà configurées dans Tableau Cloud et permet aux utilisateurs d’interagir avec les outils dans la vue intégrée s’ils sont disponibles dans la vue d’origine.
  • Nous recommandons que le code d’intégration exclue le paramètre de la barre d’outils. Pour plus d’informations, consultez Problèmes connus (intégration des flux de travail uniquement) ci-dessous.

Pour les flux de travail d’autorisations API REST , consultez Méthodes d’API REST prenant en charge l’autorisation JWT.

Pour les flux de travail de l’API de métadonnées qui utilisent l’API REST pour l’authentification, la seule étendue prise en charge est tableau:content:read.

https://tableau.com/odaAccès à la demande – réclamation (capacité d’activation)Pour l’intégration des flux de travail uniquement.

La valeur doit être "true" et un ou plusieurs groupes Tableau Cloud doivent être spécifiés (voir la ligne suivante). Pour plus d’informations, consultez la section Accès sur demande (intégration de flux de travail uniquement).

https://tableau.com/groupsAccès à la demande – réclamation (préciser le nom du groupe)Pour l’intégration des flux de travail uniquement.

La valeur doit correspondre au nom d’un ou plusieurs groupes dans Tableau Cloud. Pour plus d’informations, consultez la section Accès sur demande (intégration de flux de travail uniquement).

(Attributs utilisateur)(Valeurs des attributs utilisateur)

Pour l’intégration des flux de travail uniquement.

Vous pouvez inclure des attributs utilisateur dans le JWT. Ensuite, lorsque les fonctions d’attribut utilisateur sont utilisées dans le contenu intégré, Tableau vérifie le contexte de l’utilisateur authentifié et détermine quelles données peuvent être affichées lors de l’exécution.

Remarques :

Remarque : les revendications JWT ci-dessus sont documentées dans la section Noms de revendications enregistrés(Le lien s’ouvre dans une nouvelle fenêtre) de la documentation distribuée par l’organisation IETF (Internet Engineering Task Force).

Étape 2 : Enregistrer votre serveur EAS auprès de Tableau Cloud

En enregistrant votre serveur EAS auprès de Tableau Cloud, vous établissez une relation de confiance entre le serveur EAS et votre site Tableau Cloud. Cela signifie que lorsque les utilisateurs accèdent au contenu Tableau intégré dans votre application externe, ils sont redirigés de manière à s’authentifier auprès du fournisseur d’identités. L’EAS génère le jeton d’authentification, qui est transmis à Tableau Cloud pour vérification. Une fois la relation de confiance vérifiée, l’accès au contenu intégré est accordé aux utilisateurs.

Remarque : certains EAS prennent en charge l’option d’affichage d’une boîte de dialogue de consentement qui requiert l’approbation des utilisateurs pour que l’application accède au contenu Tableau. Pour garantir la meilleure expérience à vos utilisateurs, nous vous recommandons de configurer votre EAS de manière à ce qu’il accepte automatiquement la demande de l’application externe au nom des utilisateurs.

  1. En tant qu’administrateur de site, connectez-vous à Tableau Cloud.

  2. Dans le volet gauche, sélectionnez Paramètres > Applications connectées.

  3. Cliquez sur la flèche déroulante du bouton Nouvelle application connectée et sélectionnez Confiance Oauth 2.0.

  4. Dans la boîte de dialogue Créer une application connectée, effectuez l’une des opérations suivantes :
    1. Dans la zone de texte Nom de l’application connectée, saisissez un nom pour l’application connectée.

    2. Dans la zone de texte URL de l’émetteur, collez l’URL du serveur EAS.

    3. Sélectionnez l’option Activer l’application connectée. Pour des raisons de sécurité, une application connectée est désactivée par défaut lors de sa création.

    4. Une fois terminé, cliquez sur le bouton Créer.

  5. Une fois l’application connectée créée, copiez l’ID de site de l’application connectée. L’ID de site est utilisé pour la revendication « aud » (Audience) du JWT décrite à l’étape 1 ci-dessus.

Étape 3 : Étapes suivantes

d’intégration des flux de travail

Après avoir configuré votre site Tableau Cloud de manière à utiliser le serveur EAS, vous devez ajouter le code d’intégration à votre application externe. Assurez-vous d’inclure le jeton JWT valide généré par votre EAS, tel que décrit à l étape 1, dans le composant Web que votre application externe appelle.

Pour plus d’informations sur l’intégration de contenu Tableau, consultez l’un des éléments suivants ou les deux :

Remarque : pour que les utilisateurs s’authentifient avec succès lorsqu’ils accèdent au contenu intégré, leurs navigateurs doivent être configurés pour autoriser les témoins tiers.

Contrôler où le contenu peut être intégré à l’aide de la liste d’autorisation de domaine pour l’intégration

À partir de juin 2023 (Tableau 2023.2), vous et vos utilisateurs pouvez contrôler si le contenu Tableau peut être intégré sans restriction ou limité à certains domaines à l’aide de la méthode Mettre à jour les paramètres d’intégration pour le site dans l’API REST de Tableau.

Par défaut, le paramètre de site unrestrictedEmbedding pour l’intégration est défini sur true pour permettre une intégration sans restriction. Vous et vos utilisateurs pouvez également définir le paramètre sur false et spécifiez les domaines dans lesquels le contenu Tableau des applications externes peut être intégré à l’aide du paramètre allowList.

Pour plus d’informations, consultez l’un des articles suivants ou les deux :

Pour les flux de travail d’autorisations API REST

Une fois le jeton JWT configuré, vous devez ajouter le JWT valide à la demande de connexion API REST pour obtenir un accès autorisé. Pour plus d’informations, consultez la section Étendues d’accès des applications connectées.

Pour les flux de travail d’API de métadonnées

Une fois le jeton JWT configuré, vous devez ajouter le JWT valide à la demande de connexion API REST. Pour plus d’informations, consultez la section Étendues d’accès des applications connectées.

Accès sur demande (intégration de flux de travail uniquement)

À partir d’octobre 2023, si votre site dispose d’une licence avec le modèle d’analytique embarquée(Le lien s’ouvre dans une nouvelle fenêtre) basée sur l’utilisation, vous pouvez étendre l’accès à votre contenu Tableau intégré à davantage d’utilisateurs grâce à l’accès sur demande. Grâce à l’accès sur demande, vous permettez à vos utilisateurs d’interagir avec le contenu Tableau intégré authentifié par le biais de votre application connectée, sans avoir besoin de provisionner ces utilisateurs dans votre site Tableau Cloud. L’accès à la demande vous évite d’avoir à ajouter et à gérer des utilisateurs dans Tableau Cloud pour prendre en charge l’accès au contenu intégré.

Comment fonctionne l’accès sur demande

L’accès au contenu Tableau intégré à l’aide de l’accès à la demande est déterminé par les autorisations au niveau du groupe, soit héritées (par exemple, au niveau du projet), soit directement appliquées au contenu. Les utilisateurs tels que les administrateurs de site, les propriétaires ou dirigeants de projet et les propriétaires de contenu peuvent attribuer des autorisations au niveau du groupe sur le contenu. Lorsque les utilisateurs accèdent au contenu intégré grâce à l’activation de la fonctionnalité d’accès sur demande, Tableau valide que le jeton JWT contient les revendications d’appartenance au groupe correctes avant d’afficher le contenu.

Conditions préalables

Les critères suivants doivent être remplis pour permettre l’accès sur demande au contenu intégré :

  1. Le site est sous licence avec le modèle d’analytique embarquée(Le lien s’ouvre dans une nouvelle fenêtre) basée sur l’utilisation
  2. La fonctionnalité d’accès à la demande est activée pour le groupe
  3. Les autorisations de groupe sont spécifiées pour le contenu Tableau
  4. L’application connectée Tableau est créée
  5. JWT utilisé par l’application connectée inclut les réclamations https://tableau.com/oda et https://tableau.com/groups
  6. Le contenu de Tableau est intégré dans une application externe

Lorsque ces critères sont remplis, vos utilisateurs peuvent interagir avec le contenu Tableau intégré grâce à l’activation de la fonctionnalité d’accès sur demande.

Activer la capacité d’accès à la demande

Pour activer la fonctionnalité d’accès à la demande pour un groupe, lors de la création ou de la modification d’un groupe, vous devez cocher la case Autoriser l’accès à la demande. Pour plus d’informations sur la création de groupes, consultez Créer un groupe et lui ajouter des utilisateurs.

Vous pouvez également activer cette fonctionnalité à l’aide de l’API REST de Tableau. Pour plus d’informations, consultez les méthodes Créer un groupe(Le lien s’ouvre dans une nouvelle fenêtre) et Mettre à jour le groupe(Le lien s’ouvre dans une nouvelle fenêtre) dans l’aide de l’API REST de Tableau.

Fonctionnalités lorsque l’accès à la demande est activé

Les utilisateurs accédant au contenu Tableau intégré disposent des capacités(Le lien s’ouvre dans une nouvelle fenêtre) d’affichage sur le contenu. Les utilisateurs disposent de fonctionnalités d’affichage, quel que soit le modèle sélectionné ou de fonctionnalités personnalisées pouvant être configurées pour le groupe (par exemple, un utilisateur doté du rôle de Viewer ne pourra jamais télécharger une source de données même si cette fonctionnalité lui est explicitement accordée sur une source de données spécifique).

Surveiller l’accès à la demande

Si vous disposez de Tableau Cloud avec Advanced Management(Le lien s’ouvre dans une nouvelle fenêtre), vous pouvez utiliser le fichier journal d’activité pour surveiller l’utilisation de l’accès sur demande. Les événements du fichier journal d’activité qui capturent l’accès sur demande incluent notamment Accéder à la vue et Se connecter. Pour en savoir plus sur ces d’événements, consultez Référence du type d’événement du fichier journal d’activité.

Limites

Étant donné que les flux de travail d’accès sur demande permettent à certains utilisateurs qui accèdent au contenu Tableau intégré d’être anonymes et éphémères sur Tableau Cloud, les fonctionnalités suivantes ne sont pas disponibles pour les utilisateurs qui accèdent au contenu intégré en activant la fonctionnalité d’accès sur demande :

  • Créer des vues personnalisées
  • Partager du contenu à l’aide du bouton de partage du contenu
  • Abonnez-vous au contenu pour recevoir des instantanés d’informations par courrier électronique

Remarque : À partir de février 2024 (Tableau 2024.1), les requêtes d’API Tableau REST peuvent être effectuées en tant qu’utilisateur disposant d’un accès à la demande.

Problèmes connus (intégration des flux de travail uniquement)

Il existe quelques problèmes connus à l’utilisation des applications connectées. Ils seront corrigés dans une future version.

  • Fonctionnalités de la barre d’outils : lorsque le paramètre de barre d’outils est défini pour le contenu intégré, les fonctionnalités de la barre d’outils ne fonctionneront pas toutes. Pour contourner ce problème, nous vous recommandons de masquer le paramètre de la barre d’outils comme dans l’exemple ci-dessous.

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

  • Sources de données publiées : les sources de données publiées définies sur Inviter l’utilisateur pour les informations d’identification de la base de données ne s’afficheront pas. Pour contourner ce problème, si possible, nous recommandons aux propriétaires de sources de données d’intégrer à la place leurs informations d’identification pour la base de données.

Résolution des problèmes

Lorsque le contenu intégré ne s’affiche pas dans votre application externe ou en cas d’échec de l’autorisation API REST de Tableau, vous pouvez utiliser les outils de développement d’un navigateur pour inspecter et identifier les codes d’erreur qui pourraient être associés à la fonctionnalité EAS activée sur votre siteTableau Cloud .

Consultez le tableau ci-dessous pour revoir la description du code d’erreur et la solution possible.

Code d’erreurRésuméDescriptionRésolution ou explication potentielle
5SYSTEM_USER_NOT_FOUNDL’utilisateur de Tableau est introuvablePour résoudre ce problème, vérifiez que la valeur de revendication ’sub’ (sujet) dans le jeton JWT est le nom d’utilisateur (adresse de courriel) de l’utilisateur Tableau Cloud authentifié. Cette valeur est sensible à la casse.
16LOGIN_FAILEDÉchec de la connexionCette erreur est généralement causée par l’un des problèmes de réclamation suivants dans le JWT :
  • La valeur ’exp’ (Temps d’expiration) dépasse la période de validité maximale par défaut. Pour résoudre ce problème, examinez les revendications enregistrées(Le lien s’ouvre dans une nouvelle fenêtre) requises pour un JWT valide et assurez-vous que la valeur correcte ne dépasse pas 10 minutes.
  • La valeur ’sub’ (sujet) appelle un utilisateur inconnu. Pour résoudre ce problème, vérifiez que la valeur ’sub’ est le nom d’utilisateur (adresse de courriel) de l’utilisateur Tableau Cloud authentifié.
67FEATURE_NOT_ENABLEDL’accès à la demande n’est pas pris en chargeL’accès à la demande est disponible uniquement via les sites Tableau Cloud sous licence.
142EXTERNAL_AUTHORIZATION_SERVER_NOT_FOUNDServeur EAS introuvablePour résoudre ce problème, vérifiez que l’émetteur approprié est appelé.
143EXTERNAL_AUTHORIZATION_SERVER_LIMIT_EXCEEDEDLimite de serveurs EAS dépasséeLe site a atteint le nombre maximal autorisé (1) de serveurs d’autorisation externes (EAS) enregistrés.
144INVALID_ISSUER_URLURL de l’émetteur non valideL’URL de l’émetteur n’est pas valide ou l’attribut ’iss’ (émetteur) est absent du jeton JWT.
149EAS_INVALID_JWKS_URIURI JWKS manquantL’URI JWKS n’existe pas dans les métadonnées IdP ou l’URI JWKS n’est pas configuré dans Tableau. Pour résoudre ce problème, configurez un URI JWKS valide.
150EAS_RETRIEVE_JWK_SOURCE_FAILEDÉchec de la récupération de la source de cléPour résoudre ce problème, vérifiez que l’URI JWKS est configuré correctement.
151EAS_RETRIEVE_METADATA_FAILEDÉchec de la récupération des métadonnées à partir de issuerUrlPour résoudre ce problème, vérifiez que l’URI JWKS est configuré correctement.
10081COULD_NOT_RETRIEVE_IDP_METADATAPoint de terminaison de métadonnées EAS manquantPour résoudre ce problème, vérifiez que l’EAS est configuré correctement et que l’émetteur approprié est appelé.
10082AUTHORIZATION_SERVER_ISSUER_NOT_SPECIFIEDÉmetteur manquantPour résoudre ce problème, vérifiez que l’émetteur approprié est appelé.
10083BAD_JWTL’en-tête JWT contient des problèmesLes revendications ’kid’ (ID du secret) ou ’clientId’ (émetteur) sont manquantes dans l’en-tête JWT. Pour résoudre ce problème, assurez-vous que ces informations sont incluses.
10084JWT_PARSE_ERRORJWT contient des problèmesPour résoudre ce problème, vérifiez les éléments suivants :
  • La valeur ’aud’ (audience) référencée dans le jeton JWT utilise la valeur "tableau". Cette valeur est sensible à la casse.
  • Les valeurs ’aud’ (audience) et ’sub’ (sujet) sont incluses dans le jeton JWT.
10085COULD_NOT_FETCH_JWT_KEYSJWT n’a pas pu trouver les clésImpossible de trouver le secret.

Pour résoudre ce problème, vérifiez que l’émetteur approprié est appelé.

10087BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGNProblème avec l’algorithme de signature JWTPour résoudre le problème, vous pouvez supprimer l’algorithme de signature.
10088RSA_KEY_SIZE_INVALIDProblème avec les exigences de signature JWTPour résoudre ce problème, vérifiez auprès de l’EAS ou de l’IdP que le JWT est signé avec une taille de clé RSA de 2048.
10091JTI_ALREADY_USEDJWT unique requisLe JWT a déjà été utilisé dans le processus d’authentification. Pour résoudre ce problème, l’EAS ou l’IdP doit générer un nouveau JWT.
10092NOT_IN_DOMAIN_ALLOW_LISTLe domaine du contenu intégré n’est pas spécifiéPour résoudre ce problème, assurez-vous que le paramètre unrestrictedEmbedding est défini sur true ou que le paramètre domainAllowlist inclut les domaines dans lesquels le contenu Tableau est intégré à l’aide de la méthode Mettre à jour les paramètres d’intégration pour le site(Le lien s’ouvre dans une nouvelle fenêtre) dans l’API REST de Tableau.
10094MISSING_REQUIRED_JTIID JWT manquantPour résoudre ce problème, vérifiez que ’jti’ (ID JWT) est inclus dans le JWT.
10095EXTERNAL_AUTHZ_SERVER_DISABLEDServeur EAS désactivéL’application connectée pour le serveur EAS enregistrée sur le site est désactivée.
10096JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD  La valeur ’exp’ (Temps d’expiration) dépasse la période de validité maximale par défaut. Pour résoudre ce problème, examinez les revendications enregistrées(Le lien s’ouvre dans une nouvelle fenêtre) requises pour un JWT valide et assurez-vous que la valeur correcte ne dépasse pas 10 minutes.
10097SCOPES_MALFORMEDProblèmes au niveau de la revendication relative aux portéesCette erreur peut se produire lorsque la revendication ’scp ’ (portée) ne figure pas dans le jeton JWT ou n’est pas transmise en tant que type de liste. Pour résoudre ce problème, vérifiez que ’scp ’ est inclus dans le jeton JWT et transmis en tant que type de liste. Pour obtenir de l’aide sur la résolution des problèmes d’un jeton JWT, consultez Débogueur(Le lien s’ouvre dans une nouvelle fenêtre) sur le site auth0.
10098JWT_UNSIGNED_OR_ENCRYPTEDLe jeton JWT n’est ni signé ni chiffréTableau ne prend pas en charge un JWT non signé ou chiffré.
10099SCOPES_MISSING_IN_JWTRevendication relative aux portées manquanteLe jeton JWT ne contient pas la revendication ’scp’ (portée) requise. Pour résoudre ce problème, vérifiez que ’scp’ est inclus dans le JWT. Pour obtenir de l’aide sur la résolution des problèmes d’un jeton JWT, consultez Débogueur(Le lien s’ouvre dans une nouvelle fenêtre) sur le site auth0.
10100JTI_PERSISTENCE_FAILEDErreur inattendue liée à l’ID JWTUne erreur inattendue s’est produite au niveau de la revendication ’jti’ (ID JWT). Pour résoudre ce problème, un nouveau ’jti’ doit être généré.
10101EPHEMERAL_USER_LOGIN_FAILED_SITE_NOT_UBP_ENABLEDL’accès à la demande n’est pas pris en chargeLe site ne dispose pas du modèle basé sur l’utilisation de l’analytique embarquée qui est requis pour activer l’accès à la demande. Pour plus d’informations, consultez Comprendre les modèles de licences.
10102EPHÉMERAL_USER_NOT_SUPPORTEDL’accès à la demande n’est pas pris en charge lorsque l’attribut iframe-auth est activéCette erreur peut se produire lorsque l’attribut iframe-auth est activé. Pour résoudre ce problème, vérifiez que l’API Tableau Embedding version 3.6 ou ultérieure est utilisée.
10103JWT_MAX_SIZE_EXCEEDEDJWT dépasse la taille maximaleCette erreur peut se produire lorsque la taille du JWT dépasse 8 000 octets. Pour résoudre ce problème, assurez-vous que seules les revendications nécessaires sont transmises à Tableau Cloud.
Merci de vos commentaires!Votre commentaire s été envoyé avec succès. Merci!