L’agent le plus difficile a gouverner est celui auquel un developpeur s’est connecte avec un abonnement personnel ou d’entreprise : Claude Code connecte avec Pro/Max, ou Codex connecte avec ChatGPT. Il s’execute sur un poste de travail, il s’authentifie avec un credential OAuth, et c’est exactement la surface qu’un guardrail de fournisseur cloud dans le chemin d’inference ne voit jamais (voir la comparaison avec les gateways). La “solution” tentante — placer un service devant qui detient l’abonnement et route son trafic — est une solution qu’Olivares AI ne construira pas, car les fournisseurs de modeles l’interdisent et parce que cela ferait de notre plan de controle un point unique de compromission de credential.
Cette page est le compte rendu honnete de la facon dont nous gouvernons ces agents sans jamais intermedier l’abonnement : ce que nous observons, ou nous appliquons les regles, et l’unique chemin etroit ou un gateway est approprie (et il ne concerne jamais l’abonnement).
La ligne rouge : nous ne routons jamais votre abonnement. Olivares AI ne detient, ne relaye et ne route jamais un credential d’abonnement tiers. La politique d’Anthropic elle-meme stipule : “Anthropic does not permit third-party developers to offer Claude.ai login or to route requests through Free, Pro, or Max plan credentials on behalf of their users” (Claude Code legal & compliance, consulte le 21-06-2026 — l’interdiction nomme les trois plans grand public Free, Pro, Max). Les conditions d’OpenAI fonctionnent de la meme maniere pour un login ChatGPT/Codex grand public. Notre posture est plus stricte que la ligne elle-meme : nous ne routons aucun OAuth d’abonnement, de quelque plan que ce soit. La gouvernance se fait autour de l’agent, jamais a l’interieur de son credential.
Pourquoi intermedier l’abonnement est exclu
Il convient d’etre precis sur la regle, car le conseiller juridique de l’acheteur la verifiera. La politique d’Anthropic trace deux listes qui ne doivent pas etre confondues :
- Qui peut utiliser OAuth — cinq plans : “OAuth authentication is intended exclusively for purchasers of Claude Free, Pro, Max, Team, and Enterprise subscription plans and is designed to support ordinary use of Claude Code and other native Anthropic applications.”
- Ce qu’un tiers ne peut pas faire — router pour le compte des utilisateurs : “Anthropic does not permit third-party developers to offer Claude.ai login or to route requests through Free, Pro, or Max plan credentials on behalf of their users.”
L’interdiction nomme explicitement les plans grand public (Free, Pro, Max). La page n’accorde pas, inversement, a quiconque la permission de router les postes Team ou Enterprise — elle ne dit rien a ce sujet, et nous ne lisons pas le silence comme une autorisation. Pour les developpeurs construisant des outils, les recommandations d’Anthropic elles-memes orientent hors de l’OAuth d’abonnement : “Developers building products or services that interact with Claude’s capabilities, including those using the Agent SDK, should use API key authentication through Claude Console or a supported cloud provider.” (source ; repartition par conditions : Team/Enterprise/API sous les Commercial Terms, Free/Pro/Max sous les Consumer Terms.)
Notre connecteur Codex encode la meme discipline dans le code, par conception :
le credential d’automatisation est une API key OpenAI ou un workspace
access token, jamais un abonnement personnel ChatGPT — “proxying it for
third-party/programmatic use violates OpenAI’s terms exactly as a consumer
Claude subscription does for Anthropic. There is no subscription config field by
design” (connectors/codex/codex.go). La ligne rouge n’est donc pas une
promesse marketing ajoutee apres coup ; c’est la forme du produit.
Trois mecanismes, aucun n’est l’abonnement
Nous gouvernons un agent authentifie par abonnement a travers trois canaux independants. Les deux premiers ne touchent jamais l’inference ; le troisieme ne la touche que pour le trafic qui s’authentifie avec une API key, jamais un abonnement.
1. Observer — telemetrie, usage et posture
Claude Code emet de l’OpenTelemetry, et un administrateur peut l’activer pour l’ensemble de la flotte depuis le tier manage : “Administrators can configure OpenTelemetry settings for all users through the managed settings file” (Claude Code monitoring). Nous ingerons ce signal gen-ai — sessions, tokens, cout, activite d’outils — et le transformons en carte d’acces et constats de posture. Point crucial, c’est un processus minimal en donnees par construction du cote de Claude Code aussi : le contenu des prompts est “redacted by default” et les details des outils, le contenu des outils et les corps de requetes API bruts sont chacun “(default: disabled)” (meme source). Nous consommons l’usage et les metadonnees, pas les conversations.
Pour Codex, le meme canal d’observation est l’ingestion par le connecteur des
API Analytics et Compliance/Audit — usage, adoption et enregistrements d’audit
immuables transformes en echantillons de cout et preuve inviolable, portant
“never prompt/diff content or key values” (connectors/codex/codex.go).
2. Managed settings + hooks — le PEP en processus
L’observation n’est pas de l’enforcement. Le canal d’enforcement pour Claude Code
est son fichier de managed settings au tier politique du systeme
d’exploitation, qui porte un hook PreToolUse non substituable qui rappelle le
point de decision d’Olivares avant l’execution de chaque outil. Anthropic documente
la propriete sur laquelle nous nous appuyons : “Environment variables defined in
the managed settings file have high precedence and cannot be overridden by users”,
et les managed settings “can be distributed via MDM”
(monitoring).
Olivares genere ce fichier (olivares agent managed-settings) avec
allowManagedHooksOnly pour qu’un hook du developpeur ne puisse jamais preceder
ou contourner le hook gouverne, et le endpoint par session et le bearer sont
injectes au lancement — pas ecrits dans le fichier statique. La decision
elle-meme est deny-closed a chaque edge : un tool-call n’est autorise que
lorsqu’une identite ferme se resout, que la disposition de politique n’est pas
deny, que le moteur de politique en temps reel ne l’interdit pas, et — pour un
ask — qu’une approbation humaine est liee au hash exact du plan. Un arret
d’urgence (kill switch) prevaut sur tout, y compris un
break-glass actif.
C’est le mecanisme que la page du PEP de hooks Claude Code documente operationnellement, et c’est ce qui nous permet de gouverner l’agent de developpement local, pas simplement de l’observer.
3. Gateway pour une API key — jamais pour OAuth
Il existe exactement un chemin ou Olivares se place dans la ligne de requete
d’inference, et il n’existe que pour les appelants qui n’utilisent pas le canal
managed-settings de Claude Code : le trafic SDK brut ou curl authentifie avec
une API key (ou un equivalent Bedrock/Vertex). Claude Code route ces requetes
avec ANTHROPIC_BASE_URL — “To route requests through a custom API endpoint, set
the ANTHROPIC_BASE_URL environment variable instead” — et authentifie un
gateway avec un bearer via ANTHROPIC_AUTH_TOKEN, “when routing through an LLM
gateway or proxy that authenticates with bearer tokens rather than Anthropic API
keys” (Claude Code IAM). Pointe vers le
proxy d’inference inline d’Olivares, ce trafic beneficie d’un pipeline gouverne
— residence, acces aux modeles, fenetre de contexte, DLP, budget, enregistrement
— avant d’etre transmis.
La frontiere est absolue : ce chemin transporte du trafic API-key / bearer,
jamais le credential OAuth d’un abonnement. C’est la couture d’enforcement pour
les appelants SDK/curl que les managed settings ne peuvent pas atteindre, et
rien de plus.
L’encart d’honnetete : deploiement verifie, pas incontournable
Un enforcement dont nous pouvons prouver qu’il est deploye, pas un enforcement qui ne peut pas etre contourne. Le PEP managed-settings + hook est deny-closed et non substituable par l’utilisateur via les parametres — mais ce n’est pas de la magie. Un developpeur qui pointe
ANTHROPIC_BASE_URLvers son propre endpoint envoie l’inference ailleurs entierement ; notre propre note d’ingenierie le dit clairement : “a customANTHROPIC_BASE_URLbypasses server-managed-settings entirely” (modules/inferenceproxy/doc.go). Nous n’affirmons donc jamais que le PEP est impossible a eviter. A la place, nous affirmons deux choses que nous pouvons soutenir :
- Il est deploye de maniere verifiee. Olivares atteste que les managed settings et le hook PEP sont effectivement presents sur l’hote — un hote non provisionne s’execute en mode non gouverne mais observe, et cela est visible, pas cache.
- Le contournement est lui-meme un constat. Un
ANTHROPIC_BASE_URLnon standard sur un hote apparait comme un constat de posture, et un environnement manage qui fixe une base URL divergeant du gateway Olivares autorise declenche un constat de derive (connectors/claude-config,connectors/managedsettings). L’evasion ne passe pas inaperçue ; elle s’allume.“Deploiement verifie, evasion en tant que constat” est l’histoire d’enforcement honnete pour tout agent qui s’execute sur une machine que le developpeur controle. Nous ne vous vendrons pas de l‘“incontournable.”
L’asymetrie Codex, enoncee honnetement
Claude Code et Codex ne sont pas symetriques, et la difference compte. Pour Codex
authentifie par ChatGPT, il n’existe aucun equivalent documente de
ANTHROPIC_BASE_URL — la
page de configuration geree
d’OpenAI ne documente aucun parametre ni variable d’environnement pour router
l’inference via une base URL ou un gateway personnalise (verifie par consultation
le 21-06-2026 ; une absence sur cette page, pas une preuve qu’il n’en existe
aucun ailleurs). Nous ne gouvernons donc pas Codex en interceptant son
inference.
A la place, nous le gouvernons la ou OpenAI donne aux administrateurs des
controles appliques. La configuration geree Codex permet a une entreprise de
definir des “Requirements: admin-enforced constraints that users can’t override”
qui “constrain security-sensitive settings (approval policy, approvers reviewer,
automatic review policy, sandbox mode, permission profiles, web search mode,
managed hooks, and optionally which MCP servers users can enable)” (meme source).
Olivares redige et atteste ces exigences (connectors/codex-managed-config) —
politique d’approbation, mode sandbox, l’allowlist MCP, telemetrie expurgee
(log_user_prompt = false) — et ingere les preuves Analytics et Compliance de
Codex. Gouvernance par la configuration et la preuve, pas par un
man-in-the-middle sur l’appel au modele.
En un tableau
| Canal | Ce qu’il fait | Touche l’inference ? | Le credential |
|---|---|---|---|
| Observer | Usage, cout, activite d’outils vers carte d’acces + posture ; Analytics/Compliance Codex vers ledger | Non | Aucun — telemetrie uniquement, contenu expurge par defaut |
| Managed settings + hooks | PEP PreToolUse deny-closed sur Claude Code, non substituable via les parametres | Non | Celui de l’agent ; nous ne le voyons jamais |
| Gateway (API key uniquement) | Pipeline gouverne pour les appelants SDK brut/curl via ANTHROPIC_BASE_URL | Oui | API key / bearer — jamais OAuth d’abonnement |
| Config geree Codex | Exigences appliquees par l’admin (approbation/sandbox/MCP) + ingestion de preuve | Non | Celui de l’organisation ; configuration, pas interception |
Connexe
- Where Olivares fits vs your gateway / Guardrails — pourquoi rien de tout cela ne concurrence votre AI gateway.
- Olivares AI vs WitnessAI — le face-a-face sur la gouvernance des agents dans les IDE.