Gateway di app Claude per Amazon Bedrock, Claude Platform su AWS, Google Cloud e Microsoft Foundry
Esegui Claude Code attraverso Amazon Bedrock, Claude Platform su AWS, Google Cloud o Microsoft Foundry dietro un gateway auto-ospitato con accesso SSO, accesso ai modelli per gruppo e telemetria OTLP.
Il gateway di app Claude è progettato per le organizzazioni che devono — o preferiscono — instradare l'inferenza attraverso il proprio provider cloud, ad esempio per soddisfare i requisiti di residenza dei dati. Se non hai questo requisito e desideri accesso ad altre funzionalità come il provisioning SCIM o Claude Code su web e mobile, Claude Enterprise potrebbe essere una scelta migliore. Consulta la pagina di disponibilità delle funzionalità per un confronto completo di tutti i metodi di distribuzione.
Claude apps gateway è un servizio auto-ospitato che si posiziona tra i client Claude Code dei tuoi sviluppatori e il tuo provider di modelli. Gli sviluppatori accedono con il tuo provider di identità aziendale (IdP) invece di detenere chiavi API o credenziali cloud. Il gateway contiene la credenziale upstream, applica l'accesso ai modelli e le impostazioni gestite per gruppo IdP, e trasmette la telemetria di utilizzo al tuo stack di osservabilità.
È incluso nel binario claude, quindi lo stesso eseguibile che esegue Claude Code su un laptop esegue il server gateway con claude gateway --config gateway.yaml.
Questa pagina copre:
- Perché Claude apps gateway, cosa aggiunge rispetto all'esecuzione della tua, e quando qualcos'altro si adatta meglio
- Una guida rapida con prerequisiti che porta un gateway da zero a uno sviluppatore connesso
- Connessione degli sviluppatori, inclusa l'impostazione dell'URL del gateway attraverso le impostazioni gestite
- Disponibilità e limitazioni che coprono quali funzionalità di Claude Code funzionano attraverso il gateway e cosa supporta il server
Le pagine complementari approfondiscono. Il riferimento di configurazione copre ogni opzione nel file YAML che la guida rapida scrive, e la guida di distribuzione copre la configurazione per IdP, la distribuzione su Kubernetes e Cloud Run, e le operazioni.
Perché Claude apps gateway
La panoramica del gateway copre cosa fa un gateway e perché ne eseguiresti uno. Claude apps gateway è il gateway di Anthropic, integrato nel binario claude e testato insieme a ogni rilascio di Claude Code, quindi inoltra le intestazioni e i campi di richiesta che Claude Code invia senza che gli operatori mantengano un elenco di autorizzazioni separato. Una volta distribuito, ti offre:
- Credenziali: la chiave API upstream o la credenziale cloud vive solo nella tua infrastruttura. Gli sviluppatori si autenticano con SSO aziendale e ricevono token bearer di breve durata, quindi l'offboarding avviene nel tuo IdP. Deprovision un utente e il suo accesso al gateway scade entro la durata della sessione, un'ora per impostazione predefinita.
- Controllo di accesso: i tuoi gruppi IdP si mappano agli elenchi di modelli consentiti e alle politiche di impostazioni gestite. Il gateway applica l'accesso ai modelli lato server, rifiutando le richieste per modelli non concessi, e seleziona la politica di impostazioni gestite di ogni gruppo, che il CLI applica al livello di impostazioni gestite. Diversi team ottengono diversi modelli, strumenti e autorizzazioni, e uno sviluppatore non può ignorare ciò che la sua politica blocca.
- Consegna delle impostazioni: il gateway consegna le impostazioni gestite ai client connessi stesso, prendendo il posto delle impostazioni gestite dal server dalla console amministratore di claude.ai.
- Telemetria: ogni destinazione configurata riceve metriche OpenTelemetry Protocol (OTLP) con conteggi di token, modello, identità dell'utente e latenza per impostazione predefinita, con log e tracce come opt-in per destinazione.
- Instradamento upstream: i client parlano l'API Anthropic Messages al gateway, e il gateway traduce per ogni upstream, sia Bedrock, Claude Platform su AWS, Agent Platform di Google Cloud, Foundry o l'API Anthropic, con failover tra loro. Puoi cambiare regioni, provider o ordine di failover senza che gli sviluppatori se ne accorgano o riconfigurino.
Il piano dati del gateway stesso non invia nulla all'infrastruttura Anthropic a meno che l'API Anthropic non sia un upstream configurato. Controlli dove vanno la telemetria, i log di audit, le impostazioni gestite e l'identità IdP dei tuoi sviluppatori, e il gateway non li invia ad Anthropic. Per il traffico rimanente che il processo CLI può inviare e come chiuderlo, vedi Compliance posture.
Per quali funzionalità di Claude Code funzionano attraverso il gateway e cosa supporta il server stesso, vedi Disponibilità e limitazioni di seguito. Per decisioni come costo, bypass, esecuzione di più gateway e piattaforme serverless, vedi la guida di distribuzione.
Altre implementazioni di gateway
Se esegui già un gateway LLM o un gateway API che soddisfa le tue esigenze, continua a usarlo; Altri gateway LLM copre la configurazione di Claude Code rispetto ad esso.
La guida di compatibilità del gateway documenta cosa Claude Code si aspetta da qualsiasi gateway: gli endpoint che chiama, le intestazioni e i campi del corpo da inoltrare, e cosa smette di funzionare quando vengono rimossi. Un gateway di app Claude in esecuzione serve anche il suo proprio riferimento di protocollo su GET /protocol, che descrive gli endpoint che espone ai client Claude Code: accesso SSO, inferenza, consegna di impostazioni gestite, scoperta di modelli e telemetria. Recuperalo con curl https://claude-gateway.internal.example.com/protocol da qualsiasi gateway distribuito, come quello che la guida rapida di seguito produce.
I cambiamenti di rottura del protocollo vengono annunciati in anticipo, ma la compatibilità all'indietro indefinita non è garantita.
Guida rapida
Questa guida rapida percorre il percorso minimo: registra un client OAuth nel tuo IdP, scrivi un gateway.yaml, esegui il gateway insieme a Postgres con Docker Compose, e verifica l'accesso end-to-end. Utilizza un upstream Amazon Bedrock; Claude Platform su AWS, Agent Platform di Google Cloud, Microsoft Foundry e l'API Anthropic sono ugualmente supportati scambiando il blocco upstreams come mostrato nel riferimento di configurazione. Alla fine hai un gateway a cui uno sviluppatore può /login.
Distribuisci sulla tua rete privata. Claude Code si connette solo a un gateway il cui indirizzo è privato. Questo è un meccanismo di sicurezza, perché un gateway affidabile può spingere impostazioni che eseguono comandi su macchine sviluppatore. Posiziona il gateway dietro un load balancer interno o una VPN e assegnagli un nome host che si risolve solo in IP privati. Se la tua rete interna è numerata da spazio IPv4 pubblico che la tua organizzazione possiede, vedi Consenti un gateway su spazio di indirizzi pubblici che possiedi.
Prerequisiti
Avere questi in atto prima di iniziare:
| Hai bisogno | Dettagli |
|---|---|
| Claude Code v2.1.195 o successivo | Il sottocomando claude gateway e il flusso di accesso al gateway vengono spediti in v2.1.195. Le build pubbliche precedenti non le includono. Sia la macchina che esegue il server gateway che la macchina di ogni sviluppatore devono essere su v2.1.195 o successivo; esegui claude update per ottenere l'ultimo rilascio. L'upstream Claude Platform su AWS richiede Claude Code v2.1.198 o successivo sul server gateway. |
| Provider di identità OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, o Dex, o qualsiasi altro IdP conforme a OIDC come PingFederate. Il gateway esegue il discovery OIDC standard e il flusso del codice di autorizzazione rispetto ad esso. SAML e LDAP non sono supportati. |
| PostgreSQL 11 o successivo | Supporta il flusso di accesso del dispositivo e i contatori dei rate limit. Funziona un servizio PostgreSQL gestito, incluso il livello più piccolo; vedi quali database sono supportati. Con limiti di spesa, contiene anche tabelle di spesa durevole, audit e identità che dovrebbero essere sottoposte a backup. TLS tramite ?sslmode=require è consigliato. PostgreSQL 11, 12 e 13 richiedono Claude Code v2.1.290 o successivo sul server gateway. Il progetto PostgreSQL non mantiene più quelle versioni, quindi usane una più recente dove puoi. |
| Upstream del modello | Credenziali Amazon Bedrock, credenziali Claude Platform su AWS, credenziali Google Cloud, una risorsa Microsoft Foundry o una chiave API Anthropic. Sono supportati più upstream con failover. |
| HTTPS | Il gateway deve essere raggiungibile su https:// dai laptop degli sviluppatori e da qualsiasi browser utilizzato per l'accesso; il gateway serve la pagina di verifica del dispositivo sullo stesso listener. Fornisci un certificato TLS tramite listen.tls o esegui dietro un ingresso che termina TLS, e imposta listen.public_url all'origine esterna in entrambi i casi. Su /login, Claude Code accetta un'origine http:// semplice solo quando l'host del gateway è loopback: localhost, 127.0.0.1, o ::1. |
| Indirizzo di rete privata | Su /login, Claude Code richiede che il nome host o l'indirizzo IP del gateway si risolvano solo in indirizzi privati: RFC 1918, link-local, CGNAT 100.64.0.0/10, IPv6 ULA fc00::/7, o loopback. Per un gateway che ospiti, qualsiasi indirizzo pubblico al di fuori di un blocco che dichiari è rifiutato; vedi il modello di minaccia nella guida di distribuzione. Se le macchine degli sviluppatori instradano HTTPS attraverso un proxy aziendale, l'accesso richiede anche che l'host proxy si risolva in indirizzi privati; se non lo fa, aggiungi l'host del gateway a NO_PROXY in modo che il CLI si connetta direttamente. Se la tua rete interna è numerata da spazio IPv4 pubblico che la tua organizzazione possiede, dichiara quei blocchi in modo che /login accetti un gateway lì. |
| Runtime Linux | Il server gateway viene eseguito solo sul binario Linux nativo. macOS funziona per lo sviluppo locale. Windows non è supportato come piattaforma server. |
Passaggi
Registra un client OAuth nel tuo IdP
Decidi prima il nome host del gateway, perché l'URI di reindirizzamento deve corrispondere. Crea una nuova applicazione web OIDC e imposta l'URI di reindirizzamento su https://claude-gateway.<your-domain>/oauth/callback, dove l'host è lo stesso valore che imposti come listen.public_url nel passaggio 3. Annota client_id e client_secret. Le istruzioni per IdP sono in Configurazione del provider di identità.
Provisioning di un database PostgreSQL
Usa PostgreSQL 11 o successivo. Il livello gestito più piccolo è sufficiente. Il gateway esegue le proprie migrazioni dello schema all'avvio, quindi il ruolo del database ha bisogno dei diritti per creare e alterare le tabelle; vedi store.
Scrivi gateway.yaml
I segreti vengono letti tramite l'espansione ${ENV_VAR} in modo che il file stesso possa vivere nel controllo della versione. Usa un nome host public_url che si risolve in un IP privato sulla tua rete, perché /login rifiuta gli indirizzi pubblici. La configurazione minima ha cinque sezioni, e ogni altro campo ha un valore predefinito:
listen:
host: 0.0.0.0
port: 8080
# Obbligatorio a meno che l'host non sia un indirizzo loopback. Utilizzato per l'IdP
# redirect_uri e il documento di discovery.
public_url: https://claude-gateway.internal.example.com
oidc:
issuer: https://login.example.com # deve servire /.well-known/openid-configuration
client_id: 0oa1example2
client_secret: ${OIDC_CLIENT_SECRET}
allowed_email_domains: [example.com] # rifiuta id_tokens al di fuori della tua organizzazione
userinfo_fallback: true # per IdP il cui id_token omette email/groups; innocuo altrimenti
session:
jwt_secret: ${GATEWAY_JWT_SECRET} # openssl rand -base64 32
ttl_hours: 1 # limita anche la latenza di revoca su deprovision IdP
store:
postgres_url: ${GATEWAY_POSTGRES_URL} # aggiungi ?sslmode=require per Postgres gestito
upstreams:
- provider: bedrock
region: us-east-1
auth: {} # vuoto: catena di credenziali predefinita AWS
# (IRSA, ruolo attività EC2/ECS, variabili env, ~/.aws)
# I modelli vengono tradotti per upstream automaticamente. Il catalogo integrato
# mappa claude-opus-4-8 a us.anthropic.claude-opus-4-8 e così via per ogni
# modello Claude supportato da Bedrock. Imposta false e aggiungi un elenco `models:` per
# esporre solo modelli specifici.
auto_include_builtin_models: true
Questa configurazione è sufficiente per un ciclo di accesso funzionante con il catalogo di modelli Bedrock predefinito. Una volta in esecuzione, aggiungi RBAC per gruppo tramite managed.policies, fan-out di telemetria tramite telemetry, e failover multi-upstream, ARN di throughput provisioning o regioni non statunitensi tramite models.
L'upstream Amazon Bedrock ha bisogno di un principale AWS con bedrock:InvokeModel e bedrock:InvokeModelWithResponseStream sia sugli ARN inference-profile/us.anthropic.* che sugli ARN foundation-model/anthropic.* sottostanti. Ha anche bisogno del modulo di caso d'uso una tantum di Anthropic inviato per l'account dalla console Bedrock Model catalog.
Fornisci la credenziale con IRSA su EKS, un ruolo attività ECS o un profilo di istanza EC2 piuttosto che chiavi statiche. Il riferimento upstreams ha i dettagli IAM completi, la matrice di credenziali cross-cloud e i blocchi auth per gli altri provider.
Eseguilo
Costruisci un'immagine container attorno al binario claude che soddisfi i requisiti dell'immagine, quindi eseguila insieme a Postgres. Il file Compose fa riferimento all'immagine come registry.example.com/claude-gateway:2.1.198; sostituisci il tuo registro e tag immagine:
services:
gateway:
image: registry.example.com/claude-gateway:2.1.198
ports: ["8080:8080"]
volumes: ["./gateway.yaml:/etc/claude/gateway.yaml:ro"]
environment:
OIDC_CLIENT_SECRET: ${OIDC_CLIENT_SECRET}
GATEWAY_JWT_SECRET: ${GATEWAY_JWT_SECRET}
GATEWAY_POSTGRES_URL: postgres://gw:pw@postgres/gateway
# Credenziali AWS: in produzione, ometti questi e usa un ruolo
# di istanza. Per il test locale di Compose, passa i tuoi:
AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
depends_on:
postgres:
condition: service_healthy
postgres:
image: postgres:16-alpine
environment: { POSTGRES_USER: gw, POSTGRES_PASSWORD: pw, POSTGRES_DB: gateway }
healthcheck:
test: ["CMD-SHELL", "pg_isready -U gw"]
interval: 5s
volumes: ["pgdata:/var/lib/postgresql/data"]
volumes: { pgdata: }
Il gateway è un singolo binario Linux che legge la configurazione, si connette a Postgres e applica le migrazioni dello schema, esegue il discovery OIDC rispetto al tuo IdP, costruisce client upstream e inizia ad ascoltare.
L'avvio è fail-closed per la configurazione, la connessione Postgres, il discovery OIDC e la costruzione del client upstream. Se uno di questi è irraggiungibile o non configurato correttamente, il gateway esce con un errore piuttosto che servire il traffico in uno stato degradato.
Un avvio riuscito non convalida il percorso di inferenza, perché le credenziali dell'istanza Bedrock e Agent Platform si risolvono sulla prima richiesta, non all'avvio.
Guarda stderr per la sequenza di avvio. Le righe di log utilizzano il formato [gateway] <timestamp> <level> <message>, gli eventi di audit sono JSON a riga singola con un campo evt, e un banner di avvio, omesso di seguito, viene stampato tra la migrazione e le righe di ascolto. Un database nuovo stampa una riga migration N applied per ogni migrazione dello schema; un database già migrato non stampa nulla. Dovresti vedere, in ordine:
{"ts":"2026-06-10T17:03:21.114Z","evt":"config.load","path":"/etc/claude/gateway.yaml","sha256":"…"}
[gateway] 2026-06-10T17:03:21.395Z info waiting for migration lock (another replica may be migrating; check pg_locks for key 6775156 if this persists)
[gateway] 2026-06-10T17:03:21.408Z info migration 1 applied
…
[gateway] 2026-06-10T17:03:21.431Z info migration 6 applied
[gateway] 2026-06-10T17:03:21.512Z info claude gateway listening on http://0.0.0.0:8080
Il gateway registra anche un avviso che access_control.allow_cidrs è vuoto. Questo è previsto qui, perché nulla limita quali indirizzi client il gateway serve fino a quando non imposti un elenco di autorizzazione. Il riferimento access_control ha gli intervalli consigliati.
Se l'avvio esce prima della riga claude gateway listening on, l'ultima riga di stderr nomina il problema:
- un Postgres irraggiungibile
- un ruolo Postgres senza autorizzazione DDL
- un documento di discovery OIDC irraggiungibile o non valido
- una violazione dello schema di configurazione con il percorso del campo offensivo
Correggilo e riavvia.
Se hai già un ingresso che termina TLS, salta Compose ed esegui il binario direttamente con claude gateway --config gateway.yaml. Imposta public_url all'origine dell'ingresso e associa listen a un indirizzo loopback o interno al cluster.
Verifica la superficie di autenticazione
Tre controlli confermano che il gateway può autenticare un utente reale prima di consegnarlo a uno sviluppatore.
Gli esempi utilizzano l'URL pubblico del gateway; per la configurazione locale di Compose senza un ingresso, sostituisci http://localhost:8080 nei primi due controlli. Il terzo controllo apre verification_uri_complete, che è costruito da public_url, quindi per Compose locale imposta public_url: http://localhost:8080 in gateway.yaml e aggiungi http://localhost:8080/oauth/callback come secondo URI di reindirizzamento sul client OAuth dal passaggio 1, perché il gateway costruisce l'IdP redirect_uri da public_url. Il link di verifica si apre quindi nel tuo browser locale.
In Windows PowerShell, esegui curl.exe; il curl semplice è un alias per Invoke-WebRequest e rifiuta questi flag.
Per primo, recupera il documento di discovery, che conferma che il gateway è attivo, la configurazione è valida e tutti i controlli di avvio sono passati:
curl -s https://claude-gateway.internal.example.com/.well-known/oauth-authorization-server | jq
{
"issuer": "https://claude-gateway.internal.example.com",
"device_authorization_endpoint": "…/oauth/device_authorization",
"token_endpoint": "…/oauth/token",
"grant_types_supported": ["urn:ietf:params:oauth:grant-type:device_code", "refresh_token"]
}
La risposta include campi aggiuntivi, come response_types_supported e scopes_supported.
Secondo, richiedi un'autorizzazione del dispositivo, che conferma che il flusso di accesso del dispositivo funziona e Postgres è raggiungibile e scrivibile:
curl -s -X POST https://claude-gateway.internal.example.com/oauth/device_authorization | jq
{
"device_code": "…",
"user_code": "WDJB-MJHT",
"verification_uri": "https://claude-gateway.internal.example.com/device",
"verification_uri_complete": "https://claude-gateway.internal.example.com/device?user_code=WDJB-MJHT",
"expires_in": 600,
"interval": 5
}
Terzo, testa la parte del browser aprendo verification_uri_complete in un browser e confermando il codice. Dovresti essere reindirizzato alla pagina di accesso del tuo IdP e, dopo l'accesso, tornare al gateway con una conferma di accesso.
Usa il primo controllo che fallisce per individuare il problema:
- Il primo controllo fallisce: l'avvio non è stato completato; controlla stderr
- Il secondo controllo fallisce: Postgres non è raggiungibile dal gateway o il ruolo non può scrivere; controlla la stringa di connessione e le autorizzazioni
- Il terzo controllo non raggiunge l'IdP: controlla che l'URI di reindirizzamento dell'IdP corrisponda esattamente a
https://<gateway>/oauth/callback - Il terzo controllo raggiunge l'IdP ma rimbalza indietro con un errore: leggi il log di audit del gateway, che registra ogni rifiuto di autenticazione con il motivo, come
email domain not allowed
Accedi a uno sviluppatore
Questo ultimo passaggio avviene su una macchina sviluppatore, non sul server. Imposta forceLoginMethod su "gateway" e forceLoginGatewayUrl su public_url del tuo gateway nel file delle impostazioni gestite di quella macchina, quindi esegui /login, premi Invio sulla schermata Cloud gateway e completa l'accesso del browser. Imposta l'URL del gateway di seguito copre la distribuzione di entrambe le chiavi su ogni macchina sviluppatore.
Connettere gli sviluppatori
Gli sviluppatori si connettono dai propri laptop con un unico accesso tramite browser, usando il proprio account aziendale. Non hanno bisogno di un account claude.ai, di una chiave API o di un abbonamento, perché le richieste al modello passano attraverso il gateway usando la credenziale upstream dell'organizzazione. La connessione è guidata dalle impostazioni gestite lato client che distribuisci tramite MDM, quindi non c'è alcuna configurazione manuale da parte dello sviluppatore; questa sezione descrive ciò che configura l'amministratore.
La CLI calcola l'impronta del certificato TLS foglia del gateway alla prima connessione e la fissa (pinning) per hostname. Verifica di nuovo questa impronta fissata durante l'accesso, nei rinnovi silenziosi della sessione e nel recupero delle impostazioni gestite, mentre le richieste di inferenza usano la validazione TLS standard senza il pinning. Le richieste instradate attraverso un proxy HTTPS saltano la verifica del pinning, quindi aggiungi l'host del gateway a NO_PROXY per mantenerle dirette.
Pubblica l'impronta SHA-256 attesa insieme all'URL del gateway, così gli sviluppatori hanno qualcosa con cui confrontarla. Il prompt di /login mostra i primi 16 caratteri dell'impronta in esadecimale minuscolo senza due punti. Per stampare l'impronta completa in quel formato a partire dal file del certificato, esegui:
openssl x509 -noout -fingerprint -sha256 -in cert.pem | cut -d= -f2 | tr -d : | tr 'A-F' 'a-f'
Quando il certificato viene ruotato, ogni sviluppatore vede di nuovo la richiesta di attendibilità, quindi tratta le rotazioni come un evento pianificato e ripubblica l'impronta. Se la policy del tuo gateway include impostazioni che richiedono approvazione, lo sviluppatore vede di nuovo anche quella finestra di approvazione dopo aver accettato il nuovo certificato, perché Claude Code associa la memoria delle approvazioni al certificato fissato.
Un gateway può restituire il campo facoltativo email nella sua risposta token per indicare l'account usato per un accesso. Quando lo fa, lo sviluppatore conferma l'account prima che Claude Code salvi la credenziale. Dopo un accesso confermato, /status mostra l'account.
La conferma richiede Claude Code v2.1.275 o successivo sulla macchina dello sviluppatore; un client di versione inferiore ignora il campo. Il server gateway incluso nel binario claude non restituisce il campo, quindi i suoi accessi si completano senza la conferma.
Una volta che lo sviluppatore ha effettuato l'accesso, il selettore dei modelli mostra i modelli presenti nella sua allowlist availableModels. Le impostazioni gestite si applicano all'avvio e si aggiornano ogni ora, e la telemetria viene instradata al tuo collector.
Le sessioni si rinnovano silenziosamente prima della scadenza di ttl_hours. Quando un rinnovo fallisce dopo il deprovisioning nell'IdP, Claude Code chiede allo sviluppatore di accedere di nuovo.
Impostare l'URL del gateway
Tre chiavi vanno nel file delle impostazioni gestite specifico per ogni sistema operativo che distribuisci tramite MDM o direttamente su disco. forceLoginMethod e forceLoginGatewayUrl aprono /login direttamente sulla schermata Cloud gateway con l'URL già compilato, e parentSettingsBehavior: "merge" permette a Claude Desktop di fornire l'allowlist di uscita del gateway alle sessioni di Claude Code che avvia, come spiegato in Fornire la policy alle sessioni di Claude Desktop:
{
"forceLoginMethod": "gateway",
"forceLoginGatewayUrl": "https://claude-gateway.internal.example.com",
"parentSettingsBehavior": "merge"
}
Lo sviluppatore preme Invio per connettersi. Il prompt dell'impronta TLS alla prima connessione appare comunque. Una volta che il file è presente su una macchina, uno sviluppatore che non ha completato l'accesso al gateway vede uno dei messaggi descritti in Administrator policy requires a Cloud gateway sign-in. Gli sviluppatori che selezionano un provider cloud tramite una variabile d'ambiente come CLAUDE_CODE_USE_BEDROCK non hanno bisogno dell'accesso al gateway.
Uno sviluppatore non può configurarlo manualmente. Il selettore di accesso non ha un'opzione gateway, e forceLoginGatewayUrl viene ignorato nei file di impostazioni dello sviluppatore. forceLoginMethod da solo, senza un URL, lascia lo sviluppatore su un messaggio "Contact your IT administrator". Le chiavi di accesso vanno nel file che distribuisci alle macchine, non nel blocco managed.policies[].cli del gateway, che raggiunge solo i client già connessi.
Consentire un gateway su uno spazio di indirizzi pubblico di tua proprietà
Alcune organizzazioni numerano la propria rete interna a partire da un blocco IPv4 pubblico di loro proprietà, come lo spazio di indirizzi di un operatore o un /8 legacy, quindi il loro gateway non ha un indirizzo privato. Elenca questi blocchi nell'impostazione gestita gatewayInternalNetworks. /login accetterà quindi un gateway all'interno di un blocco elencato quando la macchina dello sviluppatore vi si connette da un indirizzo interno allo stesso blocco. Ciò richiede Claude Code v2.1.268 o successivo sulla macchina dello sviluppatore; le versioni precedenti ignorano la chiave e applicano la regola degli indirizzi privati.
gatewayInternalNetworks è pensato per reti interne che risultano numerate a partire da uno spazio di indirizzi pubblico. Non rende sicuro esporre un gateway a Internet: un gateway attendibile può distribuire impostazioni che eseguono comandi sulle macchine degli sviluppatori.
Mantieni il gateway irraggiungibile dall'esterno della tua rete con le regole del firewall o del load balancer. Imposta access_control.allow_cidrs del gateway sugli stessi blocchi che dichiari qui, in modo che il gateway stesso rifiuti i client provenienti da qualsiasi altro luogo. Dietro un load balancer o un ingress, imposta anche listen.trusted_proxies su quel front end, perché altrimenti il gateway confronta allow_cidrs con l'indirizzo del front end invece che con quello dello sviluppatore.
Aggiungi la chiave alla stessa sorgente di impostazioni gestite delle chiavi di accesso: il file delle impostazioni gestite, il profilo MDM o la policy del registro di sistema. Claude Code la ignora nelle impostazioni utente, di progetto e gestite dal server.
Questo esempio dichiara un solo blocco. Sostituisci 203.0.113.0/24 con il tuo blocco. È un intervallo di documentazione, e Claude Code li rifiuta.
{
"gatewayInternalNetworks": ["203.0.113.0/24"]
}
Claude Code convalida l'elenco in /login prima di contattare qualsiasi gateway:
- Ogni voce è un blocco IPv4 scritto come primo indirizzo e un prefisso da
/8a/32. - L'elenco contiene al massimo quattro blocchi, e nessuno si sovrappone a un altro.
- Nessun blocco si sovrappone allo spazio di indirizzi privato:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.0/8,169.254.0.0/16e100.64.0.0/10./loginaccetta già un gateway lì senza questa chiave. - Nessun blocco si sovrappone a uno spazio che non è mai la rete di un'organizzazione:
198.18.0.0/15e192.0.0.0/24, che i client VPN e NAT64 usano come indirizzi locali; gli intervalli di documentazione192.0.2.0/24,198.51.100.0/24e203.0.113.0/24; e gli intervalli riservati0.0.0.0/8,192.88.99.0/24e multicast224.0.0.0/4. Puoi dichiarare blocchi all'interno di240.0.0.0/4, che alcune grandi reti usano come spazio unicast interno.
I blocchi di managed-settings.json e dei suoi file drop-in managed-settings.d/ si combinano in un unico elenco, e questi limiti si applicano all'elenco combinato. Per restringere un blocco, sostituisci la sua voce invece di aggiungerne una seconda sovrapposta in un drop-in; /login rifiuta la sovrapposizione.
Se una voce viola una regola, o il valore non è un elenco di stringhe, Claude Code rifiuta ogni nuovo accesso al gateway su quella macchina e indica il problema nel messaggio. Anche l'accesso a un gateway su un indirizzo privato fallisce, mentre gli accessi esistenti continuano a funzionare. Prova il valore su una macchina prima di distribuirlo. Claude Code elenca anche un valore di tipo errato tra le impostazioni gestite non valide che segnala.
Con un elenco valido, /login applica tre verifiche a un gateway il cui indirizzo si trova all'interno di un blocco elencato:
- Ogni indirizzo in cui si risolve l'hostname del gateway si trova all'interno di quel singolo blocco. Claude Code rifiuta un nome che ha anche record al di fuori di esso, inclusi indirizzi privati e IPv6.
- La macchina dello sviluppatore si connette dall'interno dello stesso blocco. Claude Code rifiuta una macchina dietro NAT, all'interno di un container o di WSL2, o su una VPN il cui pool di indirizzi si trova al di fuori del blocco, e indica l'indirizzo da cui la macchina si è connessa.
- La connessione è diretta. Se
HTTPS_PROXYsi applica all'host del gateway,/loginrifiuta e indica la voceNO_PROXYda aggiungere.
Quando tutte e tre le verifiche hanno esito positivo, la richiesta di attendibilità aggiunge una riga che indica l'indirizzo della macchina, l'indirizzo del gateway e il blocco dichiarato che li contiene entrambi.
La chiave non cambia nulla per gli altri gateway: l'accesso a un gateway su un indirizzo privato funziona come prima, e l'accesso a uno su un indirizzo pubblico al di fuori di ogni blocco elencato viene rifiutato come prima.
Un blocco dichiarato restringe chi può accedere ma non dimostra dove si trova una macchina, quindi dichiara solo spazio di indirizzi controllato dalla tua organizzazione. Un blocco condiviso con altri tenant, come l'intervallo pubblico di un provider cloud, permette a chiunque al suo interno di superare la stessa verifica.
Fornire la policy alle sessioni di Claude Desktop
Claude Desktop esegue le sue schede Cowork e Code, più la scheda Chat quando la abiliti, su sessioni di Claude Code incorporate e invia le loro richieste al modello attraverso il gateway. Passa una policy a ciascuna di queste sessioni, costruita a partire dalla configurazione che il gateway gli fornisce su /user/bootstrap: l'allowlist dei modelli, gli strumenti disabilitati e l'allowlist di uscita derivati dal blocco cli della policy corrispondente, più l'overlay desktop.
Le altre chiavi cli, come gli hook, env e le regole di permesso con ambito come Bash(npm *), raggiungono solo i client che accedono tramite /login. Claude Desktop legge l'URL del gateway dalla propria configurazione gestita ed effettua l'accesso con il proprio flusso, separato dalle chiavi forceLoginMethod e forceLoginGatewayUrl di Impostare l'URL del gateway.
Le impostazioni passate da un processo di avvio sono impostazioni parent. Claude Code ignora le impostazioni parent su qualsiasi macchina che abbia una sorgente gestita distribuita da un amministratore, a meno che la sorgente che fornisce la policy non imposti parentSettingsBehavior: "merge".
Quali macchine richiedono l'opt-in
Le macchine che eseguono solo Claude Desktop lo richiedono. Claude Desktop applica autonomamente l'elenco dei modelli e l'elenco degli strumenti disabilitati alle sessioni incorporate, ma l'allowlist di uscita le raggiunge solo come impostazioni parent, sotto forma di regole di dominio WebFetch e regole di rete della sandbox. Senza l'opt-in, queste sessioni vengono eseguite senza la restrizione di uscita, e nulla ti avvisa. Il gateway rifiuta comunque le richieste di inferenza per i modelli che la policy non concede.
Anche un'allowlist dei marketplace di plugin raggiunge le sessioni incorporate solo come impostazioni parent. Quando disattivi i marketplace di plugin aggiunti dall'utente nella configurazione gestita di Claude Desktop, Claude Desktop 2.16120.0 o successivo nasconde i marketplace che la tua organizzazione non ha predisposto e rifiuta le installazioni da essi. Per impedire alle sessioni incorporate di caricare plugin già installati da quei marketplace, invia loro un elenco strictKnownMarketplaces come impostazioni parent. Senza l'opt-in, Claude Code ignora quell'elenco, e quei plugin continuano a essere caricati.
Le macchine in cui gli sviluppatori accedono tramite /login non lo richiedono; ogni sessione di Claude Code recupera la propria policy dal gateway.
I parchi macchine il cui policyHelper fornisce le impostazioni gestite non possono usarlo: Claude Code non esegue mai il merge delle impostazioni parent su quei parchi macchine, perché legge le impostazioni gestite esclusivamente dall'output dell'helper.
Impostare l'opt-in
Distribuisci lo snippet delle impostazioni gestite di Impostare l'URL del gateway, replicalo in qualsiasi sorgente lato client che abbia priorità superiore al file, quindi verifica.
Distribuisci l'opt-in nel file delle impostazioni gestite
Lo snippet precedente include già parentSettingsBehavior: "merge", quindi il file che distribuisci alle macchine lo contiene.
Replica lo snippet in qualsiasi sorgente con priorità superiore al file
Claude Code legge parentSettingsBehavior solo dalla sorgente selezionata. Aggiungere qualsiasi chiave di policy a una sorgente può renderla quella selezionata, quindi in una sorgente lato client replica l'intero snippet invece della sola parentSettingsBehavior. Impostazioni gestite lato client tratta i parchi macchine che forniscono la policy tramite Criteri di gruppo o profili di configurazione. Un plist di preferenze gestite su macOS o una policy HKLM su Windows ha priorità superiore al file managed-settings.json, e le impostazioni gestite remote del gateway hanno priorità superiore a entrambi, quindi sulle macchine che accedono al gateway imposta parentSettingsBehavior anche nel blocco cli della policy del gateway.
Verifica quale sorgente è selezionata
Su una macchina che esegue solo Claude Desktop, chiama resolveSettings() dell'Agent SDK e leggi policyOrigin nella voce managed del suo elenco sources. Il valore indica la sorgente lato client selezionata, plist, hklm o file, che è la sorgente che deve contenere lo snippet. Le sessioni incorporate di Claude Desktop non recuperano la policy del gateway, quindi il blocco cli del gateway non conta mai come sorgente selezionata per esse.
Limitare le impostazioni parent
Una volta distribuito parentSettingsBehavior: "merge", qualsiasi processo host che avvia Claude Code può fornire impostazioni parent, non solo Claude Desktop ma anche un'applicazione Agent SDK o un'estensione IDE.
Claude Code filtra le impostazioni parent in base a un'allowlist di chiavi restrittive, ma alcune chiavi consentite possono concedere accesso invece di limitarlo. A meno che tu non imposti i blocchi allowManaged*Only, le regole di consenso dei permessi e le allowlist della sandbox fornite dall'host si applicano comunque. Le regole di negazione e di richiesta della tua policy restano in vigore in ogni caso; vengono valutate prima di qualsiasi regola di consenso.
Claude Code inoltra le voci sandbox.credentials fornite dal parent in forma ridotta:
- Voci
deny: inoltrate solo con il loropathonamee la modalità. - Voci di file con
mode: mask: inoltrate solo come sentinella, come maschera dell'intero file il cuiinjectHostsè l'elenco vuoto, quindi il proxy non sostituisce mai il valore reale per una voce fornita dal parent su nessuna piattaforma. Vengono eliminati anche tutti i campi di mascheramento strutturato, quindi un pattern di estrazione fornito dal parent non può soppiantare una maschera più rigorosa impostata da un'altra sorgente per lo stesso percorso. - Voci
envVarsconmode: mask: non inoltrate.denyè l'unica restrizione che il canale parent può esprimere tramite le vocienvVars. awsPairsesigv4: inoltrati solo come restrizione. Disigv4vengono mantenuti solo i valorideny, e un parent che definisce un bloccosigv4in qualsiasi forma imposta tutte e tre le forme di richiesta,streaming,presignedesigv4a, sudeny. Una coppiaawsPairsnon viene mai inoltrata in una forma che possa rifirmare; una coppia che indica una delle variabili AWS convenzionali viene sostituita da una voce inerte che mantiene soppresso l'abbinamento automatico diAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEYeAWS_SESSION_TOKEN.
Distribuire i blocchi
Per mantenere le impostazioni parent il più vicino possibile a una forma puramente restrittiva, per quanto il filtro lo consenta, aggiungi tutti e cinque i blocchi allowManaged*Only, e le allowlist che governano, alle stesse sorgenti dell'opt-in al merge:
{
"forceLoginMethod": "gateway",
"forceLoginGatewayUrl": "https://claude-gateway.internal.example.com",
"parentSettingsBehavior": "merge",
"allowManagedPermissionRulesOnly": true,
"allowManagedMcpServersOnly": true,
"allowManagedHooksOnly": true,
"allowedMcpServers": [{ "serverUrl": "https://mcp.internal.example.com/*" }],
"sandbox": {
"network": {
"allowManagedDomainsOnly": true,
"allowedDomains": ["github.com", "*.npmjs.org"]
},
"filesystem": {
"allowManagedReadPathsOnly": true,
"denyRead": ["~/"],
"allowRead": ["~/projects"]
}
}
}
Una policy del sistema operativo, come una policy del registro HKLM o un plist di preferenze gestite, ha priorità superiore a questo file, quindi fornisci l'intero snippet tramite essa invece che tramite il file. Le impostazioni gestite remote del gateway hanno priorità superiore alle sorgenti della policy del sistema operativo e del file, ma raggiungono solo i client connessi. Replica i blocchi, le allowlist e l'opt-in al merge nel blocco cli della policy e mantieni distribuito questo file, perché le macchine che non si connettono mai, incluse quelle che eseguono solo Claude Desktop, ricevono la propria policy esclusivamente dal file.
Comportamento dei blocchi tra le sorgenti
Impostare un blocco non limita gli altri; ogni chiave è documentata nel riferimento delle impostazioni.
Da una sorgente di amministrazione al di sotto di quella vincente, i due blocchi della sandbox si applicano comunque, e allowManagedPermissionRulesOnly blocca comunque le regole di consenso e le additionalDirectories fornite dal parent. Su Claude Code v2.1.273 o successivo, anche il blocco dei server MCP si applica da una sorgente al di sotto di quella vincente, e mentre è attivo, l'elenco gestito allowedMcpServers proviene dalla sorgente di amministrazione con priorità più alta che ne imposta uno.
Il blocco degli hook e l'effetto di allowManagedPermissionRulesOnly sulle regole dello sviluppatore richiedono per impostazione predefinita la sorgente vincente; con l'opt-in al merge managedSourcesBehavior descritto in come Claude Code combina le sorgenti gestite, Claude Code applica per ogni blocco il valore più rigoroso impostato da qualsiasi sorgente. Sui parchi macchine con policyHelper, Claude Code legge i blocchi esclusivamente dall'output dell'helper.
Ogni blocco fa sì che Claude Code ignori le voci dello sviluppatore per quell'impostazione, quindi includi le allowlist della tua organizzazione accanto ai blocchi:
- Domini di rete: bloccare con un elenco di domini gestiti vuoto blocca tutto il traffico in uscita dalla sandbox.
- Server MCP: bloccare senza
allowedMcpServersin nessuna sorgente di amministrazione né nelle impostazioni fornite dal parent carica ogni server chedeniedMcpServersnon blocca. - Percorsi di lettura: le voci
allowReadriconsentono solo percorsi all'interno delle areedenyRead, quindi abbinale a undenyReadgestito.
Impostazioni non coperte dai blocchi
Queste impostazioni fornite dal parent superano il filtro anche con tutti e cinque i blocchi impostati:
forceLoginOrgUUID: Claude Code rispetta un valore fornito dal parent quando la sorgente di amministrazione con priorità più alta non imposta un UUID di organizzazione. L'accesso al gateway non verifica questa chiave. Un UUID di organizzazione nella sorgente di amministrazione con priorità più alta blocca il valore del parent ed è quello che Claude Code applica.allowedMcpServers: Claude Code rispetta un'allowlist fornita dal parent quando non è in vigore alcun elenco di amministrazione.allowManagedMcpServersOnlynon la blocca, perché il blocco applica come valore gestito qualunque elenco prevalga, incluso uno fornito dal parent quando nessuna sorgente di amministrazione fornisce un elenco. Un elenco nella sorgente di amministrazione con priorità più alta blocca quello del parent ed è l'elenco che Claude Code applica, quindi impostaallowedMcpServerslì, accanto al blocco. Prima della v2.1.223, un valore per una delle due chiavi in qualsiasi sorgente di amministrazione bloccava quello del parent.availableModels: Claude Code rispetta un elenco di modelli fornito dal parent quando la sorgente gestita vincente non ne imposta uno. Se il tuo parco macchine limita i modelli, impostaavailableModelsnella sorgente vincente.allowedProviders: Claude Code rispetta un'allowlist dei provider API fornita dal parent quando la sorgente gestita vincente non ne imposta una. Se il tuo parco macchine limita i provider API che gli sviluppatori possono usare, impostaallowedProvidersnella sorgente vincente. Richiede Claude Code v2.1.285 o successivo.strictKnownMarketplaces: Claude Code rispetta un'allowlist dei marketplace di plugin fornita dal parent quando la sorgente gestita vincente non ne imposta una. Claude Desktop 2.16120.0 o successivo ne invia una quando la sua configurazione gestita disattiva i marketplace di plugin aggiunti dall'utente. Se il tuo parco macchine limita i marketplace, impostastrictKnownMarketplacesnella sorgente vincente. Richiede Claude Code v2.1.282 o successivo.blockedMarketplaces: una blocklist dei marketplace fornita dal parent supera il filtro e si aggiunge a qualsiasi blocklist impostata da una sorgente gestita, poiché una blocklist può solo restringere ulteriormente. Richiede Claude Code v2.1.282 o successivo.strictPluginOnlyCustomization: questa chiave supera il filtro indipendentemente da qualsiasi blocco, e fa sì che Claude Code ignori le personalizzazioni dello sviluppatore, inclusi gli hook di protezione. Nessun blocco la blocca.
Con l'impostazione predefinita first-wins, un valore di amministrazione blocca quello del parent solo quando si trova nella sorgente di amministrazione con priorità più alta, tranne che per allowedMcpServers mentre il blocco dei server MCP è attivo. Con l'opt-in al merge managedSourcesBehavior, come Claude Code combina le sorgenti gestite indica invece quale valore di sorgente si applica.
Connettere Claude Desktop
Claude Desktop si connette allo stesso gateway tramite una chiave MDM diversa: imposta bootstrapUrl nella configurazione gestita di Claude Desktop su <listen.public_url>/user/bootstrap, e abilita la policy dell'utente con una chiave desktop. Overlay di Claude Desktop tratta entrambe le parti. Richiede Claude Code v2.1.203 o successivo sul server gateway.
Claude Desktop fa accedere lo sviluppatore tramite l'identity provider del gateway con lo stesso passaggio SSO nel browser, poi recupera la propria configurazione dal gateway invece che da Anthropic. L'accesso ai modelli e la policy seguono le stesse regole per gruppo della CLI. Uno sviluppatore che usa sia la CLI sia Claude Desktop accede a ciascuno separatamente; la sessione del gateway non è condivisa tra i due.
Una volta connesso, Claude Desktop invia le richieste al modello da ogni scheda abilitata attraverso il gateway. Mostra per impostazione predefinita le schede Cowork e Code. Per attivare anche la scheda Chat, imposta chatTabEnabled su true nella configurazione gestita di Claude Desktop, oppure nel blocco desktop della policy su un gateway che esegue Claude Code v2.1.227 o successivo.
Pipeline CI e macchine remote
Non esiste un flusso con token di servizio per le pipeline non presidiate. L'accesso al gateway esegue sempre il device flow nel browser, quindi un job CI senza uno sviluppatore che approvi l'accesso non può autenticarsi; configura questi job direttamente con il tuo provider.
Una volta che uno sviluppatore ha effettuato l'accesso, ogni sessione di Claude Code su quella macchina usa la sessione del gateway, incluse le esecuzioni non interattive di claude -p e le sessioni avviate dall'Agent SDK. Claude Code applica la policy del gateway a ciascuna di esse.
Il device flow separa la CLI che esegue il polling dal browser che approva, quindi funziona anche una macchina di sviluppo remota senza display: lo sviluppatore esegue /login via SSH sulla macchina remota e apre il link di verifica nel browser del proprio laptop.
Cosa viene imposto agli sviluppatori
Queste garanzie si applicano a ogni sessione con accesso effettuato tramite /login. Le sessioni incorporate avviate da Claude Desktop ricevono la propria policy come descritto in Fornire la policy alle sessioni di Claude Desktop, e il punto sulla telemetria indica dove vanno le loro esportazioni.
- Accesso ai modelli: le richieste per modelli che la policy non concede restituiscono 400, e il selettore
/modelè filtrato in base all'allowlistavailableModelsdella policy. Questo include il modello con cui una sessione si avvia prima che lo sviluppatore ne scelga uno; consulta Avviare le sessioni su un modello consentito dalla policy. - Destinazione della telemetria: nelle sessioni con accesso effettuato tramite
/login, la CLI invia le proprie esportazioni OTLP/HTTP al gateway invece che a unOTEL_EXPORTER_OTLP_ENDPOINTimpostato localmente, a meno che una policy non indichi il tuo collector come endpoint. Il gateway inoltra le esportazioni che riceve alle destinazioni intelemetry.forward_to.- Nelle sessioni incorporate avviate da Claude Desktop, la CLI invia le proprie esportazioni all'
OTEL_EXPORTER_OTLP_ENDPOINTconfigurato. La CLI allega il token di sessione del gateway a queste esportazioni solo quando quell'endpoint punta al gateway stesso. - Se per un segnale non è configurata alcuna destinazione, il gateway lo accetta e lo scarta.
- Se raccogli già la telemetria di Claude Code direttamente, aggiungi il tuo collector come destinazione
forward_to, oppure indicalo in una policy per saltare l'inoltro.
- Nelle sessioni incorporate avviate da Claude Desktop, la CLI invia le proprie esportazioni all'
- Credenziali: il token del gateway è l'unica credenziale della sessione. I profili Anthropic e qualsiasi precedente accesso a claude.ai vengono ignorati mentre si è connessi, quindi gli sviluppatori non devono prima uscire da claude.ai. Per una credenziale
ANTHROPIC_API_KEY,ANTHROPIC_AUTH_TOKENoapiKeyHelperconfigurata, o una chiave API salvata da un precedente accesso a Claude Console, consulta Il criterio dell'amministratore richiede un accesso tramite Cloud gateway. - Impostazioni gestite: le chiavi bloccate non possono essere sovrascritte localmente. La CLI applica la policy all'avvio e applica le modifiche a ogni polling orario, a parte le modifiche che si applicano solo al successivo avvio.
- Avvio con il gateway irraggiungibile: le sessioni con accesso effettuato terminano all'avvio con un errore dopo circa 10 secondi invece di avviarsi senza le proprie impostazioni.
- Avvio dopo che il gateway ha terminato la sessione: consulta Imporre l'avvio fail-closed per gli avvii che si aprono senza accesso al gateway e quelli che terminano quando il gateway risponde con un
401. - Deprovisioning: una sessione il cui utente è disabilitato nell'IdP scade entro
ttl_hoursquando il rinnovo successivo fallisce. - Disconnessione:
/logoutelimina la credenziale del gateway dalla macchina dello sviluppatore.- Quando il documento di discovery del gateway dichiara un
revocation_endpointcon lo stesso schema, host e porta dell'URL del gateway,/logoutinvia anche i token memorizzati a quell'endpoint, in modo che il gateway possa terminare la sessione dal proprio lato. La richiesta è best effort, quindi la disconnessione si completa sulla macchina dello sviluppatore indipendentemente dal fatto che l'endpoint risponda. La revoca richiede Claude Code v2.1.275 o successivo sulla macchina dello sviluppatore. - Il server gateway incluso nel binario
claudenon ne dichiara alcuno, quindi una disconnessione da esso termina la sessione solo sulla macchina dello sviluppatore. Per forzare la chiusura delle sessioni lato server, consulta Rotazione del segreto JWT.
- Quando il documento di discovery del gateway dichiara un
Cosa può vedere l'organizzazione
La telemetria di utilizzo trasmette al collector dell'organizzazione l'identità dello sviluppatore, il numero di token, il modello e la latenza. Il gateway non registra né memorizza il contenuto dei prompt o delle risposte generate. Se venga raccolta una telemetria più ricca come log e trace, che può includere comandi e percorsi di file, è una scelta per destinazione dell'organizzazione.
Disponibilità e limitazioni
La tabella copre quali funzionalità di Claude Code funzionano quando gli sviluppatori si connettono attraverso il gateway e cosa supporta il server gateway stesso. Dove qualcosa non è supportato, la colonna Note fornisce l'alternativa.
Il gateway consegna i valori anthropic-beta che il CLI invia a ogni upstream, quindi gli operatori non mantengono un'allowlist beta. Per Amazon Bedrock, che ignora l'intestazione, il gateway sposta i valori nel campo anthropic_beta del corpo della richiesta; gli altri upstream ricevono l'intestazione come inviata.
| Funzionalità | Stato | Note |
|---|---|---|
| Inoltro di inferenza (Amazon Bedrock, Claude Platform su AWS, Agent Platform di Google Cloud, Microsoft Foundry, Anthropic) | Disponibile | Con traduzione del modello per upstream e failover. L'upstream Amazon Bedrock utilizza l'endpoint bedrock-runtime e la catena di credenziali predefinita AWS. L'upstream Amazon Bedrock Mantle richiede Claude Code v2.1.283 o successivo sul server gateway, e l'upstream Claude Platform su AWS richiede v2.1.198 o successivo. |
| Finestra di contesto da 1M token | Disponibile | I modelli Fable, Sonnet 5 e successivi, e Opus 4.7 e successivi funzionano con la finestra da 1M per impostazione predefinita; vedi Contesto esteso. L'impostazione predefinita da 1M per i modelli Fable e Opus richiede Claude Code v2.1.287 o successivo sulla macchina dello sviluppatore |
| Accesso ai modelli e impostazioni gestite per gruppo IdP | Disponibile | L'accesso ai modelli viene applicato lato server; le impostazioni gestite vengono consegnate per gruppo IdP e applicate dal CLI al livello di impostazioni gestite |
| Claude Desktop | Disponibile con consenso esplicito | Il gateway fornisce la configurazione di Claude Desktop su /user/bootstrap una volta che una politica acconsente con una chiave desktop, e Claude Desktop invia richieste di modello dalle sue schede Cowork e Code, e dalla scheda Chat quando la abiliti, attraverso il gateway. Per attivare la scheda Chat, vedi Connetti Claude Desktop. Richiede Claude Code v2.1.203 o successivo sul server gateway. |
| Fan-out di telemetria (OTLP/HTTP) | Disponibile | Identità-timbrato per esportazione; entrambe le codifiche protobuf e JSON |
| Provider di identità OIDC | Disponibile | Qualsiasi IdP conforme a OIDC; il gateway esegue il discovery OIDC standard e il flusso del codice di autorizzazione. Vedi Configurazione del provider di identità per la configurazione per IdP |
| Limiti di spesa per utente e per gruppo | Disponibile | Vedi Limiti di spesa |
| Ricerca web lato server | Non disponibile | Il CLI non può vedere quale provider upstream il gateway instrada, quindi non può verificare il supporto della ricerca web e disabilita WebSearch sulle sessioni del gateway |
| Remote Control | Non disponibile | Il CLI mostra un errore che nomina il gateway |
/design-sync e /design-login |
Non disponibile | Entrambi hanno bisogno di claude.ai, che il CLI non contatta sulle sessioni del gateway, quindi nessuno dei due comandi appare lì |
Funzionalità che necessitano di recupero dei flag di funzionalità, come /import e claude import |
Non disponibile | Il CLI salta il recupero dei flag sulle sessioni del gateway. Funzionalità che necessitano di recupero dei flag di funzionalità elenca cosa questo disattiva |
| Prompt caching standard | Disponibile | Il gateway inoltra i breakpoint cache_control a ogni upstream. Dove risiede la cache copre quali blocchi il CLI contrassegna, incluso il contesto di sistema che aggiunge a metà conversazione |
| TTL cache di 1 ora | Non disponibile | Il CLI omette il beta della cache estesa sulle sessioni del gateway, perché non ogni upstream a cui il gateway può instradare supporta il TTL di 1 ora, quindi il prompt caching attraverso il gateway utilizza il TTL di 5 minuti; vedi la nota dell'intestazione beta sopra |
| Modalità auto | Disponibile | Segue le regole del provider di terze parti: solo i modelli idonei sui provider di terze parti possono usarla. Prima della v2.1.207, la modalità auto sulle sessioni del gateway richiedeva l'impostazione di CLAUDE_CODE_ENABLE_AUTO_MODE=1, consegnabile tramite il blocco env della politica gestita |
| Ottimizzazioni solo per la prima parte come ambito cache globale e strumenti efficienti in termini di token | Non disponibile | Il CLI non le abilita sulle sessioni del gateway; vedi la nota dell'intestazione beta sopra |
| OTLP/gRPC | Non supportato | OTLP su HTTP solo |
| SAML, LDAP e altri auth non OIDC | Non supportato | Solo OIDC. Fronte con un ponte OIDC se necessario |
| Multi-tenant (più emittenti OIDC) | Non supportato | Un emittente per gateway. Esegui istanze separate |
| Server Windows | Non supportato | Distribuisci su Linux. macOS solo per lo sviluppo locale |
| Helm chart | Non disponibile | Il gateway viene eseguito come una Deployment stateless standard; vedi la guida di distribuzione |
| Interfaccia utente amministratore | Non disponibile | La configurazione è il file YAML; ridistribuisci per cambiarla |
Passaggi successivi
La guida rapida ti lascia con una configurazione minima in esecuzione sotto Docker Compose. Per andare oltre:
- Espandi
gateway.yamloltre la configurazione minima, ad esempio per aggiungere RBAC per gruppo, failover multi-upstream o destinazioni di telemetria. Il riferimento di configurazione copre ogni opzione. - Passa da Compose a una distribuzione di produzione su Kubernetes o Cloud Run, configura correttamente il tuo IdP e rivedi il modello di sicurezza. La guida di distribuzione e operazioni copre la configurazione per IdP, i requisiti dell'immagine container, i probe di salute e la risoluzione dei problemi.
- Metti limiti di spesa su singoli sviluppatori o gruppi in modo che un carico di lavoro incontrollato non possa consumare il tuo intero impegno. Limiti di spesa copre l'API amministratore e come funziona l'applicazione.
- Per un esempio completo su AWS, con ECS Fargate o EKS, Amazon RDS e Secrets Manager, vedi Distribuisci su AWS.
- Per un esempio completo su Google Cloud, con Cloud Run, Cloud SQL e Secret Manager, vedi Distribuisci su Google Cloud.