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

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

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 Server. 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 activer l’intégration via EAS, Tableau Server doit être configuré pour utiliser SSL pour le trafic HTTP.
  • 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.

Comment fonctionnent les applications connectées à Tableau avec la confiance OAuth 2.0

La relation de confiance entre votre site Tableau Server et l’application externe est établie et vérifiée au moyen d’un jeton d’authentification selon la norme JSON Web Token (JWT).

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

Composants clés d’une application connectée

Les composants suivants de l’application connectée fonctionnent avec le jeton JWT dans votre application externe pour authentifier les utilisateurs et afficher le contenu intégré.

  • Serveur d’autorisation externe (EAS) : Le serveur, généralement votre fournisseur d’identité, qui sert d’interface entre l’utilisateur et l’application externe. Le serveur authentifie et autorise l’accès des utilisateurs au contenu Tableau protégé.

  • URL de l’émetteur : L’URL qui identifie de manière unique l’instance EAS.

Flux de travail de l’application connectée

Intégration des flux de travail

Le schéma ci-dessous illustre le fonctionnement de l’authentification entre votre serveur d’autorisation externe (EAS), l’application externe (serveur Web et page Web) et l’application connectée à Tableau.

  1. L’utilisateur visite la page Web : Lorsqu’un utilisateur visite le contenu intégré sur une page Web, la page Web envoie une requête GET à l’application externe.

  2. L’application externe redirige la requête vers EAS : L’application externe renvoie une page Web qui redirige vers le serveur d’autorisation externe (EAS).

  3. L’utilisateur s’authentifie auprès du serveur EAS : L’utilisateur s’authentifie auprès du serveur EAS et obtient l’autorisation.

  4. EAS renvoie la page Web avec le code d’autorisation : Le serveur EAS renvoie la page avec un code d’autorisation et redirige vers la page Web.

  5. EAS convertit le code d’autorisation en JWT : La page Web invite le serveur EAS à convertir le code d’autorisation en JWT, que la page Web insère dans l’URL du contenu intégré.

  6. La page Web demande du contenu à Tableau : La page Web charge l’iFrame et envoie une requête GET à Tableau.

  7. Tableau valide le jeton : Tableau valide et signe le JWT dans l’URL et renvoie le contenu, en respectant les étendues d’intégration définies dans le JWT.

Créer une application connectée

Étape 1 : Avant de commencer

Pour enregistrer un serveur EAS auprès du site Tableau Server , 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 uniquequi 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. L’algorithme de signature peut être configuré à l’aide de la commande tsm vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms.
« sub »ObjetNom d’utilisateur de l’utilisateur Tableau Server authentifié.
« aud »Public

La valeur doit être : "tableau"

« exp »Heure d’expirationPour ê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 configurée. La période de validité maximale peut être configurée à l’aide de la commande vizportal.oauth.external_authorization_server.max_expiration_period_in_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 " (ajouté dans Tableau Server 2022.3)
"tableau:metrics:embed" (Retiré de Tableau Server 2023.3)
"tableau:ask_data:embed"(Ajouté dans Tableau Server 2023.1. Sera retiré dans Tableau Server 2024.2)

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 Server 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/groupsAppartenance aux groupes dynamiquesPour l’intégration des flux de travail uniquement.

La valeur doit correspondre au nom d’un ou de plusieurs groupes dans Tableau Server. Pour plus d’informations, consultez la section Contrôle dynamique des membres de groupes (intégration des flux de travail uniquement) ci-dessous.

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 Server

En enregistrant votre serveur EAS auprès de Tableau Server, vous établissez une relation de confiance entre le serveur EAS et site Tableau Server. 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 Server 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.

À propos du serveur EAS au niveau du site

À compter de Tableau Server 2024.2, vous pouvez configurer un server EAS au niveau du site. Pour enregistrer un serveur EAS au niveau du site, les applications connectées doivent être activées dans Tableau Server Manager (TSM).

Le serveur EAS à l’échelle du serveur peut être enregistré en utilisant l’interface Web de TSM ou en utilisant l’interface en ligne de commande de TSM.

Après avoir enregistré l’EAS, la relation de confiance établie s’applique à tous les sites sur Tableau Server.

Option 1: Utiliser l’interface Web de TSM

  1. Connectez-vous à l’interface utilisateur Web Tableau Services Manager (TSM) en tant qu’administrateur Tableau Server. Pour plus d’informations, consultez Se connecter à l’interface utilisateur Web Tableau Services Manager.

  2. Effectuez l’une des actions suivantes :

    • Dans Tableau Server 2024.2 et les versions ultérieures, accédez à la page Identité de l’utilisateur et accès, puis sélectionnez l’onglet Applications connectées.

    • Dans Tableau Server 2023.3 et les versions antérieures, accédez à la page Identité de l’utilisateur et accès, puis sélectionnez l’onglet Serveur d’autorisation.

  3. Effectuez l’une des actions suivantes :
    • Dans Tableau Server 2024.2 et les versions ultérieures :

      1. Cochez la case Activer les applications connectées.

      2. Cochez la deuxième case d’option, Autoriser les applications connectées (configurer au niveau du site ) et la confiance Oauth 2.0 à l’échelle du serveur (configurer sous).

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

      4. Cliquez sur le bouton Enregistrer les modifications en attente.

    • Dans Tableau Server 2023.3 et versions antérieures :

      1. Cochez la case Activer l’accès OAuth pour le contenu intégré.

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

      3. Cliquez sur le bouton Enregistrer les modifications en attente.

  4. Lorsque vous avez terminé, procédez comme suit :
    1. Dans le coin supérieur droit de la page, cliquez sur le bouton Modifications en attente.

    2. Dans le coin inférieur droit de la page, cliquez sur le bouton Appliquer les modifications et redémarrer pour arrêter et redémarrer Tableau Server.

