Configurer les applications connectées avec OAuth 2.0 Trust

En tant qu’administrateur de site Tableau Cloud, vous pouvez enregistrer un serveur d’autorisation externe (EAS) pour établir une relation de confiance entre votre Tableau Cloud et EAS en utilisant le protocole de la norme OAuth 2.0. En établissant une relation de confiance, vous pouvez :

  • Fournir à vos utilisateurs une expérience d’authentification unique (SSO) pour le contenu Tableau intégré dans vos applications externes via le fournisseur d’identité (IdP) que vous avez déjà configuré pour votre site Tableau Cloud
  • Autoriser par programme l’accès à l’API REST de Tableau (et l’API Metadata depuis Tableau Cloud d’octobre 2023) pour le compte des utilisateurs à l’aide d’un jeton Web JSON (JWT)

Lorsque le contenu Tableau intégré est chargé dans votre application externe, un flux OAuth standard est utilisé. Après s’être correctement authentifiés auprès de leur IdP, les utilisateurs sont automatiquement authentifiés auprès de Tableau Cloud. Suivez les étapes décrites ci-dessous pour enregistrer votre EAS auprès de votre site Tableau Cloud.

Important :

  • certaines des procédures décrites dans cette rubrique nécessitent une configuration avec des logiciels et des services tiers. Nous avons tout mis en œuvre pour vérifier les procédures permettant d’activer la fonctionnalité EAS sur Tableau Cloud. Cependant, les logiciels et services tiers peuvent changer ou votre entreprise peut être différente. En cas de problèmes, veuillez vous référer à la documentation du fournisseur tiers pour obtenir de l’aide et connaître les détails de configuration qui font autorité.
  • Pour que le jeton de session soit valide, les horloges de l’application externe et du serveur hébergeant 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 EAS avec votre site Tableau Cloud, vous devez avoir déjà configuré un EAS. En outre, l’EAS doit envoyer un jeton Web JSON (JWT) valide contenant les revendications enregistrées et l’en-tête figurant dans le tableau ci-dessous.

RevendicationNomDescription ou valeur requise
"kid"ID de cléObligatoire (dans l’en-tête). Un identifiant de clé unique du fournisseur d’identité.
"iss"ÉmetteurObligatoire (dans l’en-tête ou en tant que revendication). URI d’émetteur unique, dans HTTPS, qui identifie l’application de connexion de confiance et sa clé de signature.
"alg"AlgorithmeObligatoire (dans l’en-tête). Algorithme de signature JWT. Les noms des 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"SujetNom d’utilisateur (adresse e-mail) de l’utilisateur Tableau Cloud authentifié.
"aud"Audience

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 de Tableau ou suivre les étapes ci-dessous pour copier le LUID du site. Remarque : vous devez enregistrer un EAS en suivant 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"Date d’expiration

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

"jti"ID JWTLa demande d’ID JWT fournit un identifiant unique pour le jeton JWT et est sensible à la casse.
"scp"Portée

Pour l’intégration de workflows, les valeurs prises en charge incluent :

"tableau:views:embed"
"tableau:views:embed_authoring"
"tableau:metrics:embed" (supprimé en octobre 2023 (Tableau 2023.3))
« tableau:ask_data:embed » (Supprimé 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 utilisateur 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 workflows uniquement) ci-dessous.

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

Pour les workflows de l’API Metadata qui utilisent l’API REST pour l’authentification, la seule portée prise en charge est tableau:content:read.

https://tableau.com/odaAccès à la demande – revendication (activer la capacité)Pour intégrer des workflows 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 à la demande (intégration de workflows uniquement) ci-dessous.

https://tableau.com/groupsAccès à la demande – revendication (préciser le nom du groupe)Pour intégrer des workflows uniquement.

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

(Attributs utilisateur)(Valeurs des attributs utilisateur)

Pour intégrer des workflows 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 les données qui 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) dans la documentation distribuée par l’organisation Internet Engineering Task Force (IETF).

Étape 2 : enregistrer votre EAS avec Tableau Cloud

En enregistrant votre EAS auprès de Tableau Cloud, vous établissez une relation de confiance entre l’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 pour s’authentifier auprès de l’IdP. 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’afficher une boîte de dialogue de consentement qui demande 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 pour qu’il consente automatiquement à la demande d’application externe au nom des utilisateurs.

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

  2. Dans le volet de 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 OAuth 2.0 Trust.

  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, saisissez un nom pour l’application connectée.

    2. Dans la zone de texte URL de l’émetteur, collez l’URL de l’émetteur de l’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

Pour intégrer des workflows

Après avoir configuré votre site Tableau Cloud de manière à utiliser votre 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, comme décrit à l’Étape 1, dans le composant Web appelé par votre application externe.

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 de manière à autoriser les cookies tiers.

Contrôler où le contenu peut être intégré à l’aide de la liste de domaines autorisés pour l’intégration

Depuis juin 2023 (Tableau 2023.2), vous-même 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. Sinon, vous pouvez également définir le paramètre sur false et spécifie 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 :

Pour les workflows d’autorisation de l’API REST

