Le modèle de sécurité, en clair

Cette page décrit des mécanismes appliqués par le serveur, pas des intentions. Elle est écrite pour être lue par votre équipe IT.

0 compte de service OAuth 2.1 avec PKCE en S256 88 actions visibles sur 193 Droits recalculés à chaque appel

Qu’est-ce que cet assistant peut faire, et au nom de qui

La réponse tient en une phrase : il agit avec vos droits, et chaque geste est tracé. Le reste de la page déplie cette phrase, mécanisme par mécanisme.

Le serveur n’a aucun pouvoir propre

Beaucoup d’intégrations fonctionnent avec un compte technique : un identifiant unique, très privilégié, partagé par tous les usages. C’est pratique à construire et impossible à auditer. Le MCP Faast ne fonctionne pas comme cela.

Le serveur ne détient aucun identifiant, aucune session permanente, aucun accès global. Il n’a rien à prêter à un assistant. Chaque requête qui arrive porte le jeton de la personne qui parle, et chaque action recalcule les droits de cette personne au moment où elle s’exécute, avec le même moteur d’autorisation que l’application web.

Les écritures empruntent exactement les mêmes chemins que l’interface : mêmes transactions, mêmes verrous de version, mêmes journaux. Il n’existe pas de voie parallèle avec des règles plus souples.
0 compte de service sur le serveur MCP
88 actions visibles pour un compte marque
193 actions au total, les 105 autres étant réservées à l’équipe Caast

Un assistant branché sur Faast ne dépasse jamais la personne qui lui parle.

Vous ne voyez qu’une marque dans l’application L’assistant n’en voit qu’une. Les autres n’apparaissent nulle part, pas même par leur identifiant.
Vous n’écrivez pas dans le scénario L’écriture est refusée, que la demande soit polie, répétée ou appuyée par l’assistant lui-même.
Ajoute Camille à l’équipe du live du 8 septembre

L’action s’exécute avec vos droits. Si votre rôle ne vous autorise pas à gérer l’équipe de ce live, elle est refusée, avec le même verdict que si vous aviez cliqué dans l’application.

Comment un assistant obtient l’accès

Deux chemins, et un seul principe : votre mot de passe ne transite jamais par l’assistant.

  1. 1

    Découverte

    L’assistant interroge l’adresse du serveur. Celui-ci publie ses métadonnées au standard RFC 9728, sur /.well-known/oauth-protected-resource. L’assistant sait alors où s’authentifier, sans configuration manuelle de votre part.

  2. 2

    Enregistrement du client

    Le client MCP (Claude, ChatGPT, Cursor, VS Code, Gemini CLI) s’enregistre auprès du serveur via l’enregistrement dynamique standard, RFC 7591. Personne n’a de clé à créer à la main. Les enregistrements restés inactifs sont purgés automatiquement.

  3. 3

    Autorisation dans le navigateur

    Une page Faast s’ouvre dans votre navigateur. Vous vous connectez avec votre compte habituel, sur le domaine Faast, avec vos moyens d’authentification habituels. L’assistant ne voit pas cet échange.

  4. 4

    Consentement explicite

    Un écran nomme le client qui demande l’accès et attend votre validation. Rien ne s’active tant que vous n’avez pas validé.

  5. 5

    Échange du code

    Le code d’autorisation est à usage unique et protégé par PKCE en S256. Aucun jeton ne transite dans une URL. C’est de l’OAuth 2.1 standard, sans variante maison.

  6. 6

    Durée de vie

    La session se renouvelle seule grâce au jeton de rafraîchissement prévu par le standard. Si elle expire, un clic sur « Se connecter » la relance.

Le mot « client » désigne ici le logiciel assistant, au sens du protocole. Pour la marque qui utilise Faast, nous disons « la marque ».

Le jeton d’accès personnel

Certains outils ne parlent pas OAuth, ou vous préférez une configuration figée pour un agent interne. Dans ce cas, la page Assistant IA de l’application (entrée de la barre latérale, pas un sous-menu des réglages) permet de créer un jeton d’accès personnel, à coller comme jeton porteur dans le client de votre choix.

Un jeton personnel porte les droits de son propriétaire, et rien d’autre. Il vit et meurt avec le compte qui l’a créé.

La révocation

La même page liste vos jetons et permet d’en supprimer un. La suppression coupe l’accès du client qui l’utilisait à la requête suivante, sans toucher aux autres jetons ni à votre compte. Désactiver le compte Faast d’une personne coupe simultanément tous ses accès MCP : le serveur n’entretient aucune liste d’accès séparée qui pourrait survivre au compte.

  • Retirer le connecteur côté assistant
  • Supprimer le jeton depuis la page Assistant IA
  • Désactiver le compte Faast de la personne

Ce que le serveur applique à chaque appel

