En tant qu'administrateur Tableau Server, vous pouvez enregistrer un serveur d'autorisation externe (EAS) pour établir une relation de confiance entre votre Tableau Server et EAS en utilisant le protocole de la norme 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 personnalisées via le fournisseur d'identité (IdP) que vous avez déjà configuré pour Tableau Server. Lorsque le contenu Tableau intégré est chargé dans votre application personnalisée, 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 Server. Suivez les étapes décrites ci-dessous pour enregistrer votre EAS auprès de Tableau Server.

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 Server. 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 activer l'intégration via EAS, Tableau Server doit être configuré de manière à utiliser SSL pour le trafic HTTP.

Remarque : si votre application connectée s'exécute dans un conteneur, tel qu'une instance EC2, les horloges du conteneur et de l'hôte doivent être définies sur UTC pour que le jeton de session soit valide. 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 Tableau Server, 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.

Revendication Description ou valeur requise
"kid" (ID de clé) Obligatoire (dans l'en-tête). Un identifiant de clé unique du fournisseur d'identité.
"iss" (émetteur) Obligatoire (dans l'en-tête ou en tant que revendication). URI d'émetteur unique qui identifie l'application de connexion de confiance et sa clé de signature.
"alg " (algorithme) Obligatoire (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. L'algorithme de signature peut être configuré à l'aide de la commande vizportal.oauth.external_authorization_server.blocklisted_jws_algorithms.
"sub" (sujet) Nom d'utilisateur de l'utilisateur Tableau Server authentifié.
"aud" (public) La valeur doit être : "tableau"
"exp" (Date d'expiration) Pour être valide, un JWT ne doit pas avoir expiré. La date d'expiration (en UTC) du jeton JWT doit être comprise 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 JWT) La demande d'ID JWT fournit un identifiant unique pour le jeton JWT et est sensible à la casse.
"scp" (portée)

Les valeurs prises en charge incluent :

"tableau:views:embed"

"tableau:metrics:embed"

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 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 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) dans la documentation distribuée par l'organisation Internet Engineering Task Force (IETF).

Étape 2 : enregistrer votre EAS avec Tableau Server

En enregistrant votre EAS auprès de Tableau Server, vous établissez une relation de confiance entre l'EAS et Tableau Server. Cela signifie que lorsque les utilisateurs accèdent au contenu Tableau intégré dans votre application personnalisée, 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 Server pour vérification. Une fois la relation de confiance vérifiée, l'accès au contenu intégré est accordé aux utilisateurs ou

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

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 personnalisée au nom des utilisateurs.

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

  2. Accédez à Identité et accès utilisateur > Serveur d'autorisation, puis procédez comme suit :
    1. Sélectionnez Activer l'accès OAuth pour le contenu intégré.

    2. Dans la zone de texte URL de l'émetteur, collez l'URL de l'émetteur de l'EAS.

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

  3. Une fois que 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 cluster.
  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 : Intégrer les étapes suivantes

Après avoir configuré Tableau Server de manière à utiliser votre EAS, vous devez ajouter le code d'intégration à votre application personnalisée. Assurez-vous d'inclure le jeton JWT valide généré par votre EAS, comme décrit à l'étape 1, dans le composant Web que votre application personnalisée 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 de manière à autoriser les cookies tiers.

Problèmes connus

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://<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 personnalisée ou l’API REST Tableau, vous pouvez utiliser les outils de développement d'un navigateur pour inspecter et identifier les codes d'erreur pouvant être associés à la fonctionnalité EAS activée sur Tableau Server.

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

Code d'erreur Résumé Description Résolution ou explication potentielle
5 SYSTEM_USER_NOT_FOUND L'utilisateur de Tableau est introuvable
Pour résoudre ce problème, vérifiez que la valeur de la revendication 'sub’ (sujet) dans le JWT est "username" pour l’instance Tableau Server authentifiée. Cette valeur est sensible à la casse.
16 LOGIN_FAILED Échec de la connexion Cette erreur est généralement causée par l'un des problèmes de réclamation suivants dans le JWT :
10081 COULD_NOT_RETRIEVE_IDP_METADATA Point de terminaison de métadonnées EAS manquant Pour résoudre ce problème, vérifiez que l'EAS est configuré correctement et que l’émetteur approprié est appelé.
10082 AUTHORIZATION_SERVER_ISSUER_NOT_SPECIFIED Émetteur manquant 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.
10083 BAD_JWT L'en-tête JWT contient des problèmes Cette erreur est généralement causée par l'un des problèmes suivants avec l'en-tête JWT :
  • Les revendications 'secret key' (Kid) ou 'clientId' (émetteur) sont manquantes dans l'en-tête JWT. Pour résoudre ce problème, assurez-vous que ces informations sont incluses.
  • Le JWT n'est ni signé ni crypté. Tableau ne prend pas en charge les JWT non signés ou cryptés.
10084 JWT_PARSE_ERROR JWT contient des problèmes

Pour 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), 'sub' (sujet), 'jti' (ID JWT) sont incluses dans le jeton JWT.
10085 COULD_NOT_FETCH_JWT_KEYS JWT n'a pas pu trouver les clés

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

10087 BLOCKLISTED_JWS_ALGORITHM_USED_TO_SIGN Problème avec l'algorithme de signature JWT

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

10088 RSA_KEY_SIZE_INVALID Problème avec les exigences de signature JWT Pour 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.
10091 JTI_ALREADY_USED JWT unique requis

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

Merci de vos commentaires !