Une fois le jeton JWT configuré, vous devez ajouter le jeton JWT valide à la demande de connexion à l’API REST pour un accès autorisé. Pour plus d’informations, voir Portées d’accès pour les applications connectées.

Pour les workflows de l’API Metadata

Une fois le jeton JWT configuré, vous devez ajouter le jeton JWT valide à la demande de connexion de l’API REST. Pour plus d’informations, voir Portées d’accès pour les applications connectées.

Accès à la demande (intégration de workflows uniquement)

À partir d’octobre 2023, si votre site dispose d’un modèle de licence Analytique embarquée(Le lien s’ouvre dans une nouvelle fenêtre) basé sur l’utilisation, vous pouvez étendre l’accès à votre contenu Tableau intégré à davantage d’utilisateurs grâce à l’accès à la demande. Avec l’accès à la demande, vous permettez à vos utilisateurs d’interagir avec le contenu Tableau intégré authentifié via 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é.

Fonctionnement de l’accès à la 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 chefs 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é activé via la fonction d’accès à la demande, Tableau vérifie 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 à la demande au contenu intégré :

  1. Le site utilise un modèle de licence Analytique embarquée(Le lien s’ouvre dans une nouvelle fenêtre) basé 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. Le jeton JWT utilisé par l’application connectée inclut les revendications https://tableau.com/oda et https://tableau.com/groups
  6. Le contenu Tableau est intégré dans une application externe

Lorsque ces critères sont remplis, vos utilisateurs peuvent interagir avec le contenu Tableau intégré qui est activé via la fonction d’accès à la demande.

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

Si vous souhaitez 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 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 de fonctionnalité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 les fonctionnalités personnalisées éventuellement configurées pour le groupe (par exemple, un utilisateur doté du rôle Viewer ne pourra jamais télécharger une source de données même si cette fonctionnalité lui est explicitement accordée sur un 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 journal d’activité pour surveiller l’utilisation de l’accès à la demande. Les événements du journal d’activité qui capturent l’accès à la demande incluent, sans s’y limiter, l’accès aux vues et la connexion. Pour plus d’informations sur ces événements, consultez Référence du type d’événement du journal d’activité.

Limites

Étant donné que le workflow d’accès à la demande permet à certains utilisateurs accédant 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 à un contenu intégré via la fonction d’accès à la demande :

  • Créer des vues personnalisées
  • Partager un contenu à l’aide du bouton de partage de contenu
  • S’abonner à un contenu pour recevoir des instantanés d’informations par e-mail

Note: À 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 workflows uniquement)

Il existe quelques problèmes connus liés à l’utilisation d’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 personnalisée ou l’API REST de Tableau, vous pouvez utiliser les outils de développement d’un navigateur pour inspecter et identifier les codes d’erreur associés à la fonctionnalité EAS activée sur votre site Tableau Cloud.

Reportez-vous au tableau ci-dessous pour consulter la description du code d’erreur et la résolution potentielle.

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 e-mail) 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' (délai d’expiration) excède la période de validité maximum 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 e-mail) 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_FOUNDEAS introuvablePour résoudre ce problème, vérifiez que l’émetteur approprié est appelé.
143EXTERNAL_AUTHORIZATION_SERVER_LIMIT_EXCEEDEDLimite EAS dépasséeLe site a atteint le nombre maximal autorisé (1) de serveurs d’autorisation externes enregistrés (EAS).
144INVALID_ISSUER_URLURL de l’émetteur non valideL’ URL de l’émetteur n’est pas valide ou il manque l’attribut 'iss' (émetteur) dans le 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 correctement configuré.
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 correctement configuré.
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èmesIl manque les revendications 'kid' (ID du secret) ou 'clientId' (émetteur) 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 le problème, vérifiez les points 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 jeton JWT.
10095EXTERNAL_AUTHZ_SERVER_DISABLEDEAS désactivéL’application connectée pour l’EAS enregistrée sur le site est désactivée.
10096JWT_EXPIRATION_EXCEEDS_CONFIGURED_EXPIRATION_PERIOD  La valeur 'exp' (délai d’expiration) excède la période de validité maximum 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 avec la revendication d’étendueCette erreur peut se produire lorsque la revendication 'scp' (étendue) est manquante 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 le dépannage 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 les jetons JWT non signés ou chiffrés.
10099SCOPES_MISSING_IN_JWTRéclamation relative aux étendues manquantesLe JWT ne contient pas la réclamation 'scp' (étendue) requise. Pour résoudre ce problème, vérifiez que 'scp' est inclus dans le jeton JWT. Pour obtenir de l’aide sur le dépannage d’un jeton JWT, consultez Débogueur(Le lien s’ouvre dans une nouvelle fenêtre) sur le site auth0.
10100JTI_PERSISTENCE_FAILEDErreur d’ID JWT inattendueUne erreur inattendue s’est produite avec 'jti' (ID JWT). Pour résoudre ce problème, un nouveau JWT avec 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 de la licence basée sur l’utilisation pour l’Analytique embarquée, or ce modèle est requis pour activer l’accès à la demande. Pour plus d’informations, voir Comprendre les modèles de licences.
10102EPHEMERAL_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 !Avis correctement envoyé. Merci