• Messaggi
  • Agenti gestiti
  • Amministrazione
Search...
⌘K
Organizzazione
API AdminWorkspace
Autenticazione
PanoramicaWorkload Identity FederationRiferimento WIF
Monitoraggio
API Utilizzo e costiAPI Limiti di velocitàAPI Claude Code Analytics
Dati e conformità
Residenza dei datiAPI e conservazione dei dati
API Compliance
PanoramicaOttenere l'accessoFeed attivitàChat, file e progettiOrganizzazioni, utenti, ruoli e gruppiProgettare la tua integrazioneErroriFAQ
Log in
Riferimento WIF
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Amazon Bedrock
  • Google Cloud's Vertex AI

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Amministrazione/Autenticazione

Riferimento WIF

Variabili d'ambiente, regole di validazione, configurazione dei profili e riferimento agli errori per Workload Identity Federation.

Questa pagina raccoglie le superfici di configurazione, i vincoli di validazione e le mappature degli errori per Workload Identity Federation. Per le procedure guidate di configurazione, consulta le guide dei provider.

Richiesta di scambio token

POST /v1/oauth/token accetta un corpo JSON che utilizza il grant jwt-bearer di RFC 7523. Gli SDK costruiscono questa richiesta per te a partire dalle variabili d'ambiente; gli esempi cURL in ciascuna guida del provider mostrano il corpo grezzo.

CampoObbligatorioDescrizione
grant_typeSìSempre urn:ietf:params:oauth:grant-type:jwt-bearer.
assertionSìIl JWT OIDC emesso dal tuo identity provider.
federation_rule_idSìID con tag (fdrl_...) della regola di federazione da valutare.
organization_idSìUUID della tua organizzazione Anthropic.
service_account_idSìID con tag (svac_...) del service account di destinazione.
workspace_idCondizionaleID con tag (wrkspc_...) del workspace a cui limitare l'ambito del token emesso, oppure il valore letterale default per il workspace predefinito dell'organizzazione. Obbligatorio quando la regola è abilitata per più di un workspace. Se omesso, il server seleziona l'unico workspace abilitato della regola.

Risposta dello scambio token

POST /v1/oauth/token restituisce una risposta token OAuth 2.0 standard (RFC 6749 §5.1):

CampoTipoDescrizione
access_tokenstringIl token Anthropic a breve durata, con prefisso sk-ant-oat01-.... Passalo come Authorization: Bearer <token>.
token_typestringSempre Bearer.
expires_inintegerSecondi fino alla scadenza del token.
scopestringLo scope OAuth concesso dalla regola corrispondente.

Variabili d'ambiente

L'SDK legge queste variabili per eseguire uno scambio di token federato senza argomenti del costruttore.

VariabileObbligatoriaDescrizioneEsempio
ANTHROPIC_FEDERATION_RULE_IDSìID con tag della regola di federazione da valutare.fdrl_...
ANTHROPIC_ORGANIZATION_IDSìUUID della tua organizzazione Anthropic. Lo trovi nella Claude Console in Settings > Organization.00000000-0000-0000-0000-000000000000
ANTHROPIC_IDENTITY_TOKEN_FILEUna tra _TOKEN_FILE o _TOKENPercorso del filesystem al JWT emesso dal tuo "identity provider" (provider di identità), o IdP. L'SDK rilegge questo file a ogni scambio in modo che i token proiettati che ruotano su disco siano sempre aggiornati./var/run/secrets/anthropic.com/token

Il percorso di federazione diretto tramite variabili d'ambiente si attiva solo quando ANTHROPIC_FEDERATION_RULE_ID, ANTHROPIC_ORGANIZATION_ID, ANTHROPIC_SERVICE_ACCOUNT_ID e una tra ANTHROPIC_IDENTITY_TOKEN_FILE o ANTHROPIC_IDENTITY_TOKEN sono tutte impostate. ANTHROPIC_WORKSPACE_ID viene letta insieme alle altre ma non condiziona l'attivazione.

Una variabile impostata su una stringa vuota occupa comunque il suo posto nella catena di precedenza delle credenziali. Se ANTHROPIC_API_KEY="" è esportata, l'SDK seleziona il percorso della chiave API con una chiave vuota anziché passare alla federazione. Rimuovi le variabili di credenziali inutilizzate anziché svuotarle.

