- Pour connecter Claude Code sur votre propre machine à une passerelle existante, consultez Connecter Claude Code à une passerelle LLM
- Pour savoir ce que Claude Code envoie à une passerelle et ce qu’il faut transférer, consultez la référence du protocole de passerelle
Prérequis
Pour terminer le déploiement, vous aurez besoin de :- Une passerelle déployée sur votre infrastructure, servant HTTPS à l’adresse exacte que vous distribuerez aux développeurs, pas une adresse qui redirige vers elle, et configurée pour router les noms de modèles Claude vers votre fournisseur
- Une identifiant de fournisseur pour que la passerelle le transfère avec :
- Pour l’API Anthropic : une clé API de la Console Claude
- Pour un fournisseur cloud : des identifiants cloud avec accès aux modèles. Consultez les prérequis sur la page Amazon Bedrock, Google Vertex AI, ou Microsoft Foundry
- Un moyen de livrer des fichiers de paramètres aux machines des développeurs, comme MDM ou gestion de configuration
- Si vous n’en avez pas encore, comment les paramètres atteignent les appareils compare les options
Exigences de la passerelle
Quel que soit le produit qui fournit la passerelle, il doit :- Accepter un format API pris en charge : l’un des formats du tableau des formats API. Les étapes de déploiement ci-dessous supposent l’API Messages Anthropic à
POST /v1/messages, que la plupart des passerelles servent - Diffuser les réponses : transmettre les événements envoyés par le serveur au fur et à mesure qu’ils arrivent au lieu de mettre en mémoire tampon la réponse entière
- Router les noms de modèles Claude : mapper chaque nom que les développeurs utilisent à un modèle en amont. Claude Code envoie un nom de modèle tel que
claude-sonnet-4-6dans chaque requête ; dans la plupart des produits de passerelle, le mappage est une liste de modèles ou une table de routage dans la propre configuration de la passerelle - Transférer les en-têtes et le corps inchangés : transmettre
anthropic-beta,anthropic-version, et le corps de la requête dans les deux sens ; le tableau de passage des fonctionnalités mappe chacun à la fonctionnalité qui se casse sans lui - Retourner les erreurs en amont non modifiées : la récupération automatique de Claude Code correspond au libellé de l’erreur, donc envelopper les erreurs dans l’enveloppe propre de la passerelle la casse
- Exempter le chemin de l’inspection WAF du corps de la requête : les invites Claude Code contiennent du code source et des balises de style XML qui correspondent aux règles du corps de cross-site-scripting ; un WAF devant la passerelle retourne
403sur les vraies sessions tandis que les courtes demandes de test passent
GET /v1/models pour que Claude Code puisse remplir le sélecteur de modèles de votre passerelle avec la découverte de modèles.
Étapes du déploiement
Le déploiement prend cinq étapes, chacune avec un point de contrôle :- Confirmer que la passerelle route vos modèles
- Émettre une identifiant à chaque développeur
- Tester Claude Code contre la passerelle
- Distribuer l’URL de base et les identifiants
- Vérifier à partir d’une machine de développeur
| Identifiant | Qui le détient | Placeholder dans les points de contrôle |
|---|---|---|
| Identifiant de fournisseur | La passerelle, qui le transfère au fournisseur en amont | Configuré sur la passerelle ; n’apparaît jamais dans les commandes client |
| Identifiant administratif de la passerelle | Vous, si votre produit de passerelle en émet un pour son interface d’administration ou de test | <gateway-key> |
| Clé de développeur | Chaque développeur, émis par la passerelle dans Émettre des identifiants de développeur | <developer-key> |
Confirmer que la passerelle route vos modèles
Votre passerelle devrait déjà être configurée avec votre identifiant de fournisseur, écoutant à son URL de base, et transférant les requêtes à l’API de votre fournisseur. Testez que le chemin fonctionne de bout en bout avec une requête minimale, en substituant deux valeurs de votre déploiement :<gateway-key>est tout identifiant qui vous permet d’appeler la passerelle en ce moment : une clé administrative, une clé de test, ou votre propre clé de développeur si vous en avez déjà émis une. Pas tous les produits de passerelle ont un identifiant administratif séparé ; si le vôtre n’en a pas, émettez-vous d’abord une clé de développeur dans Émettre des identifiants de développeurmodelest un nom de modèle Claude que votre passerelle est configurée pour router. L’exemple utiliseclaude-sonnet-4-6; substituez un nom que vous avez configuré
- Bash ou Zsh
- PowerShell
200 avec un champ content signifie que la passerelle a atteint le fournisseur avec ce nom de modèle. Un 404 signifie que ce nom n’est pas routé à la passerelle ; un 401 du fournisseur signifie que l’identifiant de fournisseur de la passerelle est incorrect.
Répétez la requête une fois par nom de modèle Claude dans la configuration de routage de votre passerelle. Un nom que la passerelle ne route pas retourne 404 à tout développeur qui le sélectionne, donc testez chaque nom avant le déploiement.
Évitez de servir la passerelle derrière une redirection. Une redirection peut supprimer le corps de la requête ou supprimer l’en-tête d’identifiant sur les requêtes d’inférence, et la découverte de modèles traite toute redirection comme un échec pour que l’identifiant ne puisse pas fuir vers une cible de redirection.
Émettre des identifiants de développeur
Chaque développeur a besoin de sa propre clé de passerelle pour s’authentifier. Créez un identifiant par développeur à la passerelle, en suivant la documentation de gestion des identifiants de votre produit. Confirmez qu’une clé fraîchement émise fonctionne contre la passerelle avec la même requête que Confirmer que la passerelle route vos modèles, en remplaçant<gateway-key> par la nouvelle <developer-key> :
- Bash ou Zsh
- PowerShell
200 avec un champ content signifie que la clé de développeur atteint la passerelle et que la passerelle la transfère. Un 401 ici, quand l’étape précédente a réussi, signifie que la clé de développeur est incorrecte ou n’a pas encore pris effet à la passerelle.
Émettre une clé par développeur plutôt qu’une clé partagée est ce qui rend l’attribution d’utilisation par développeur et le départ individuel possibles. La variable d’environnement qui contient la clé dépend de quel en-tête la passerelle lit. Pour une passerelle qui vérifie les identifiants dans l’en-tête Authorization: Bearer, les développeurs définissent leur clé dans ANTHROPIC_AUTH_TOKEN. Pour une passerelle qui lit les clés de l’en-tête x-api-key, les développeurs définissent ANTHROPIC_API_KEY à la place ; le tableau des identifiants couvre le mappage.
Tester Claude Code contre la passerelle
Exécutez Claude Code via la passerelle vous-même avant de distribuer quoi que ce soit, en utilisant la même configuration que le déploiement livrera à l’échelle de la flotte. Tapez-les directement dans un terminal, pas dans un fichier.env ou de paramètres ; ils ne durent que pour cette session de terminal, donc la fermer retourne votre machine à sa configuration normale. Utilisez ANTHROPIC_API_KEY au lieu de ANTHROPIC_AUTH_TOKEN si votre passerelle lit l’en-tête x-api-key :
- Bash ou Zsh
- PowerShell
POST au chemin /v1/messages avec le statut 200. Claude Code ajoute une chaîne de requête telle que ?beta=true, donc correspondez sur le chemin, pas l’URL complète. Deux messages d’erreur pointent dans des directions différentes :
Not logged in: vérifiez le journal de la passerelle pour distinguer les deux causes. S’il est vide, aucun identifiant n’a atteint la session et aucune requête n’a quitté la machine ; réexécutez les exports dans le shell que vous testez. S’il affiche une requête rejetée avecx-api-keydans le corps401, la passerelle s’attend à des clés dans cet en-tête à la place ; basculez versANTHROPIC_API_KEYFailed to authenticate. API Error: 401signifie qu’un identifiant a été envoyé et rejeté, et le journal de la passerelle dit où : un401nommantapi.anthropic.comou le point de terminaison de votre fournisseur signifie que la passerelle a atteint l’amont mais son identifiant de fournisseur a été rejeté, donc la clé de développeur a fonctionné et l’identifiant de fournisseur que la passerelle détient est incorrect ou un placeholder
ANTHROPIC_BASE_URL ne pointe pas vers la passerelle.
Distribuer la configuration
Chaque machine de développeur a besoin de l’adresse de la passerelle et d’un identifiant. Vous pouvez les distribuer de manière centralisée via les paramètres gérés, pour que les développeurs ne configurent rien, ou remettre aux développeurs les valeurs à définir eux-mêmes.Ce qu’il faut distribuer
Le même ensemble de variables s’applique quel que soit le chemin que vous choisissez. La plupart des déploiements n’ont besoin que deANTHROPIC_BASE_URL et d’un identifiant ; incluez les lignes conditionnelles quand votre configuration de passerelle l’exige.
| Variable ou paramètre | Ce qu’il fait | Inclure quand |
|---|---|---|
ANTHROPIC_BASE_URL | Envoie les requêtes API de Claude Code à la passerelle au lieu de api.anthropic.com | Toujours |
apiKeyHelper, ou un identifiant dans ANTHROPIC_AUTH_TOKEN ou ANTHROPIC_API_KEY | Authentifie chaque requête à la passerelle. L’assistant exécute une commande pour récupérer la clé ; les variables contiennent une clé statique, envoyée comme Authorization: Bearer et x-api-key respectivement | Toujours ; l’un des trois |
ANTHROPIC_CUSTOM_HEADERS | Ajoute des en-têtes HTTP supplémentaires à chaque requête API | Votre passerelle nécessite un en-tête de locataire ou de routage sur chaque requête |
CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY | Interroge /v1/models de la passerelle au démarrage et ajoute les noms retournés au sélecteur /model | Votre passerelle sert /v1/models et vous voulez que les sélecteurs des développeurs soient remplis à partir de celui-ci |
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS | Arrête Claude Code d’envoyer les en-têtes de capacité de pré-version et les champs du corps | Votre passerelle transfère à un amont Bedrock ou Vertex qui rejette les champs bêta ; consultez Exigences de la passerelle |
ANTHROPIC_MODEL ou ANTHROPIC_DEFAULT_HAIKU_MODEL | Définissez quel nom de modèle Claude Code demande pour la session principale et pour le trafic en arrière-plan | Votre passerelle route les noms de modèles qui ne correspondent pas aux valeurs par défaut de Claude Code, ou vous routez la fonctionnalité en arrière-plan vers un modèle différent. Routez à la fois les noms de remplacement et les noms par défaut de Claude Code à la passerelle, car certains sous-appels peuvent demander le nom par défaut indépendamment du remplacement |
ANTHROPIC_BEDROCK_BASE_URL, ANTHROPIC_VERTEX_BASE_URL, ANTHROPIC_FOUNDRY_BASE_URL, ou ANTHROPIC_AWS_BASE_URL avec les variables pour ce fournisseur | Pointez Claude Code vers la passerelle via une URL de base spécifique au fournisseur. Bedrock et Vertex basculent également vers le format de requête natif de ces fournisseurs | Votre passerelle fait face à Bedrock, Vertex, Foundry, ou la Plateforme Claude sur AWS ; consultez Formats API |
Distribuer via les paramètres gérés
Livrez les variables via le blocenv d’un fichier de paramètres gérés, poussé par MDM, politique de registre, ou gestion de configuration :
env. Un ANTHROPIC_BASE_URL géré est appliqué et ne peut pas être remplacé par l’export shell d’un développeur, puisque Claude Code l’applique sur l’environnement du processus et les paramètres de priorité inférieure.
N’incluez pas forceLoginMethod ou forceLoginOrgUUID dans les paramètres gérés aux côtés d’un identifiant de passerelle. Sur Claude Code v2.1.146 et ultérieur, l’une ou l’autre clé bloque ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, et apiKeyHelper au démarrage, pour que les développeurs voient This machine's managed settings require a first-party login et ne puissent pas continuer.
La livraison des paramètres gérés par le serveur nécessite une connexion directe à api.anthropic.com, elle n’atteint donc pas les sessions routées par passerelle. Les déploiements de passerelle utilisent ce chemin de paramètres gérés basé sur fichier, qui applique les mêmes clés.
Pour l’identifiant, distribuez une commande apiKeyHelper dans le fichier de paramètres gérés comme indiqué ci-dessus ; la commande s’authentifie auprès de votre magasin de secrets en tant que développeur local, pour que chaque machine reçoive sa propre clé. Alternativement, livrez à chaque développeur sa clé via votre processus de secrets existant et faites-le définir ANTHROPIC_AUTH_TOKEN lui-même.
Certains environnements ont besoin d’une livraison séparée :
- L’application de bureau lit le routage de la passerelle uniquement à partir de sa configuration d’inférence tierce livrée par MDM ; déployez ce fichier aux côtés des paramètres gérés pour que les sessions de bureau routent également via la passerelle. Consultez la documentation de configuration tierce du bureau et la documentation de passerelle du bureau
- Les exécuteurs CI ont besoin de
ANTHROPIC_BASE_URLet de l’identifiant définis dans l’environnement de l’exécuteur - WSL sur les machines Windows gérées lit les paramètres gérés Windows uniquement quand
wslInheritsWindowsSettingsesttrue
Remettre aux développeurs les valeurs à définir eux-mêmes
Si vous n’avez pas de distribution de paramètres gérés en place, envoyez à chaque développeur ce dont il a besoin pour suivre la page de connexion :- L’URL de la passerelle
- Leur identifiant personnel
- Quelle variable mettre l’identifiant dans :
ANTHROPIC_AUTH_TOKENpour une passerelle bearer-token, ouANTHROPIC_API_KEYpour une passerellex-api-key. Dire aux développeurs lequel économise le procès et erreur décrit sur la page de connexion - Toutes les variables conditionnelles du tableau Ce qu’il faut distribuer, avec leurs valeurs
claude démarre une session sans afficher l’écran de connexion, puisque l’identifiant distribué satisfait l’authentification. Ensuite, exécutez /status et ouvrez l’onglet Status : la ligne Anthropic base URL affiche l’adresse de la passerelle, et pour la distribution gérée la ligne Setting sources inclut les paramètres gérés. Un écran de connexion, ou une ligne Anthropic base URL manquante, signifie que la configuration n’a pas atteint la machine.
Vérifier le déploiement
Confirmez que tout fonctionne à partir d’une machine de développeur, pas de l’hôte de la passerelle, pour que le test couvre le chemin réseau que les développeurs utilisent. Envoyez une requête en streaming, qui vérifie le point de terminaison, le passage en streaming, et le routage des modèles à la fois :- Bash ou Zsh
- PowerShell
data: arriver progressivement. La réponse entière arrivant à la fois après une pause signifie que la passerelle met en mémoire tampon, ce qui bloque Claude Code ; un 404 signifie que le nom du modèle n’est pas routé. Répétez par nom de modèle.
Ensuite, démarrez claude et envoyez un message. Chaque symptôme à cette étape a une cause :
- Une invite de connexion signifie un écart d’identifiant. Exécutez
/statuset ouvrez l’onglet Status : quand la ligneSetting sourcesn’inclut pas les paramètres gérés, la distribution n’a pas atteint la machine ; quand elle le fait, l’identifiant de développeur n’a pas été livré, donc définissezANTHROPIC_AUTH_TOKENou leapiKeyHelper - Les erreurs
Failed to authenticatesignifient que la passerelle rejette les requêtes ; son journal dit quel identifiant a échoué. Un rejet que la passerelle enregistre elle-même nomme la clé de développeur, tandis qu’un401deapi.anthropic.comou du point de terminaison de votre fournisseur signifie que l’identifiant de fournisseur que la passerelle détient a été rejeté - Une invite d’approbation unique pour la clé est attendue à la première utilisation quand la passerelle s’attend à des clés dans l’en-tête
x-api-key, défini commeANTHROPIC_API_KEY. AvecANTHROPIC_AUTH_TOKEN, aucune invite n’apparaît et la variable prend le relais silencieusement ; une connexion claude.ai précédemment enregistrée est inactive pour cette session
x-claude-code-session-id groupe les requêtes par session. Si les fonctionnalités échouent avec les symptômes de dépannage, la passerelle supprime les en-têtes ou réécrit les erreurs ; consultez les exigences de la passerelle ci-dessus.
Maintenir la passerelle
Après le déploiement, trois types de changements atteignent la passerelle au fil du temps. Chacun a un symptôme à surveiller et une action à prendre.| Changement | Symptôme quand la passerelle n’a pas suivi | Action |
|---|---|---|
Les nouvelles versions de Claude Code ajoutent des valeurs anthropic-beta et des champs du corps de la requête | Les développeurs signalent des erreurs 400 nommant un nouveau champ après la mise à jour de Claude Code ; consultez passage des fonctionnalités | Transférez les en-têtes anthropic-* et les corps de requête verbatim plutôt que de faire une liste blanche ; testez les nouvelles versions de Claude Code contre la passerelle avant qu’elles n’atteignent les développeurs |
| De nouveaux modèles Claude deviennent disponibles | Les développeurs sélectionnant un nouveau nom de modèle obtiennent 404 ; le sélecteur /model ne le liste pas | Ajoutez le nom du modèle à la configuration de routage de la passerelle, puis réexécutez la vérification du routage. Si vous distribuez ANTHROPIC_MODEL ou les variables de modèle par défaut, mettez à jour les paramètres gérés |
| Les identifiants expirent ou ont besoin d’une rotation | Toutes les requêtes des développeurs commencent à échouer avec 401 de l’amont | Faites tourner l’identifiant de fournisseur de la passerelle selon son propre calendrier ; les clés de développeur tournent à la passerelle, et un apiKeyHelper gère la rotation par développeur sans redistribuer les paramètres |
429, jusqu’à 10 fois avec backoff, en respectant Retry-After. Gardez la référence du protocole comme le contrat pour ce que chaque version de Claude Code envoie.
Ressources connexes
- Connecter Claude Code à une passerelle LLM : les étapes de configuration côté développeur, avec la configuration par surface et un tableau de dépannage que vous pouvez remettre aux développeurs
- Référence du protocole de passerelle : le contrat de fil pour les opérateurs de passerelle, couvrant les points de terminaison, les en-têtes à transférer, et le tableau de passage des fonctionnalités
- Fichiers de paramètres et précédence : comment les paramètres gérés, de projet et utilisateur se combinent, et où le fichier géré va sur chaque plateforme
- Configurer Claude Code pour votre organisation : le déploiement plus large dont cette passerelle est une partie, y compris l’application des politiques, la visibilité de l’utilisation, et la gestion des données