Aller au contenu

How it works

Gouverner les agents Claude Code et Codex authentifies par abonnement

L'agent le plus difficile a gouverner s'authentifie avec un abonnement personnel ou d'entreprise. La solution tentante — relayer l'abonnement — est une solution que nous ne construirons pas. Voici comment nous gouvernons sans intermediation.

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_URL vers son propre endpoint envoie l’inference ailleurs entierement ; notre propre note d’ingenierie le dit clairement : “a custom ANTHROPIC_BASE_URL bypasses 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 :

  1. 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.
  2. Le contournement est lui-meme un constat. Un ANTHROPIC_BASE_URL non 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

CanalCe qu’il faitTouche l’inference ?Le credential
ObserverUsage, cout, activite d’outils vers carte d’acces + posture ; Analytics/Compliance Codex vers ledgerNonAucun — telemetrie uniquement, contenu expurge par defaut
Managed settings + hooksPEP PreToolUse deny-closed sur Claude Code, non substituable via les parametresNonCelui de l’agent ; nous ne le voyons jamais
Gateway (API key uniquement)Pipeline gouverne pour les appelants SDK brut/curl via ANTHROPIC_BASE_URLOuiAPI key / bearer — jamais OAuth d’abonnement
Config geree CodexExigences appliquees par l’admin (approbation/sandbox/MCP) + ingestion de preuveNonCelui de l’organisation ; configuration, pas interception

Connexe

Demander à Claude

Questions

Olivares route-t-il mon abonnement Claude Pro/Max ?

Jamais. La politique d'Anthropic interdit le routage par des tiers via les credentials Free, Pro ou Max. Notre posture est plus stricte : nous ne routons aucun OAuth d'abonnement, quel que soit le plan.

Et pour Claude Team ou Enterprise ?

L'interdiction nomme Free, Pro, Max. La page d'Anthropic ne dit rien sur le routage Team/Enterprise. Nous ne lisons pas le silence comme une autorisation — donc nous n'en routons aucun.