Skip to content

Jetons d’accès personnels et JWT de Connected App, et quand chacun convient

Deux identifiants Tableau qui font deux métiers différents. L’un porte les permissions d’une personne. L’autre étend une capacité de la plateforme. Choisir le bon garde aux commandes de qui voit quoi un modèle de permissions que vous avez mis des années à construire.

Mis à jour · 5 min de lecture

Deux identifiants, deux métiers

Jeton d’accès personnel
Délivré à une personne, en son nom, portant exactement ses permissions et rien de plus. C’est un identifiant de connexion, et il répond à la question : qui est-ce.
Connected App, confiance directe
Configurée une fois par site par un administrateur. Le serveur en frappe des JWT de courte durée qui attestent un compte de service nommé. C’est une extension de capacité, et elle répond à une autre question : que peut faire cette capacité de la plateforme, et pour quel compte.

Ce sont deux routes vers deux endroits différents. Les traiter comme interchangeables est l’erreur d’identifiant la plus lourde de conséquences dans une intégration Tableau. L’erreur est fréquente, parce que les deux fonctionnent.

Pourquoi le jeton personnel l’emporte

La règle ici est écrite dans le code, et énoncée dans le module qui la met en œuvre. Chaque utilisateur se connecte avec son propre jeton Tableau. Ce jeton porte ses permissions Tableau exactes. Il est la frontière de gouvernance pour chaque lecture, chaque écriture, et chaque appel d’assistant ou d’outil fait pour lui.

La connexion appartient au seul jeton personnel. Un chemin en un clic qui la contournait a existé à un moment, et il a été retiré délibérément. Le résolveur a été supprimé, et la passerelle refuse maintenant une tentative de connexion qui a la forme d’un JWT.

La raison est pratique plutôt qu’architecturale. Laissez un identifiant de service connecter une personne, et chaque action qui suit porte les permissions du compte de service plutôt que celles de la personne. Le modèle de permissions Tableau que votre équipe a mis des années à construire cesse alors de décider qui peut voir quoi.

Ce que fait la Connected App

Elle couvre une capacité de la plateforme : une personne est déjà connectée, et la plateforme elle-même a besoin d’un jeton qui lui soit propre. L’intégration est l’exemple vivant. Une vraie vue Tableau rendue à l’intérieur d’une autre surface a besoin d’un jeton que l’API d’intégration acceptera, et un jeton personnel n’a pas la bonne forme pour cela.

  • L’identifiant client, l’identifiant du secret et la valeur du secret sont verrouillés par site Tableau par un administrateur, chiffrés au repos, et jamais renvoyés à un navigateur.
  • Le jeton est frappé côté serveur et limité par domaine. Il est de courte durée par conception, parce qu’un jeton de service de longue durée est une autorisation permanente que personne ne revoit.
  • Le JWT atteste un compte de service Tableau nommé : ce qu’il peut atteindre est ce que ce compte peut atteindre. Donnez-lui un grand rôle et vous lui avez donné un grand rôle.

Garder les jetons personnels propres

  • Un jeton par personne pour l’usage interactif. C’est son identité dans le produit, et le partager détruit toute attribution en aval.
  • Un jeton distinct et dédié pour toute automatisation. Tableau n’autorise qu’une session active par jeton. Une automatisation qui réutilise le jeton interactif de quelqu’un déconnectera cette personne de sa propre session, généralement à une heure gênante.
  • Nommez un jeton d’après son usage, pas d’après son créateur. En un an, le créateur a changé de rôle et l’usage non.
  • Renouvelez à une cadence que vous tiendrez vraiment, et mettez l’expiration dans un calendrier plutôt que de la découvrir.

Le deuxième point produit des tickets de support qui ressemblent à une instabilité du produit. Ce sont des collisions d’identifiants. Cela vaut la peine de le vérifier en premier chaque fois qu’une tâche planifiée et une personne semblent se gêner mutuellement.

La seule exception délibérée

Les secrets dans cette suite ne durent que le temps d’une session. Cela tient proprement jusqu’à ce que quelque chose doive s’exécuter à deux heures du matin sans personne de connecté. Un secret de session ne peut pas exister à cette heure-là, par définition.

Il y a une exception, et elle est explicite plutôt qu’implicite. Un opérateur clique pour verrouiller un jeton pour les exécutions planifiées. Il est chiffré au repos sous une clé machine, jamais journalisé, et jamais renvoyé au navigateur. L’appel de description ne renvoie que le nom du jeton. Un clic le retire. L’interface recommande un jeton d’automatisation dédié, pour la raison de collision évoquée plus haut.

Une exception sur laquelle une personne doit cliquer est une exception que quelqu’un peut retrouver plus tard. Une exception qui se produit automatiquement est une exception que personne ne peut auditer, et à laquelle, un jour, personne ne se souvient d’avoir consenti.

Dire quel identifiant a répondu

Une tâche planifiée peut essayer d’abord un jeton personnel et se rabattre sur un JWT de Connected App. C’est une conception sensée. Elle peut aussi cacher un identifiant cassé pendant des mois, parce que de l’extérieur l’exécution continue de réussir.

La correction est petite et elle compte. Enregistrez quel identifiant a réellement authentifié, et affichez-le sur la ligne. Un repli qui se produit de façon invisible est un repli que personne ne répare jamais. La première fois que quelqu’un en entend parler, c’est le jour où le repli échoue à son tour.

Choisir, en quatre vérifications

  1. Une personne précise fait ceci, maintenant, devant un écran. Son propre jeton.
  2. Une capacité de la plateforme a besoin d’un jeton qui lui soit propre pendant qu’une personne est présente. La Connected App.
  3. Cela s’exécute sans personne. Un jeton d’automatisation dédié, verrouillé délibérément, plutôt que le jeton interactif d’une personne.
  4. Une partie de cela a besoin de permissions appartenant à quelqu’un d’autre que la personne qui demande. Arrêtez-vous là. C’est la vérification qui transforme une frontière de gouvernance en suggestion.

Quatre vérifications, et la quatrième est celle sur laquelle il vaut la peine de prendre son temps. Tout le reste de cette page découle du fait de l’avoir bien faite.