Precedenza delle credenziali

L'SDK risolve le credenziali in questo ordine. La prima sorgente che produce una credenziale vince.

OrdineSorgenteNote
1Argomento del costruttore (api_key=, auth_token=, credentials=)Sovrascrive sempre tutto il resto.
2ANTHROPIC_API_KEY o ANTHROPIC_AUTH_TOKENOscura completamente la federazione. Rimuovi queste variabili quando migri dalle chiavi API.
3ANTHROPIC_PROFILECarica <config_dir>/configs/<name>.json. Un profilo nominato mancante è un errore, non un passaggio alla sorgente successiva.
4Variabili d'ambiente di federazioneANTHROPIC_FEDERATION_RULE_ID + ANTHROPIC_ORGANIZATION_ID + + .

Quando viene caricato un profilo, le variabili d'ambiente riempiono i campi che il profilo omette ma non sovrascrivono mai i campi che il profilo imposta esplicitamente. Ad esempio, ANTHROPIC_WORKSPACE_ID riempie workspace_id solo quando il profilo attivo non lo imposta.

File di configurazione del profilo

Un profilo è un file di configurazione nominato che sia l'SDK sia la CLI ant leggono. I profili ti consentono di distribuire i parametri di federazione con la tua immagine container o di passare da un ambiente all'altro senza modificare il codice.

Directory di configurazione

L'SDK individua la directory di configurazione in questo ordine:

  1. $ANTHROPIC_CONFIG_DIR
  2. ~/.config/anthropic su Linux e macOS
  3. %APPDATA%\Anthropic su Windows

Profilo attivo

Il nome del profilo attivo viene risolto in questo ordine:

  1. $ANTHROPIC_PROFILE
  2. Il contenuto di <config_dir>/active_config (un file di una riga scritto da ant profile activate <name>)
  3. Il nome letterale default

Claude Code e il Claude Agent SDK rispettano questo stesso ordine di risoluzione, quindi un profilo di federazione configurato qui autentica anche quegli strumenti senza configurazione aggiuntiva.

Layout dei file

PercorsoContenutoSensibilità
<config_dir>/configs/<profile>.jsonversion, il blocco authentication, organization_id, workspace_id e base_url.Non segreto. Sicuro da committare o includere in un'immagine.
<config_dir>/credentials/<profile>.jsonversion, l'access_token memorizzato nella cache, expires_at e (per il login interattivo) refresh_token.Segreto. Scritto dall'SDK con modalità 0600.

Sia il file di configurazione sia il file delle credenziali contengono un campo stringa version di primo livello in formato major.minor (attualmente "1.0"). L'SDK scrive questo campo automaticamente in modo che le versioni future possano rilevare e migrare i formati precedenti; omettilo quando crei una configurazione a mano e l'SDK tratterà il file come la versione corrente.

Esempio di profilo di federazione

configs/production.json
{
  "version": "1.0",
  "authentication": {
    "type": "oidc_federation",
    "federation_rule_id": "fdrl_...",
    "service_account_id": "svac_...",
    "identity_token": {
      "source": "file",
      "path": "/var/run/secrets/anthropic.com/token"
    }
  },
  "organization_id": "00000000-0000-0000-0000-000000000000",
  "workspace_id": "wrkspc_...",
  "base_url": "https://api.anthropic.com"
}

Se authentication.identity_token è omesso, l'SDK ricorre a ANTHROPIC_IDENTITY_TOKEN_FILE o ANTHROPIC_IDENTITY_TOKEN dall'ambiente.

Scope OAuth

L'oauth_scope che imposti su una regola di federazione determina quali endpoint dell'API Claude può chiamare l'access token emesso.

ScopeConcede accesso a
workspace:developerTutti gli endpoint non amministrativi dell'API Claude nel workspace della regola: Messages (inclusi streaming e conteggio dei token), Models, Managed Agents e le loro sessioni, Files e Skills. Questo corrisponde all'accesso che ha una chiave API emessa per lo stesso workspace.
org:manage_tunnelsL'API dei tunnel MCP: elencare e ottenere tunnel, registrare e archiviare certificati CA, rivelare e ruotare il token del tunnel e archiviare tunnel. La finestra modale di creazione tunnel della Console blocca questo scope quando crei una regola da essa.

