Enregistrer le serveur EAS de manière à activer l’authentification unique pour le contenu intégré

En tant qu’administrateur Tableau Server, vous pouvez enregistrer un serveur 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. 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 Tableau Server
  • Autoriser par programme l’accès à l’API REST de Tableau (et à l’API de métadonnées Tableau à partir Tableau Serverd’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 Server. Suivez les étapes décrites ci-dessous pour enregistrer votre EAS auprès de Tableau Server.

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.

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

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

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

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. 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 à Identité de l’utilisateur et Accès > Serveur d’autorisation et procédez comme suit :
    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.

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

  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

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

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.

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 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!