Ces règles ne dépendent ni du client branché, ni de la formulation de la demande. Elles s’appliquent au moment de l’exécution, côté serveur.

Autorisation par appel

La liste des actions présentée à l’assistant s’adapte à votre compte. Cette visibilité n’est qu’un confort d’usage : la frontière réelle est ailleurs, dans le contrôle que le serveur refait à l’exécution de chaque action.

  • Un client qui forgerait un appel vers une action masquée reçoit le même refus que s’il l’avait vue.
  • Le moteur qui décide est celui de l’application web, appelé avec votre identité et l’état de vos rôles à la seconde où l’action part.

Refus indistincts

  • Un seul message pour deux situations : ressource introuvable ou accès refusé.
  • Rien ne permet de deviner qu’un identifiant existe en dehors de votre périmètre.
  • L’énumération à l’aveugle ne rapporte donc rien.

Audit intégral

  • Chaque appel est journalisé, lectures comprises : utilisateur, action, décision, origine.
  • Les arguments ne sont conservés que sous forme d’empreinte, jamais en clair. Un identifiant de live ou un texte de scénario n’entre pas dans le journal.
  • Quand le support agit au nom d’un utilisateur, la ligne porte aussi l’identité de l’opérateur.

Suppressions critiques bloquées

Certaines opérations n’ont rien à faire au bout d’une phrase mal formulée. Elles sont retirées du MCP, pour tous les rôles, sans exception ni contournement.

  • Supprimer un live entier, une marque ou un compte est refusé à tout le monde via le MCP, équipe Caast comprise.
  • Ces opérations repartent vers l’application, où elles demandent une confirmation humaine.
  • Les suppressions du quotidien restent possibles : un bloc de scénario, un sondage, une tâche.
  • Un garde-fou s’ajoute quand l’élément visé est encore référencé ailleurs.

Budgets appliqués côté serveur

120appels par minute et par utilisateur, comptés par instance
200éléments au maximum dans une page de résultats
60spar action, porté à 5 min pour les générations de contenu

À quoi s’ajoute une validation stricte des entrées : chaque action déclare son schéma, et un argument hors schéma est rejeté avant d’atteindre la base.

Le contenu est une donnée, jamais un ordre

C’est le point que les équipes sécurité regardent en premier depuis que les assistants manipulent du texte venu de l’extérieur. Un scénario, un commentaire de validation, une fiche produit peuvent contenir n’importe quelle phrase, y compris une phrase qui ressemble à une instruction.

Les instructions du serveur rappellent explicitement à l’assistant que tout contenu retourné est une donnée à traiter, jamais un ordre à exécuter, et que les actions destructives demandent votre confirmation. Cette consigne renforce le comportement de l’assistant. Le rempart, lui, est plus bas : un texte piégé n’obtient aucun droit qu’il n’avait déjà, et sa demande de supprimer la marque se heurte au refus opposé à tous.

Les conflits d’écriture

Chaque bloc de scénario porte un verrou de version. Si le bloc a changé entre la lecture et l’écriture, la modification est refusée avec un conflit 409. L’assistant relit alors la version fraîche et réapplique sa modification.

Ce mécanisme n’est pas propre au MCP : il protège de la même façon deux personnes dans l’application, une personne et un assistant, ou deux assistants. Personne n’écrase silencieusement le travail d’un collègue.

Supprime complètement le live du 8 septembre

Refusé, pour tout le monde et quel que soit le rôle. L’assistant vous renvoie vers l’application, où la suppression demande une confirmation humaine.

Ce que voit l’éditeur de votre assistant

Ce point mérite d’être dit franchement, parce qu’il ne dépend pas de Faast. Quand vous utilisez un assistant IA, votre conversation transite par l’éditeur de cet assistant : Anthropic si vous utilisez Claude, OpenAI si vous utilisez ChatGPT, et ainsi de suite selon le client que vous branchez. Cela vaut pour vos questions comme pour les réponses que Faast renvoie et que l’assistant lit pour vous répondre.

La conservation se règle chez l’éditeur La conservation des conversations et l’usage éventuel pour l’entraînement se règlent dans les paramètres de votre organisation, chez l’éditeur, pas chez Faast.
Le choix du client est un choix de politique de données C’est la décision structurante à instruire avec votre équipe IT, avant même la question du branchement.
Côté Faast, rien ne part de lui-même Rien ne sort en dehors de ce que votre conversation demande : le serveur répond à des appels, il n’en émet pas.

Si votre politique interne interdit qu’un contenu donné sorte du système d’information, la question à trancher n’est pas « peut-on brancher le MCP », mais « quel assistant, avec quel contrat, avec quels réglages de conservation ». La réponse ne change rien au modèle d’autorisation décrit plus haut.

