Gérer les extensions de tableau de bord et de visualisation dans Tableau Server
Les extensions de tableau de bord sont des applications Web qui s’exécutent dans des zones de tableau de bord personnalisées et qui peuvent interagir avec le reste du tableau de bord à l’aide de l’API Tableau Extensions(Le lien s’ouvre dans une nouvelle fenêtre). Les extensions de tableau de bord permettent aux utilisateurs d’interagir avec les données issues d’autres applications directement dans Tableau. Comme les extensions de tableau de bord, les extensions de visualisation sont des applications Web qui utilisent l’API Extensions de Tableau et permettent aux développeurs de créer de nouveaux types de visualisation. Les utilisateurs de Tableau peuvent accéder aux extensions de visualisation par le biais de la fiche Repères de la feuille de calcul.
Remarque : Vous devez être un administrateur de serveur pour activer les extensions de tableau de bord et de visualisation sur le serveur, ou pour bloquer l’exécution d’extensions spécifiques. Vous devez être un administrateur de serveur pour ajouter des extensions à la liste d’autorisations et pour contrôler le type de données auxquelles les extensions peuvent accéder. L’administrateur de serveur peut également configurer si les utilisateurs du site voient les invites lorsqu’ils ajoutent ou affichent des extensions. Pour des informations sur la sécurité des extensions et les options de déploiement recommandées, consultez Sécurité des extensions - Meilleures pratiques de déploiement(Le lien s’ouvre dans une nouvelle fenêtre).
Pour plus d’informations sur l’utilisation d’extensions de tableau de bord dans Tableau, consultez Utiliser les extensions de tableau de bord.
Pour plus d’informations sur l’utilisation d’extensions de visualisation, consultez Ajouter des extensions de visualisation à votre feuille de calcul.
Vous recherchez Tableau Cloud? Consultez Gérer les extensions de tableau de bord dans Tableau Cloud(Le lien s’ouvre dans une nouvelle fenêtre). (Le lien s’ouvre dans une nouvelle fenêtre)
Avant d’exécuter des extensions dans Tableau Server
Tableau prend en charge deux modes d’hébergement des extensions :
- Les extensions compatibles réseau qui sont hébergées sur des serveurs Web situés à l’intérieur ou à l’extérieur de votre réseau local. Les extensions réseau disposent d’un accès complet au Web.
- Les extensions de bac à sable qui fonctionnent dans un environnement protégé sans accès à aucune autre ressource ou aucun service sur le Web.
Remarque : depuis la version 2021.1.0, Tableau prend en charge l’intégration avec Einstein Discovery via l’extension de tableau de bord Einstein Discovery. Il s’agit d’une extension spéciale qui a accès aux données de Salesforce.com et qui est autorisée par défaut. Elle n’est pas considérée comme une extension réseau ou une extension de bac à sable. Pour plus d’informations sur l’intégration d’Einstein Discovery, consultez Notes de version de Tableau Server(Le lien s’ouvre dans une nouvelle fenêtre) .
Les extensions de bac à sable sont hébergées par Tableau et utilisent les normes du W3C, tels que Content Security Policy (CSP), pour s’assurer que l’extension ne peut pas passer d’appels réseau en dehors de l’instance Tableau Server hébergeante. Une extension de bac à sable peut interroger des données dans le tableau de bord, mais elle ne peut pas envoyer ces données en dehors du bac à sable. Les extensions de bac à sable sont prises en charge dans Tableau 2019.4 et versions ultérieures. Par défaut, les extensions de bac à sable sont autorisées à s’exécuter si les extensions sont activées pour le site.
Les extensions compatibles réseau sont des applications Web qui peuvent être exécutées sur tout ordinateur configuré comme serveur Web. Cela inclut les ordinateurs locaux, les ordinateurs de votre domaine et les sites Web tiers. Les extensions compatibles réseau pouvant être hébergées sur des sites tiers et accéder aux données du classeur, vous ne souhaiterez autoriser que les extensions auxquelles vous faites confiance. Voir Tester la sécurité des extensions réseau.
À des fins de sécurité, vous pouvez utiliser les paramètres des extensions sur Tableau Server pour contrôler et limiter les extensions autorisées à s’exécuter.
Par défaut, les extensions de bac à sable sont autorisées à s’exécuter si les extensions sont activées pour le site.
Par défaut, aucune extension compatible réseau n’est autorisée, sauf si elle a été explicitement ajoutée à la liste d’autorisations.
Par défaut, seules les extensions utilisant le protocole HTTPS sont autorisées, ce qui garantit un canal sécurisé pour envoyer et recevoir des données (la seule exception concerne
http://localhost
).Si l’extension compatible réseau nécessite des données complètes (accès aux données sous-jacentes), l’extension ne pourra pas s’exécuter sur Tableau Server sauf si vous ajoutez explicitement l’extension à la liste d’autorisations et autorisez l’extension à accéder aux données complètes.
Contrôler les extensions et l’accès aux données
Les administrateurs de serveur peuvent contrôler un paramètre global autorisant les extensions pour tous les sites sur le serveur. Les administrateurs de serveur peuvent également placer des extensions, y compris des extensions de bac à sable, sur une liste bloquée globale pour les empêcher de s’exécuter (voir Bloquer des extensions spécifiques). Par défaut, toutes les extensions de bac à sable sont activées sur le serveur, mais les administrateurs du site peuvent choisir de remplacer le paramètre par défaut et interdire les extensions de bac à sable pour le site.
Modifier le paramètre global d’activation des extensions sur le serveur
Pour modifier ce paramètre pour le serveur, allez à Gérer tous les sites > Paramètres > Extensions. Si le serveur n’a qu’un seul site, les contrôles globaux apparaissent sur la page Paramètres du site.
Sous Extensions de tableau de bord et de visualisation, cochez ou décochez la case Autoriser les utilisateurs à exécuter les extensions sur ce serveur. Si cette option n’est pas sélectionnée, les extensions ne sont pas autorisées à s’exécuter. Ce paramètre global a priorité sur le paramètre Autoriser les utilisateurs à exécuter les extensions sur ce site pour chaque site.
Modifier les paramètres par défaut d’un site
Les administrateurs de serveur peuvent contrôler s’il faut activer les extensions pour le site et s’il faut autoriser les extensions de bac à sable sur le site. En d’autres termes, si les extensions sont activées sur le serveur, les paramètres par défaut du site permettent aux extensions de bac à sable de fonctionner sur le site, à condition que l’extension ne soit pas spécifiquement bloquée sur le serveur. Les paramètres par défaut du site permettent l’exécution des extensions réseau lorsqu’elles figurent sur la liste d’autorisations du site. Il est également possible d’ajouter des extensions individuelles de bac à sable à la liste d’autorisations si les extensions de bac à sable ne sont pas autorisées par défaut.
Pour modifier ces paramètres pour le site, allez à Paramètres > Extensions.
Sous Extensions de tableau de bord et de visualisation, configurez ces options :
- Autoriser les utilisateurs à exécuter les extensions sur ce site
- Autorisez les extensions de bac à sable à s’exécuter à moins qu’elles ne soient spécifiquement bloquées par un administrateur de serveur
Les administrateurs de serveur peuvent ajouter des extensions compatibles réseau et des extensions de bac à sable à la liste d’autorisations ou en supprimer. Lorsque vous ajoutez une extension à la liste d’autorisations, vous pouvez contrôler s’il faut autoriser l’extension à accéder aux données complètes. Consultez Ajouter des extensions à la liste d’autorisations et configurer les invites utilisateur.
Identifier l’URL d’une extension
En tant qu’application Web, une extension est associée à un URL. Vous pouvez utiliser cet URL pour tester et vérifier l’extension. Vous pouvez également utiliser l’URL pour ajouter l’extension à la liste d’autorisations afin d’autoriser l’accès aux données complètes, ou à la liste bloquée si vous souhaitez interdire tout accès.
Depuis le fichier manifest
Si vous possédez le fichier manifest de l’extension (.trex
), un fichier XML qui définit les propriétés de l’extension, vous trouverez l’URL dans l’élément <source-location>
.
<source-location>
<url>https://www.example.com/myExtension.html</url>
</source-location>
Depuis Tableau Exchange
Si vous avez ajouté ou téléchargé une extension depuis Tableau Exchange, vous trouverez l’URL de l’extension sur Exchange. Ouvrez la section de l’extension, sous Spécifications techniques, recherchez l’URL sous l’en-tête, Hébergé sur.
Identifier une extension de tableau de bord à l’aide de la boîte de dialogue À propos
Si vous avez ajouté l’extension au tableau de bord, vous trouverez l’URL dans les propriétés d’extension. Dans le menu Plus d’options, cliquez sur À propos.
La boîte de dialogue À propos répertorie le nom de l’extension, l’auteur, le site Web de l’auteur, ainsi que l’URL de l’extension.
Ajouter des extensions à la liste d’autorisations et configurer les invites utilisateur
Pour être sûr que les utilisateurs utilisent des extensions réseau de confiance, vous pouvez les ajouter à la liste d’autorisations pour le site. Vous pouvez également ajouter des extensions de bac à sable à la liste d’autorisations si les extensions de bac à sable ne sont pas activées par défaut sur le site.
Dans la liste d’autorisations, vous pouvez contrôler s’il faut accorder l’accès aux données complètes à l’extension. Par défaut, lorsque vous ajoutez une extension à la liste d’autorisations, l’extension n’a accès qu’aux données résumées (ou agrégées). Vous pouvez également contrôler si les utilisateurs voient ou non une invite leur demandant d’autoriser l’extension à accéder aux données. Vous souhaiterez peut-être ajouter une extension à la liste d’autorisations (par exemple, une extension de bac à sable) pour configurer si les utilisateurs peuvent voir les invites. Lorsque vous masquez les invites aux yeux des utilisateurs, l’extension peut s’exécuter immédiatement.
Allez à Paramètres > Extensions.
Sous Activer des extensions spécifiques, ajoutez l’URL de l’extension. Consultez Identifier l’URL d’une extension.
Conseil : Vous pouvez utiliser un point et un astérisque (.*) (
.*
) comme caractère générique dans l’URL pour autoriser toutes les extensions dans un domaine ou un emplacement spécifique. Par exemple, pour autoriser toutes les extensions du domaine sous exemple.com qui utilisent le port 8080, vous devez ajouter l’URL :https://example.com:8080/.*
. Pour plus d’informations, consultez Utiliser des expressions régulières dans l’URL de la liste d’autorisations.Choisissez d’Autoriser ou de Refuser l’accès aux données complètes à l’extension.
L’accès aux données complètes désigne l’accès aux données sous-jacentes de la vue, et non seulement aux données résumées ou agrégées. L’accès aux données complètes inclut également des informations sur les sources de données, telles que les noms de la connexion, des champs et des tables. Dans la plupart des cas, si vous ajoutez une extension à la liste d’autorisations pour qu’elle puisse s’exécuter, vous souhaiterez peut-être aussi autoriser l’accès aux données complètes, si l’extension l’exige. Avant d’ajouter des extensions à la liste d’autorisations, veillez à Tester la sécurité des extensions réseau.
Choisissez d’Afficher ou de Masquer les Invites utilisateur.
Les utilisateurs voient les invites par défaut lorsqu’ils ajoutent une extension de tableau de bord à un tableau de bord ou une extension de visualisation à une feuille de calcul, ou lorsqu’ils interagissent avec une vue comportant une extension. L’invite fournit à l’utilisateur des détails sur l’extension et indique si l’extension dispose d’un accès aux données complètes. L’invite donne aux utilisateurs la possibilité d’autoriser ou d’interdire l’exécution de l’extension. Vous pouvez masquer cette invite aux yeux des utilisateurs, dans quel cas l’extension s’exécute immédiatement.
Bloquer des extensions spécifiques
La stratégie globale par défaut autorise toutes les extensions de bac à sable et les extensions compatibles réseau qui apparaissent sur la liste d’autorisations d’un site. Les administrateurs de serveur peuvent empêcher l’exécution d’extensions spécifiques en les ajoutant à la liste bloquée du serveur. Si une extension est sur la liste globale bloquée, elle remplace tous les paramètres de l’extension figurant sur la liste d’autorisations d’un site.
Pour ajouter une extension à la liste bloquée du serveur, allez à Gérer tous les sites > Paramètres > Extensions. Dans les installations sur un seul site, la liste bloquée se trouve dans la page de paramètres Extensions du site.
Sous Bloquer des extensions spécifiques, ajoutez l’URL de l’extension. Consultez Identifier l’URL d’une extension.
Utiliser des expressions régulières dans l’URL de la liste d’autorisations
Généralement, lorsque vous ajoutez une extension à la liste d’autorisations, vous devez utiliser l’URL spécifique de l’extension. Il arrive toutefois que vous souhaitiez autoriser plusieurs extensions hébergées dans le même domaine et au même emplacement. Dans ce cas, il est recommandé d’utiliser un caractère générique dans l’URL. Les paramètres des extensions permettent d’utiliser des expressions régulières.
Expression régulière | Description |
. | Un point (.) est un caractère générique que vous pouvez utiliser pour faire correspondre n’importe quel caractère. Si vous devez spécifier un point (.) dans l’URL au lieu d’un caractère générique, vous pouvez indiquer qu’il s’agit d’un caractère à l’aide d’une barre oblique inversée (\. ). |
* | Un astérisque (*) est un quantificateur qui spécifie une seule ou plusieurs instances du caractère précédent. |
Si vous utilisez des caractères génériques, prenez soin de ne pas rendre la liste d’autorisations trop permissive et de ne pas autoriser involontairement l’accès à des extensions qui ne doivent pas y avoir accès.
Le tableau suivant illustre certains exemples d’utilisation d’expressions régulières dans l’URL. Notez que ces exemples n’indiquent pas le protocole et l’URL complet de l’extension. Seules les extensions utilisant le protocole HTTPS sont autorisées (à l’exception de http://localhost).
Pour spécifier... | Exemple | Spécifie |
Plage de domaines | .*\.example.com | Tous les sous-domaines sous example.com. |
Tous les ports | example.com:.* | Les extensions sont autorisées à accéder à tous les ports sous example.com. |
Toutes les extensions sous domaine, port et chemin | example.com:8080/xyz/.* | Toutes les extensions sous le domaine example.com qui utilisent le port 8080 et sont situées dans zyz, sont autorisées à y accéder. |
Tous les ports pour une gamme de domaines | .*\.example.com:.* | Autorise l’accès aux extensions sur tous les ports de tous les sous-domaines sous example.com. |
Toutes les extensions sous un domaine et un chemin qui correspondent au modèle | example.com/t.c/.* | Permet d’accéder aux extensions exécutées sous example.com dans les dossiers qui correspondent au modèle t.c. Par exemple, tic, tac, toc. |
Tester la sécurité des extensions réseau
Les extensions de tableau de bord et de visualisation sont des applications Web qui interagissent avec les données dans Tableau en utilisant l’API Extensions. Les extensions compatibles réseau peuvent éventuellement être hébergées sur des serveurs Web à l’intérieur ou à l’extérieur de votre domaine, et peuvent effectuer des appels réseau et avoir accès à des ressources sur Internet. En raison des vulnérabilités potentielles (par exemple, des scripts inter-site), vous devriez tester et valider les extensions compatibles réseau avant de les utiliser dans Tableau Desktop et avant d’autoriser les extensions sur Tableau Server.
Examiner les fichiers source
Les extensions de tableau de bord et de visualisation sont des applications Web et incluent divers fichiers HTML, CSS et JavaScript, ainsi qu’un fichier manifest XML (*.trex) qui définit les propriétés de l’extension. Dans de nombreux cas, le code d’une extension est disponible publiquement sur GitHub et peut être examiné ici ou téléchargé. Dans le fichier manifest (*.trex
), vous trouverez l’emplacement ou l’URL de la source indiquant où l’extension est hébergée, le nom de l’auteur et le site Web de l’auteur, ou la société à contacter pour obtenir de l’aide. L’élément <source-location>
désigne l’URL, l’élément <author>
spécifie le nom de l’entreprise et le site Web à contacter pour obtenir de l’aide (website="SUPPORT_URL"
). Le site Web est le lien Obtenir un support que l’utilisateur voit dans la boîte de dialogue À propos de l’extension.
De nombreuses extensions référencent des bibliothèques JavaScript externes, telles que la bibliothèque jQuery et la bibliothèque API pour les tierces parties. Vérifiez que l’URL des bibliothèques externes pointe vers un emplacement approuvé pour la bibliothèque. Par exemple, si le connecteur référence la bibliothèque jQuery, assurez-vous que la bibliothèque se trouve sur un site considéré comme standard et sûr.
Toutes les extensions doivent obligatoirement utiliser le protocole HTTPS (https://
) pour l’hébergement de leurs extensions. Vous devriez examiner les fichiers source de l’extension pour vous assurer que toute référence à des bibliothèques externes utilise également HTTPS ou est hébergée sur le même site Web que l’extension. La seule exception à cette exigence de HTTPS est le cas où l’extension est hébergée sur le même ordinateur que Tableau (http://localhost
).
Dans la mesure du possible, veillez à comprendre l’action exécutée par le code. Essayez tout particulièrement de comprendre comment le code crée les demandes aux sites externes, et quelles informations sont envoyées dans la demande. Plus particulièrement, vérifiez si les données fournies par l’utilisateur sont validées afin d’éviter les scripts inter-sites.
Comprendre l’accès aux données
L’API Extensions de Tableau fournit des méthodes qui peuvent accéder aux noms des tables actives et des champs dans la source de données, aux descriptions résumées des connexions de source de données et aux données sous-jacentes d’une feuille de calcul. Si une extension utilise l’une de ces méthodes dans une vue, le développeur de l’extension doit déclarer que l’extension exige des autorisations pour les données complètes dans le fichier manifest (.trex
). La déclaration se présente comme suit.
<permissions>
<permission>full data</permission>
</permissions>
Tableau utilise cette déclaration pour fournir aux utilisateurs une invite lors de l’exécution en leur donnant l’option d’autoriser cet accès ou non. Si l’extension utilise l’une de ces méthodes, sans déclarer l’autorisation pour les données complètes dans le fichier manifest, l’extension se charge mais les appels de méthode échouent.
Pour savoir comment une extension accède aux données depuis le tableau de bord et pour des informations sur les méthodes JavaScript utilisées, consultez Accès aux données sous-jacentes(Le lien s’ouvre dans une nouvelle fenêtre) dans l’API Tableau Extensions. Pour mieux comprendre ce que l’extension peut trouver sur les données, vous pouvez utiliser l’exemple d’extension de tableau de bord DataSources(Le lien s’ouvre dans une nouvelle fenêtre) (disponible dans le Référentiel Tableau Extensions API GitHub(Le lien s’ouvre dans une nouvelle fenêtre)) pour voir les données qui sont exposées en cas d’appel de la méthode getDataSourcesAsync()
.
Tester l’extension dans un environnement isolé
Si possible, testez l’extension dans un environnement isolé de votre environnement de production et des ordinateurs des utilisateurs. Par exemple, ajoutez une extension de tableau de bord ou de visualisation à une liste d’autorisations sur un ordinateur de test ou une machine virtuelle exécutant une version de Tableau Server qui n’est pas utilisée pour la production.
Surveiller le trafic créé par l’extension de tableau de bord
Lorsque vous testez une extension compatible réseau, utilisez un outil tel que Fiddler(Le lien s’ouvre dans une nouvelle fenêtre), Charles HTTP proxy(Le lien s’ouvre dans une nouvelle fenêtre) ou Wireshark(Le lien s’ouvre dans une nouvelle fenêtre) pour examiner les demandes et les réponses apportées par l’extension. Assurez-vous de bien comprendre le contenu demandé par l’extension. Examinez le trafic pour vous assurer que l’extension n’est pas en train de lire des données ou du code qui n’a pas de rapport direct avec l’objectif de l’extension.