Option 2: Utiliser l’interface en ligne de commande de TSM

  1. Ouvrez une invite de commande en tant qu’administrateur sur le nœud initial (le nœud sur lequel TSM est installé) du groupement.
  2. Exécutez les commandes suivantes :

    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

À compter de Tableau Server 2024.2, vous pouvez enregistrer un ou plusieurs serveurs EAS pour un site. Après avoir enregistré l’EAS au niveau du site, la relation de confiance établie s’applique uniquement au site.

Remarque : Pour configurer l’EAS au niveau du site, il faut que les applications connectées soient activées dans TSM.

Étape 1 : Activer les applications connectées

  1. Connectez-vous à l’interface utilisateur Web Tableau Services Manager (TSM) en tant qu’administrateur Tableau Server. Pour plus d’informations, consultez Se connecter à l’interface utilisateur Web Tableau Services Manager.

  2. Accédez à la page Identité de l’utilisateur et accès, puis sélectionnez l’onglet Applications connectées.

  3. Cochez la case Activer les applications connectées.

  4. Effectuez l’une des actions suivantes :

    • Cochez la première case d’option, Autoriser les applications connectées (configurer au niveau du site) pour enregistrer les serveurs EAS au niveau du site uniquement.

    • (Par défaut) Cochez la deuxième case d’option, Autoriser les applications connectées (configurer au niveau du site) et la confiance Oauth 2.0 à l’échelle du serveur (configurer sous) pour enregistrer les serveurs EAS à la fois au niveau du site et à l’échelle du serveur. Si vous cochez cette option, assurez-vous que l’URL de l’émetteur spécifiée au niveau du site diffère de l’URL de l’émetteur spécifiée à l’échelle du serveur.

  5. Cliquez sur le bouton Enregistrer les modifications en attente.

  6. Lorsque vous avez terminé, procédez comme suit :
    1. Dans le coin supérieur droit de la page, cliquez sur le bouton Modifications en attente.

    2. Dans le coin inférieur droit de la page, cliquez sur le bouton Appliquer les modifications et redémarrer pour arrêter et redémarrer Tableau Server.

Étape 2 : Enregistrer l’EAS

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

  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, suivez la procédure ci-dessous :
    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 Server 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 Tableau Server 2023.3, 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.

Gérer une application connectée

Contrôle dynamique des membres de groupes (intégration des flux de travail uniquement)

À compter de Tableau Serveur 2024.2, si des applications connectées sont configurées et le paramètre de la fonctionnalité est activé, vous pouvez contrôler dynamiquement les membres du groupe au moyen de revendications personnalisées incluses dans le JWT envoyé par l’application externe.

Une fois configuré, lors de l’authentification de l’utilisateur, l’application externe envoie le JWT qui contient deux revendications personnalisées des membres du groupe : le groupe ((https://tableau.com/groups) et des noms de groupe (par exemple, « Group1 » et « Group2 ») pour affirmer l’appartenance de l’utilisateur à ce groupe. Tableau valide le JWT et autorise ensuite l’accès aux groupes et au contenu dont les autorisations dépendent de ces groupes.

Pour plus d’informations, consultez Contrôle dynamique des membres de groupes à l’aide d’assertions.

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://<your_server>/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.

  • Vues intégrées sur plusieurs sites : Dans Tableau Server 2023.1 et versions antérieures, le passage d’une vue à l’autre sur différents sites dans le même navigateur provoque l’erreur 1008 : Impossible de récupérer le secret de l’application connectée. Pour contourner ce problème, effectuez une mise à niveau vers Tableau Server 2023.3 ou vers une version ultérieure.

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 Tableau Server.

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 introuvable
Pour résoudre ce problème, vérifiez que la valeur de revendication ’sub’ (sujet) dans le JWT est "username" pour l’utilisateur Tableau Server 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 :
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.
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é. Pour modifier l’URL de l’émetteur, vous pouvez utiliser la commande vizportal.oauth.external_authorization_server.issuer.
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é. Pour modifier l’URL de l’émetteur, vous pouvez utiliser la commande vizportal.oauth.external_authorization_server.issuer.

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. Consultez vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms pour plus d’informations.
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.
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 est utilisée. Pour modifier la période de validité maximale, vous pouvez utiliser la commande vizportal.oauth.external_authorization_server.max_expiration_period_in_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é.
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 Server.
Merci de vos commentaires!Votre commentaire s été envoyé avec succès. Merci!