La politique de confidentialité de la plateforme s’applique au MCP comme au reste de Faast : app.faast.tv/legal/privacy.

La réversibilité

Rien de ce qui est branché ici n’est difficile à débrancher.

Côté assistant
Retirer le connecteur Faast, comme n’importe quelle intégration.
Côté Faast
Supprimer le jeton concerné depuis la page Assistant IA.
Côté organisation
Désactiver le compte, ce qui coupe l’ensemble des accès de la personne.
Dans les trois cas
L’accès est coupé dès la requête suivante, sans délai de propagation.

Ce qui reste après coup

  • Les données créées dans Faast, qui sont vos données et vivent dans l’application comme si elles avaient été saisies à la main.
  • L’historique de vos conversations, régi par la politique de conservation de l’éditeur de votre assistant.

Le MCP n’ajoute aucun stockage propre de vos contenus.

Check-list pour l’équipe IT

Les questions posées en revue de sécurité, avec la réponse.

Identité et accès

Existe-t-il un compte de service ou une clé d’organisation ?

Non. Le serveur n’a aucun identifiant propre. Chaque appel porte le jeton d’un utilisateur nominatif, et les droits sont recalculés au moment de l’exécution.

Quel protocole d’authentification ?

OAuth 2.1 avec PKCE en S256, découverte au standard RFC 9728, enregistrement dynamique de client au standard RFC 7591. En alternative, un jeton d’accès personnel créé et révoqué dans l’application.

Quel transport ?

HTTPS de bout en bout. Le protocole est le Model Context Protocol en Streamable HTTP, sans état conservé côté serveur entre deux appels.

Le périmètre d’accès est-il le même que dans l’application ?

Oui, c’est le même moteur d’accès : marques, lives et équipes accessibles selon le rôle, recalculés à chaque appel. Il n’y a pas de table de droits spécifique au MCP.

Exécution, journal, garde-fous

Que se passe-t-il si un assistant appelle une action qu’il n’est pas censé voir ?

Elle est refusée. La liste d’actions présentée est adaptée au compte pour le confort d’usage, mais l’autorisation est vérifiée côté serveur, indépendamment de ce que le client affiche.

Peut-on énumérer des ressources qui ne nous appartiennent pas ?

Non. Le refus est indistinct : « ressource introuvable ou accès refusé », sans révéler laquelle des deux situations s’applique.

Qu’est-ce qui est journalisé, et pendant combien de temps ?

Chaque appel, lectures comprises : utilisateur, action, décision, origine. Les arguments sont stockés sous forme d’empreinte uniquement. La durée de conservation relève de la politique de la plateforme : demandez-la à l’équipe Caast si vous devez la documenter.

Une action destructrice peut-elle passer sans intervention humaine ?

Les suppressions critiques (live entier, marque, compte) sont refusées à tous via le MCP. Les suppressions du quotidien sont possibles avec les droits correspondants, et les instructions du serveur demandent à l’assistant votre confirmation.

Comment le service se protège-t-il d’un usage automatisé anormal ?

Budget de l’ordre de 120 appels par minute et par utilisateur appliqué par instance, pagination à 200 éléments, budgets temps par action (60 secondes en général, jusqu’à 5 minutes pour les générations), validation stricte des entrées contre le schéma de chaque action.

Le contenu récupéré peut-il détourner l’assistant ?

Un contenu piégé ne confère aucun droit supplémentaire : il se heurte aux mêmes refus. Les instructions du serveur rappellent en outre à l’assistant de traiter tout contenu comme une donnée, jamais comme un ordre.

Données, révocation, déploiement

Nos données sortent-elles du système d’information ?

Oui, vers l’éditeur de l’assistant que vous choisissez, comme pour tout usage d’un assistant IA. La conservation et l’usage pour l’entraînement se règlent dans les paramètres de votre organisation chez cet éditeur. Faast n’émet aucun envoi en dehors des réponses à vos appels.

Comment révoque-t-on un accès en urgence ?

Supprimer le jeton depuis la page Assistant IA, ou désactiver le compte. L’accès tombe à la requête suivante. Il n’existe aucune liste d’accès MCP séparée qui survivrait à la désactivation du compte.

L’équipe Caast peut-elle agir au nom d’un de nos utilisateurs ?

L’accès du support au nom d’un utilisateur existe pour l’assistance, et il est tracé avec l’identité de l’opérateur, pas seulement celle de l’utilisateur concerné.

Combien d’actions sont réellement exposées à un compte marque ?

88 sur 193. Les 105 restantes sont réservées à l’équipe Caast et n’apparaissent pas chez une marque.

Peut-on déposer un fichier via le MCP ?

Non. La médiathèque se consulte mais ne s’alimente pas par le MCP ; un document de brief se rattache par son lien. C’est une limite assumée, et elle réduit d’autant la surface d’écriture.