Una richiesta a un endpoint al di fuori dello scope del token restituisce HTTP 403. Scope più granulari (per risorsa, o lettura rispetto a scrittura) non sono attualmente disponibili.

Regole di validazione

Anthropic applica questi vincoli quando crei o aggiorni issuer e regole, e quando verifica un JWT in ingresso al momento dello scambio.

Campi delle risorse

CampoVincolo
name di issuer, regola e service accountDeve corrispondere a ^[a-z0-9-]+$, lunghezza da 1 a 255 caratteri.
workspace_idOpzionale. Il workspace (wrkspc_...) la cui quota, fatturazione e limiti di velocità si applicano ai token emessi sotto questa regola. Deve essere un workspace nella stessa organizzazione e il service account di destinazione deve essere membro di quel workspace. Può essere omesso per le regole configurate per un solo workspace.
token_lifetime_secondsIntero tra 60 e 86400 (da 1 minuto a 24 ore). Predefinito 3600. I valori al di fuori di questo intervallo vengono rifiutati al momento della richiesta. Consulta Durata e refresh del token.

Campi URL

I campi issuer_url, jwks.discovery_base e jwks.url vengono validati:

VincoloDettaglio
SchemaDeve essere https.
PortaDeve essere 443 (esplicita o predefinita).
HostDeve essere un nome host DNS pubblico per il tuo provider OIDC. Deve risolversi in indirizzi IP pubblici; i letterali IP non sono accettati.

Gli errori di validazione URL restituiscono 400 invalid_request_error con il nome del campo come prefisso nel messaggio di errore (ad esempio, issuer_url: url must use https scheme).

I vincoli URL si applicano solo agli URL che Anthropic contatta. Nelle modalità JWKS explicit_url e inline, e nella modalità discovery quando jwks.discovery_base è impostato, l'issuer_url viene confrontato con il claim iss del JWT come stringa e non viene mai recuperato, quindi può fare riferimento a un hostname interno o a una porta non standard.

Verifica JWT

VincoloDettaglio
Dimensione massimaIl JWT assertion deve essere al massimo 16 KiB.
Algoritmo di firmaSono accettati solo algoritmi asimmetrici (famiglie RSA ed ECDSA: ES256, ES384, ES512, RS256, RS384, RS512, PS256, PS384, PS512). HMAC (HS256, HS384, HS512) e none vengono rifiutati.
Key IDL'header del JWT deve contenere un kid che corrisponda a una chiave nel JWKS dell'issuer. I token senza kid vengono rifiutati.
Claim obbligatorisub deve essere presente. iat deve essere presente e non nel futuro. exp deve essere presente e nel futuro.
Durata massimaLa durata del token ( meno ) non deve superare il massimo configurato dell'issuer (1 ora per impostazione predefinita, configurabile per ciascun issuer nella Claude Console).

Semantica di corrispondenza delle regole

Il blocco match di una regola di federazione determina se un JWT in ingresso viene accettato. Tutti i campi popolati vengono valutati con semantica AND: il JWT deve soddisfare ogni matcher popolato. Almeno uno tra subject_prefix, claims o condition deve essere impostato; un blocco match che contiene solo audience (o nessun matcher) viene rifiutato. Questo protegge da regole che accetterebbero ogni token da un issuer.

MatcherTipoSemantica
subject_prefixstringCorrispondenza esatta con il claim sub del JWT. Un * finale lo rende una corrispondenza per prefisso (il valore sub deve iniziare con i caratteri prima del *). Case-sensitive.
audiencestringIl claim aud del JWT deve contenere esattamente questa stringa. Quando aud è un array, qualsiasi elemento che corrisponde esattamente soddisfa il controllo.
claimsmap<string, string>Ogni chiave è un nome di claim di primo livello e ogni valore è il valore stringa esatto richiesto. Per claim annidati, numerici, booleani o complessi come liste e mappe, usa invece condition con un'espressione CEL.

