# Encadrer un connecteur IA relié à Stripe et HubSpot par des jetons limités

> Une extension IA connectée à plusieurs services tiers ne devrait jamais disposer d'une clé plus large que la tâche qu'on lui confie. Checklist pour cadrer précisément ses accès.

- Auteur : Clément Hadrot
- Publié le : 2025-03-01
- Mis à jour le : 2025-03-01
- Catégorie : Sécurité
- URL : https://wpmoderne.dev.wordpress-developpement.fr/securite/encadrer-connecteur-ia-stripe-hubspot-jetons-limites/

## L’essentiel

- Cartographier les actions réellement exécutées par l'IA
- Créer un jeton distinct par service et par capacité
- Documenter les limites imposées à chaque agent

Combien d'extensions IA installées sur un site WordPress utilisent, sans le préciser dans leur documentation, un unique jeton d'administrateur pour parler à la fois à Stripe et à HubSpot ? La question mérite d'être posée systématiquement depuis que les extensions « assistant IA » se multiplient dans le répertoire officiel, promettant de générer des relances de paiement, de qualifier des prospects, ou de synchroniser des fiches client entre les deux services.

Le problème n'est pas l'intelligence artificielle en elle-même, mais la façon dont on la connecte aux services tiers. Un agent qui rédige un e-mail de relance n'a besoin d'aucun accès en écriture sur les remboursements Stripe. Un agent qui qualifie des leads dans HubSpot n'a besoin d'aucune visibilité sur l'historique complet des paiements. Cette checklist détaille comment cadrer les jetons d'un connecteur IA relié à ces deux services, sans entrer dans l'évaluation de la performance de ses suggestions.

## 1. Cartographier précisément les actions confiées à l'agent

Avant toute configuration de jeton, il faut lister noir sur blanc les actions que l'IA est censée exécuter, service par service. Une extension qui promet de « synchroniser les clients entre Stripe et HubSpot » peut recouvrir des réalités très différentes : simple lecture des paiements pour enrichir une fiche contact, ou création automatique de nouveaux contacts, ou pire, déclenchement de remboursements sur détection d'un litige signalé par un client.

1. Lister chaque action décrite dans la documentation de l'extension.
2. Associer à chaque action la portée API minimale correspondante côté Stripe et côté HubSpot.
3. Identifier les actions qui impliquent une écriture irréversible, comme un remboursement ou une suppression de contact.

## 2. Distinguer quatre catégories de portées avant de créer les jetons

Une fois la cartographie établie, quatre catégories se dégagent presque systématiquement pour ce type de connecteur : lecture des paiements Stripe, lecture des contacts HubSpot, écriture limitée sur les contacts HubSpot, et écriture sur les paiements Stripe. Chacune mérite un jeton distinct plutôt qu'une clé unique couvrant l'ensemble.

> L'essentiel à retenir : Cartographier les actions réellement exécutées par l'IA ; Créer un jeton distinct par service et par capacité ; Documenter les limites imposées à chaque agent

| Catégorie | Service | Portée typique | Risque si trop large |
| --- | --- | --- | --- |
| Lecture paiements | Stripe | `charge:read` | Exposition de l'historique financier complet |
| Lecture contacts | HubSpot | `crm.objects.contacts.read` | Fuite de coordonnées clients |
| Écriture contacts | HubSpot | `crm.objects.contacts.write` | Modification ou suppression de fiches sans validation |
| Écriture paiements | Stripe | `refund:write` | Remboursements déclenchés sans supervision humaine |

## 3. Créer un jeton dédié par capacité, jamais un jeton mutualisé

La tentation de mutualiser les accès pour simplifier la configuration est le principal facteur de dérive constaté. Un jeton HubSpot créé avec la portée `crm.objects.contacts.write` ne doit jamais être réutilisé pour d'autres intégrations du même site, même si cela semble pratique à court terme. De même côté Stripe, la restriction par clé restreinte (« Restricted key ») permet de limiter précisément les ressources accessibles à l'agent IA, sans lui accorder la clé secrète complète du compte.

```
define( 'HUBSPOT_TOKEN_LECTURE_CONTACTS', getenv( 'HS_TOKEN_READ' ) );
define( 'HUBSPOT_TOKEN_ECRITURE_CONTACTS', getenv( 'HS_TOKEN_WRITE' ) );
define( 'STRIPE_KEY_RESTREINTE_LECTURE', getenv( 'STRIPE_RESTRICTED_READ' ) );
```

## 4. Imposer une validation humaine sur toute action irréversible

Même correctement scopé, un jeton d'écriture confié à un agent IA reste une porte ouverte sur une action irréversible si aucune étape de confirmation n'existe. Une bonne pratique consiste à ce que l'extension ne déclenche jamais directement un appel en écriture, mais génère une proposition d'action stockée en attente, validée ensuite manuellement par un utilisateur disposant de la capacité WordPress appropriée avant exécution réelle de l'appel API.

- Aucune écriture Stripe déclenchée automatiquement sans validation humaine explicite.
- Journal horodaté de chaque proposition d'action générée par l'IA, acceptée ou rejetée.
- Alerte immédiate si le volume de propositions dépasse un seuil défini par jour.

> Confier un accès à une IA n'est pas différent de confier un accès à un prestataire externe : on ne lui donne jamais plus que ce que sa mission exige, même si la configuration d'un jeton unique semble économiser cinq minutes.

## Pour aller plus loin

Le réflexe du moindre privilège, appliqué depuis toujours aux comptes utilisateurs WordPress, s'applique désormais avec la même rigueur aux agents connectés par IA. La cartographie des actions, la distinction en quatre catégories de portées, la création de jetons dédiés et la validation humaine des actions irréversibles forment un socle de configuration qui protège autant le site que la relation de confiance avec les clients dont les données transitent par ces connecteurs.