Y a-t-il un mode de test avant déploiement à l’équipe ?

Oui, par construction : une seule personne branche son compte, avec ses droits, et rien n’est ouvert aux autres tant qu’elles ne se connectent pas elles-mêmes. Il n’y a pas d’activation globale à l’échelle de la marque.

Les points qui ne figurent pas sur cette page (hébergement, certifications, sous-traitants, durées de conservation contractuelles, engagements de niveau de service) relèvent du dossier plateforme de Faast, pas du MCP : demandez-les à l’équipe Caast plutôt que de les déduire d’ici.

Bonnes pratiques d’usage en équipe

Le modèle technique tient. Ce qui l’affaiblit, en pratique, ce sont les habitudes : un compte par personne, aucun jeton qui circule, un départ traité au bon endroit. Le quatrième bloc est la liste à cocher du premier jour.

Un compte par personne

Chaque membre de l’équipe se connecte avec son propre compte Faast. C’est ce qui rend l’audit lisible : sans cela, le journal dit « quelqu’un a modifié le scénario » au lieu de dire qui. C’est aussi ce qui rend les droits utiles : deux personnes qui posent la même question à leur assistant reçoivent des réponses différentes, chacune bornée à son périmètre.

Rien à activer côté marque : toute personne qui a déjà un compte Faast peut brancher son assistant, seule, en quelques minutes.

Jamais de jeton partagé

Un jeton d’accès personnel est personnel. Le copier dans un canal d’équipe, un fichier de configuration partagé ou un outil interne commun casse d’un coup la traçabilité et la révocation.

  • Un jeton par personne et par usage, pour pouvoir en couper un sans couper les autres.
  • Jamais de jeton dans une messagerie, un ticket, un document partagé ou un dépôt de code.
  • Pour un agent interne ou un automatisme, un jeton dédié, rattaché à une personne identifiée qui en reste responsable.
  • Au moindre doute sur une fuite, supprimer le jeton et en créer un autre : l’opération prend quelques secondes et n’affecte rien d’autre.

Un jeton dédié à un automatisme ressemble à un compte de service, mais n’en est pas un : il porte les droits d’une personne réelle et disparaît avec son compte. Choisissez cette personne en conséquence, et documentez le rattachement.

Quand quelqu’un quitte l’équipe

Le départ d’un collaborateur se traite au même endroit que d’habitude, et cela suffit.

  1. 1Désactiver le compte Faast C’est le geste qui compte. Les droits tombent, donc tous les appels MCP de cette personne tombent avec eux, dès la requête suivante. Aucune liste d’accès parallèle ne survit.
  2. 2Vérifier les jetons rattachés Si la personne avait créé des jetons pour des automatismes partagés, ils disparaissent avec son compte : identifiez ces automatismes avant le départ et recréez leurs jetons sur un compte actif, sinon ils s’arrêteront.
  3. 3Rappeler le retrait côté assistant Le connecteur reste peut-être déclaré dans son assistant personnel. Il n’y récupérera plus rien, mais un retrait propre évite les tickets « ça ne marche plus » et les captures d’écran d’erreurs.
  4. 4Reprendre ce qui était en cours Les lives, scénarios et tâches restent dans Faast : ce sont les données de la marque, pas celles de la personne. Réattribuez les tâches ouvertes dans le cockpit.

À faire au démarrage

  • Décider quel assistant est autorisé dans l’entreprise, et régler la conservation des conversations chez son éditeur.
  • Vérifier que chaque personne concernée a bien son propre compte Faast.
  • Privilégier la connexion OAuth, et réserver les jetons personnels aux outils qui ne savent pas faire autrement.
  • Commencer par des demandes de lecture (« liste mes lives à venir ») avant d’ouvrir les écritures dans les usages quotidiens.
  • Prévoir qui, dans l’équipe, sait révoquer un jeton en cas de doute.

Ce qu’il faut retenir

  • Le serveur n’a aucun pouvoir propre : il n’agit que porté par le jeton d’une personne.
  • Les droits sont recalculés à chaque appel, par le même moteur que l’application.
  • Tout est journalisé, les arguments sous forme d’empreinte uniquement.
  • Les suppressions critiques sont refusées à tous, sans exception.
  • L’accès se coupe en quelques secondes, depuis Faast ou depuis l’assistant.
  • La seule vraie question à instruire côté politique de données concerne l’éditeur de l’assistant que vous choisissez.
L’adresse du serveur
https://mcp.faast.tv

Une personne suffit pour évaluer : elle branche son compte, avec ses droits, et rien n’est ouvert aux autres tant qu’elles ne se connectent pas elles-mêmes.

Le détail des actions exposées, action par action, est publié sur la page des outils. Les 88 actions