Ambiente di valutazione CEL

L'espressione condition ha accesso a una singola variabile:

VariabileTipoContenuto
claimsmapL'intero set di claim JWT decodificato. Gli oggetti annidati sono accessibili come mappe annidate.

Esempio:

claims.sub.startsWith("repo:acme-corp/") && claims.ref in ["refs/heads/main", "refs/heads/release"]

Le condizioni CEL sono confini di sicurezza. Un'espressione che valuta a true per più input del previsto concede un accesso più ampio del previsto. Preferisci i matcher statici quando esprimono il tuo vincolo.

Errori

Errori di scambio token

POST /v1/oauth/token restituisce errori nella forma standard degli errori API. L'SDK incapsula i fallimenti di scambio in un FederationExchangeError tipizzato (o equivalente nel linguaggio) che espone lo stato HTTP, il corpo della risposta e il request_id.

StatoErroreCausaRisoluzione
400invalid_requestfederation_rule_id è malformato o manca un campo obbligatorio della richiesta.Verifica l'ID fdrl_ e che il corpo della richiesta includa tutti i campi obbligatori.
400invalid_requestworkspace_id_required: la regola di federazione è abilitata per più di un workspace e la richiesta omette workspace_id.Imposta ANTHROPIC_WORKSPACE_ID (o il campo workspace_id nel corpo di una richiesta grezza) sull'ID wrkspc_... a cui vuoi limitare l'ambito del token. Consulta Richiesta di scambio token.
400

Tutti i fallimenti invalid_grant restituiscono HTTP 400; la causa specifica viene registrata solo lato server e non esposta nella risposta.

Fallimenti comuni lato SDK

SintomoCausaRisoluzione
L'SDK segnala "no credentials" invece di eseguire lo scambioUna tra ANTHROPIC_FEDERATION_RULE_ID, ANTHROPIC_ORGANIZATION_ID, ANTHROPIC_SERVICE_ACCOUNT_ID o ANTHROPIC_IDENTITY_TOKEN[_FILE] non è impostata e nessun profilo è attivo.Imposta tutte e quattro le variabili, oppure configura un profilo.
L'SDK si autentica con una chiave API invece di federareANTHROPIC_API_KEY o ANTHROPIC_AUTH_TOKEN è impostata e vince la precedenza.Rimuovi la variabile della chiave o del token.
FileNotFoundError alla prima richiestaIl percorso in ANTHROPIC_IDENTITY_TOKEN_FILE non esiste. L'SDK apre il file in modo lazy al momento dello scambio.Conferma che il volume del token proiettato sia montato e che il percorso corrisponda.
Lo scambio token ha successo ma una richiesta all'API Claude restituisce 403

Risolvere i problemi di uno scambio fallito

Una risposta 400 invalid_grant è intenzionalmente opaca; la causa specifica viene registrata solo lato server.

Inizia dalla pagina della cronologia di autenticazione nella Claude Console. I tentativi di scambio recenti mostrano l'issuer e la regola che sono stati valutati, i claim JWT che sono stati ispezionati e quale passaggio di validazione è fallito, il che di solito rende superflui i controlli seguenti.

Se hai ancora bisogno di eseguire il debug dal JWT stesso, esegui questi controlli in ordine:

Modalità di origine JWKS

Quando registri un issuer di federazione, il campo jwks controlla come Anthropic ottiene le chiavi pubbliche utilizzate per verificare le firme JWT da quell'issuer. È una discriminated union con chiave su type:

