Gérer les extensions de tableau de bord 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(Link opens in a new window). Les extensions de tableau de bord permettent aux utilisateurs d'interagir avec les données issues d'autres applications directement dans Tableau.

Remarque : vous devez être un administrateur de serveur pour activer les extensions de tableau de bord 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 autorisée 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 sur un tableau de bord. 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.Sécurité des extensions - Meilleures pratiques de déploiement

Pour plus d'informations sur l'utilisation d'extensions de tableau de bord dans Tableau, consultez Utiliser les extensions de tableau de bord(Link opens in a new window).

Avant d'exécuter des extensions dans Tableau Server

Tableau prend en charge deux types d'extensions de tableau de bord : les extensions compatibles réseau, qui peuvent être hébergées sur des serveurs Web situés à l'intérieur ou à l'extérieur de votre réseau local et ont un accès complet au Web, et les extensions en mode Sandbox, qui fonctionnent dans un environnement protégé sans accès à aucune autre ressource ou aucun service sur le Web.

Les extensions en mode Sandbox 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 en mode Sandbox 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 en mode Sandbox sont prises en charge dans Tableau 2019.4 et versions ultérieures. Par défaut, les extensions en mode Sandbox sont autorisées à s'exécuter si les extensions sont activées pour le site.

Les extensions réseau de tableau de bord 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 réseau pouvant être hébergées sur des sites tiers et accéder aux données du tableau de bord, vous ne souhaiterez autoriser que les extensions auxquelles vous faites confiance. Consultez Tester la sécurité des extensions réseau.

À des fins de sécurité, vous pouvez utiliser les paramètres des extensions de tableau de bord sur Tableau Server pour contrôler et limiter les extensions de tableau de bord autorisées à s'exécuter.

  • Par défaut, les extensions en mode Sandbox sont autorisées à s'exécuter si les extensions sont activées pour le site.

  • Par défaut, aucune extension réseau n’est autorisée, sauf si elle a été explicitement ajoutée à la liste autorisée.

  • 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 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 autorisée et autorisez l'extension à accéder aux données complètes.

Contrôler les extensions de tableau de bord 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 en mode Sandbox, 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 en mode Sandbox 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 en mode Sandbox pour le site.

Modifier le paramètre global d'activation des extensions sur le serveur

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

  2. Sous Extensions de tableau de bord, sélectionnez ou désélectionnez la case à cocher 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 en mode Sandbox 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 en mode Sandbox 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 autorisée du site. Il est également possible d'ajouter des extensions individuelles en mode Sandbox à la liste autorisée si les extensions en mode Sandbox ne sont pas autorisées par défaut.

  1. Pour modifier ces paramètres pour le site, allez à Paramètres > Extensions.

  2. Sous Extensions de tableau de bord, configurez ces options :

    • Autoriser les utilisateurs à exécuter les extensions sur ce site
    • Autorisez les extensions en mode Sandbox à 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 réseau et des extensions en mode Sandbox à la liste autorisée ou en supprimer. Lorsque vous ajoutez une extension à la liste autorisée, vous pouvez contrôler s'il faut autoriser l'extension à accéder aux données complètes. Consultez Ajouter des extensions à la liste autorisée et configurer les invites utilisateur.

Identification d'une extension

En tant qu'application Web, une extension est associée à une URL. Vous utilisez cette URL pour tester et vérifier l'extension. Vous pouvez également utiliser l'URL pour ajouter l'extension à la liste autorisée afin d'autoriser l'accès aux données complètes, ou à la liste bloquée si vous souhaitez interdire tout accès.

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>

				
                

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 de l'extension, le site Web de l'auteur, ainsi que l'URL de l'extension.

Ajouter des extensions à la liste autorisée 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 autorisée pour le site. Vous pouvez également ajouter des extensions en mode Sandbox à la liste autorisée si les extensions en mode Sandbox ne sont pas activées par défaut sur le site.

Dans la liste autorisée, 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 autorisée, 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 autorisée (par exemple une extension en mode Sandbox) pour configurer si les utilisateurs peuvent ou non voir les invites. Lorsque vous masquez les invites aux yeux des utilisateurs, l'extension peut s'exécuter immédiatement.

  1. Allez à Paramètres > Extensions.

  2. Sous Activer des extensions spécifiques, ajoutez l'URL de l'extension. Consultez Identification d'une extension.

  3. 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 autorisée 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 autorisée, veillez à Tester la sécurité des extensions réseau.

  4. Choisissez d'Afficher ou de Masquer les Invites utilisateur.

    Les utilisateurs voient les invites par défaut lorsqu'ils ajoutent une extension à un tableau de bord, 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 en mode Sandbox et les extensions compatibles réseau qui apparaissent sur la liste autorisée 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 autorisée d'un site.

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

  2. Sous Bloquer des extensions spécifiques, ajoutez l'URL de l'extension. Consultez Identification d'une extension.

Tester la sécurité des extensions réseau

Les extensions de tableau de bord sont des applications Web qui interagissent avec les données dans Tableau en utilisant l'API Extensions. Les extensions de tableau de bord 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. Pour cette raison, et en raison des vulnérabilités potentielles (par exemple des scripts inter-site), vous devriez tester et valider les extensions de tableau de bord avant que les utilisateurs ne s'en servent dans des tableaux de bord sur Tableau Desktop, et avant d'autoriser des extensions sur Tableau Server.

Examiner les fichiers source

Les extensions de tableau de bord sont des applications Web et incluent divers fichiers HTML, CSS et JavaScript, ainsi qu'un fichier manifest XML manifest (*.trex) qui définit les propriétés de l'extension. Dans de nombreux cas, le code d'une extension de tableau de bord 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 de tableau de bord référencent des bibliothèques JavaScript externes, par exemple la bibliothèque jQuery ou les bibliothèques d'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 Tableau Extensions 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'un tableau de bord. 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 quatre méthodes, sans déclarer l'autorisation pour les données complètes dans le fichier manifest, l'extension se chargera mais les appels de méthode échoueront.

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(Link opens in a new window) 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(Link opens in a new window) (disponible dans le Référentiel Tableau Extensions API GitHub(Link opens in a new window)) 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 de tableau de bord dans un environnement isolé de votre environnement de production et des ordinateurs des utilisateurs. Par exemple, ajoutez une extension de tableau de bord à une liste autorisée 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 réseau de tableau de bord, utilisez un outil tel que Fiddler(Link opens in a new window), Charles HTTP proxy(Link opens in a new window) ou Wireshark(Link opens in a new window) 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.

Merci de vos commentaires !