# Limiter la portée des jetons d’un agent IA relié à un catalogue B2B

> Connecter un agent conversationnel à un catalogue de pièces industrielles ne doit jamais revenir à lui accorder les mêmes droits qu'un administrateur du site.

- Auteur : Clément Hadrot
- Publié le : 2026-03-10
- Mis à jour le : 2026-03-10
- Catégorie : Sécurité
- URL : https://wpmoderne.dev.wordpress-developpement.fr/securite/limiter-portee-jetons-agent-ia-catalogue-b2b/

## L’essentiel

- Un jeton par usage plutôt qu'un jeton unique partagé
- La portée du jeton se limite aux points de terminaison réellement utilisés
- Une expiration courte réduit l'impact d'une fuite éventuelle

Combien de droits faut-il réellement accorder à un agent conversationnel qui ne fait que répondre à des questions sur un catalogue de pièces ? La réponse, dans la plupart des cas observés, est nettement moins que ce qu'un jeton d'application généré par défaut n'accorde. Un fabricant qui connecte un agent IA à son catalogue B2B pour répondre automatiquement aux demandes de ses clients professionnels doit traiter cette connexion avec la même rigueur qu'un compte de service classique, pas avec la souplesse qu'on accorderait à un compte administrateur de confiance. Cette checklist ne traite pas de la conception du catalogue lui-même, déjà en place, mais du cadrage des jetons qui y donnent accès.

## Ce que révèle un jeton trop large

Un jeton d'application créé au niveau d'un compte administrateur donne accès à l'ensemble des points de terminaison de l'API REST, y compris ceux qui permettent de créer des utilisateurs, de modifier des réglages ou de supprimer du contenu. Si cet agent est un jour manipulé pour formuler des requêtes inattendues, ou si le jeton fuite par un canal tiers (journal de débogage, message d'erreur mal filtré), l'attaquant hérite de tous les droits du compte, bien au-delà de la simple consultation du catalogue.

## La checklist de cadrage

> L'essentiel à retenir : Un jeton par usage plutôt qu'un jeton unique partagé ; La portée du jeton se limite aux points de terminaison réellement utilisés ; Une expiration courte réduit l'impact d'une fuite éventuelle

1. **Un compte de service dédié**, distinct de tout compte humain, créé spécifiquement pour cet agent et pour aucun autre usage.
2. **Une capacité personnalisée unique** attribuée à ce compte, par exemple `consulter_catalogue_agent`, sans aucune capacité héritée d'un rôle générique comme `editor` ou `administrator`.
3. **Des points de terminaison explicitement listés**, filtrés via `rest_endpoints`, pour que seuls les points nécessaires à la consultation du catalogue restent accessibles à ce compte, tous les autres renvoyant un refus.
4. **Une expiration du jeton fixée** plutôt qu'un jeton permanent, avec une rotation planifiée tous les quatre-vingt-dix jours au maximum.
5. **Aucune capacité d'écriture** tant qu'aucun besoin fonctionnel concret ne la justifie explicitement.
6. **Une limite de débit** propre à ce jeton, indépendante de celle appliquée aux visiteurs humains, car un agent peut légitimement formuler plusieurs requêtes rapprochées, mais un volume anormal doit rester détectable.

## Filtrer les points de terminaison accessibles

```
add_filter('rest_endpoints', function ($points_de_terminaison) {
  $utilisateur = wp_get_current_user();
  if (in_array('agent_catalogue', (array) $utilisateur->roles, true)) {
    foreach ($points_de_terminaison as $route => $config) {
      if (strpos($route, '/domaine/v1/catalogue') !== 0) {
        unset($points_de_terminaison[$route]);
      }
    }
  }
  return $points_de_terminaison;
});
```

Ce filtre garantit que même si le jeton du compte de service était utilisé pour tenter d'atteindre un point de terminaison sans lien avec le catalogue, la requête échouerait avant d'atteindre la logique métier correspondante.

## Documenter la portée pour l'équipe

Une fiche interne, tenue à jour, décrit précisément quel jeton sert quel usage, sa date de création, sa date d'expiration prévue et les points de terminaison auxquels il donne accès. Cette documentation, souvent négligée une fois l'intégration fonctionnelle, devient précieuse au moment d'un audit ou d'une suspicion d'usage anormal, car elle permet de vérifier rapidement si un comportement observé correspond à ce qui était prévu.

## Prévoir la révocation rapide

Un jeton doit pouvoir être révoqué immédiatement, sans attendre son expiration naturelle, dès qu'un doute apparaît sur son intégrité. La révocation d'un jeton d'application, via l'écran de profil de l'utilisateur concerné, ne prend que quelques secondes et ne doit jamais être conditionnée à une procédure lourde qui retarderait la réaction en cas d'incident.

## En résumé

Un agent conversationnel relié à un catalogue B2B n'a besoin, dans l'écrasante majorité des cas, que d'un accès en lecture à un périmètre précis. Réduire la portée du jeton à ce strict nécessaire, limiter sa durée de vie et documenter son usage transforme une connexion potentiellement risquée en une intégration maîtrisée et facilement auditable.