jwks.typeForma di jwksComportamentoUsa quando
discovery (predefinito){ "type": "discovery", "discovery_base": "https://..." } (discovery_base è opzionale; impostalo quando l'URL di discovery differisce da issuer_url)Anthropic recupera <discovery_base or issuer_url>/.well-known/openid-configuration, legge jwks_uri dal documento di discovery e recupera il JWKS da lì.Il tuo IdP serve un documento di discovery OIDC standard su internet pubblico. La maggior parte dei provider gestiti (EKS, GKE, Cloud Run, GitHub Actions, Entra ID) lo supporta.
explicit_url{ "type": "explicit_url", "url": "https://..." }Anthropic recupera il JWKS direttamente da url. L' viene utilizzato solo per il confronto di stringhe con il claim del JWT e non viene mai contattato.

La discriminated union rende i campi complementari mutuamente esclusivi per costruzione. Sia discovery sia explicit_url accettano anche una stringa opzionale ca_cert_pem per gli issuer che servono TLS da una CA privata.

Rotazione delle chiavi e caching

Nelle modalità discovery ed explicit_url, Anthropic memorizza nella cache il JWKS recuperato. Se il tuo identity provider pubblica una nuova chiave di firma e inizia immediatamente a firmare token con essa, gli scambi che presentano quei token possono fallire con un errore di firma per un massimo di un minuto mentre la cache si aggiorna.

Per evitare questa finestra, pubblica una nuova chiave di firma nel JWKS almeno 15 minuti prima che il tuo identity provider inizi a firmare token con essa, e mantieni la chiave sostituita nel JWKS finché i token che ha firmato non sono scaduti. Gli identity provider gestiti in genere seguono questa disciplina autonomamente. Se gestisci il tuo issuer (un cluster Kubernetes autogestito, un provider di discovery OIDC SPIRE o un authorization server personalizzato Okta con una cadenza di rotazione configurata), conferma che la tua policy di rotazione pubblichi le nuove chiavi prima del primo utilizzo.

Nella modalità inline non c'è alcun aggiornamento automatico delle chiavi. Quando il tuo identity provider ruota le sue chiavi di firma, devi aggiornare la configurazione dell'issuer con il nuovo JWKS, altrimenti tutti gli scambi di token falliranno la verifica della firma.

Was this page helpful?

  • Richiesta di scambio token
  • Risposta dello scambio token
  • Variabili d'ambiente
  • Precedenza delle credenziali
  • File di configurazione del profilo
  • Directory di configurazione
  • Profilo attivo
  • Layout dei file
  • Esempio di profilo di federazione
  • Scope OAuth
  • Regole di validazione
  • Campi delle risorse
  • Campi URL
  • Verifica JWT
  • Semantica di corrispondenza delle regole
  • Ambiente di valutazione CEL
  • Errori
  • Errori di scambio token
  • Fallimenti comuni lato SDK
  • Risolvere i problemi di uno scambio fallito
  • Modalità di origine JWKS
  • Rotazione delle chiavi e caching
ANTHROPIC_IDENTITY_TOKENUna tra _TOKEN_FILE o _TOKENIl JWT letterale come stringa. Usalo quando la tua piattaforma inietta il token come variabile d'ambiente anziché come file.eyJhbGciOiJSUzI1NiIs...
ANTHROPIC_SERVICE_ACCOUNT_IDSìID con tag del service account Anthropic di destinazione per conto del quale agisce l'access token emesso.svac_...
ANTHROPIC_WORKSPACE_IDCondizionaleID con tag del workspace a cui limitare l'ambito del token emesso, oppure il valore letterale default. Obbligatorio quando la regola di federazione è abilitata per più di un workspace; opzionale quando la regola è associata a un singolo workspace. Il token emesso è limitato a questo workspace al momento dello scambio, quindi cambiare workspace richiede un nuovo scambio.wrkspc_...
ANTHROPIC_PROFILENoNome di un profilo di configurazione da caricare. Ha la precedenza sulle variabili d'ambiente di federazione in questa tabella.staging-profile
ANTHROPIC_SERVICE_ACCOUNT_ID
ANTHROPIC_IDENTITY_TOKEN[_FILE]
5Profilo attivoRisolto da <config_dir>/active_config, con fallback a un profilo denominato default.
exp
iat
Tolleranza di clockViene applicata una tolleranza di 30 secondi a exp, nbf e iat.
conditionstring (CEL)Un'espressione CEL che deve valutare a true.
invalid_grant
Il claim iss del JWT non è esattamente uguale all'issuer_url registrato.
Confronta byte per byte, incluse le barre finali e lo schema: jq -rR 'split(".")[1] | gsub("-";"+") | gsub("_";"/") | @base64d | fromjson | .iss' <<< "$JWT".
400invalid_grantIl recupero del JWKS è fallito, il JWKS è obsoleto o il JWT è stato firmato con una chiave non presente nel JWKS.Per la modalità inline, aggiorna l'issuer con le chiavi ruotate. Per discovery ed explicit_url, conferma che l'endpoint JWKS sia raggiungibile sulla porta 443; se l'issuer ha recentemente ruotato la sua chiave di firma, consulta Rotazione delle chiavi e caching.
400invalid_grantIl claim exp del JWT è nel passato (oltre la finestra di tolleranza di 30 secondi).Conferma che il tuo identity provider stia proiettando un token fresco e che l'SDK stia rileggendo il file del token.
400invalid_grantIl JWT è stato verificato ma i suoi claim non soddisfano il blocco match della regola.Decodifica il JWT e confronta ogni claim con la regola. subject_prefix è case-sensitive. audience richiede una corrispondenza esatta di elemento.
400invalid_grantIl federation_rule_id non esiste, è archiviato o il JWT non è autorizzato per esso (consolidato per prevenire l'enumerazione).Conferma l'ID della regola nella Claude Console e che la regola non sia stata archiviata.
Lo scope del token emesso non concede accesso a quell'endpoint.
Verifica l'oauth_scope della regola rispetto a Scope OAuth.
L'autenticazione fallisce con credenziale vuotaUna variabile d'ambiente di credenziale è esportata ma impostata su una stringa vuota. I valori vuoti vincono comunque il loro posto nella precedenza.Rimuovi la variabile con unset VAR anziché VAR="".
  1. 1

    Decodifica il JWT

    Decodifica l'assertion che hai inviato in modo da poter confrontare ogni claim con la configurazione del tuo issuer e della regola:

    cURL
    jq -rR 'split(".")[1] | gsub("-";"+") | gsub("_";"/") | @base64d | fromjson' <<< "$JWT"
  2. 2

    Verifica che iss corrisponda all'issuer

    Il claim iss decodificato deve essere uguale all'issuer_url registrato byte per byte, inclusi schema, porta e qualsiasi barra finale. Una discrepanza su un singolo carattere fa fallire la verifica.

  3. 3

    Verifica che aud corrisponda alla regola

    Il claim aud decodificato deve contenere il valore audience della regola come corrispondenza esatta. Quando aud è un array, un elemento deve corrispondere esattamente.

  4. 4

    Verifica sub e ogni voce di claims

    Confronta sub con il subject_prefix della regola (case-sensitive; un * finale è una corrispondenza per prefisso, qualsiasi altra cosa è esatta). Confronta ogni chiave nella mappa claims della regola con il claim di primo livello con lo stesso nome.

  5. 5

    Verifica exp, nbf e iat

    exp deve essere nel futuro e nbf/iat devono essere nel passato, entro la finestra di tolleranza di 30 secondi. Se l'orologio dell'host del workload ha subito una deriva, un token altrimenti valido viene rifiutato.

  6. 6

    Verifica la raggiungibilità del JWKS

    Per la modalità discovery, recupera <jwks.discovery_base or issuer_url>/.well-known/openid-configuration tramite HTTPS pubblico sulla porta 443 e conferma che jwks_uri si risolva. Per explicit_url, recupera direttamente l'URL del JWKS. Per inline, conferma che la chiave di firma dell'issuer non sia stata ruotata da quando hai registrato le chiavi.

    Se l'issuer ha ruotato la sua chiave di firma e ha immediatamente iniziato a firmare con essa, gli scambi possono fallire per un massimo di un minuto mentre la cache JWKS di Anthropic si aggiorna. Consulta Rotazione delle chiavi e caching.

issuer_url
iss
Il tuo IdP non serve un documento di discovery, oppure il discovery è solo interno ma il JWKS è raggiungibile pubblicamente.
inline{ "type": "inline", "keys": [...] }Fornisci l'array di oggetti JWK inline (l'array keys dal documento JWKS, non l'oggetto wrapper). Anthropic non effettua alcuna richiesta in uscita. L'issuer_url viene utilizzato solo per il confronto con iss.Ambienti air-gapped, cluster Kubernetes autogestiti con URL issuer interni al cluster, o quando vuoi un controllo esplicito sulla rotazione delle chiavi.