Vai al contenuto principale

Autenticazione

Copilot SDK supporta più metodi di autenticazione. Scegli quello adatto al tuo caso d’uso.

Metodi di autenticazione

Per BYOK consulta Custom providers.

Microsoft Entra ID

Per usare l’accesso Microsoft Entra integrato e il rinnovo dei token, registra la tua applicazione host presso il client. Imposta clientId sull’ID applicazione (client) della registrazione della tua app Entra. Puoi passare un’istanza di EntraAuthConfig oppure un array. I valori vuoti o composti solo da spazi generano una InvalidArgumentException.
Puoi anche passare un array:
L’SDK invia l’ID client al runtime durante l’handshake server.connect. Questa registrazione è separata dall’RPC server accounts.acquireEntraToken, che richiede un token in modo esplicito. Se imposti una configurazione Entra e il runtime è troppo vecchio per supportare connect, l’SDK genera This runtime does not support Entra client configuration. invece di ignorare silenziosamente l’impostazione. In tal caso aggiorna il runtime. Gli altri metodi di autenticazione continuano a funzionare.

Callback di rete

Con l’opzione network puoi delegare la risoluzione del proxy e l’autenticazione Kerberos Negotiate del runtime a callback sull’host. Il runtime Copilot utilizzato deve supportare l’RPC network.setProvider. In caso contrario, il client lancia all’avvio un’eccezione che ti invita ad aggiornare il runtime. Ogni callback riceve il tipo di richiesta e un CancellationToken con cui puoi verificare l’annullamento.
resolveProxy restituisce una stringa in stile PAC come PROXY proxy.example:8080; DIRECT, oppure DIRECT per una connessione diretta. Restituisci null per lasciare che sia il runtime a risolvere il proxy. authenticateNegotiate restituisce un token SPNEGO in base64 monouso senza il prefisso Negotiate , oppure null quando non sono disponibili credenziali. Se una callback lancia un’eccezione, l’RPC fallisce e non viene effettuato il fallback a una connessione diretta. Convalida l’SPN prima di emettere le credenziali. scope è connection per impostazione predefinita e copre solo le richieste delle sessioni create o riprese da questo client. runtime copre anche le comunicazioni condivise in background, ma solo una connessione alla volta può detenere questo scope.

Login GitHub (CLI)

Se sei già loggato con il CLI copilot o gh e non specifichi nulla, vengono usate le credenziali salvate.

OAuth GitHub App / PAT

Passa a github_token il token di accesso utente ottenuto tramite flusso OAuth oppure un PAT fine-grained.
  • Sono attesi gho_ / ghu_ / github_pat_
  • ghp_ (Classic PAT) è deprecato
Specificando github_token, use_logged_in_user viene impostato automaticamente a false. Se vuoi cambiarlo esplicitamente, procedi così.
Per i dettagli consulta GitHub token. github_token e use_logged_in_user sono disponibili solo in modalità stdio. In modalità TCP la Copilot CLI deve essere già autenticata.

Mascherare i segreti generati dall’host

Se la tua applicazione host ottiene token in modo dinamico, ad esempio tramite MCP OAuth, registrali nel filtro di oscuramento della Copilot CLI. La CLI maschera i valori registrati nei log e nelle esportazioni delle sessioni.
Questa chiamata è separata dall’ottenimento e dal passaggio dei token con onMcpAuthRequest. Chiamala esplicitamente dopo aver ottenuto un token. L’SDK non rende persistenti i valori né li registra separatamente nei log per questo RPC.

Variabili d’ambiente

Se passi il token tramite variabili d’ambiente, la CLI lo rileva automaticamente. L’ordine di priorità è dal primo all’ultimo.
  1. COPILOT_GITHUB_TOKEN
  2. GH_TOKEN
  3. GITHUB_TOKEN
In modalità TCP imposta le variabili d’ambiente sul server CLI.

Priorità dell’autenticazione

L’SDK risolve le credenziali nel seguente ordine.
  1. github_token (specificato esplicitamente)
  2. Token da variabile d’ambiente (COPILOT_GITHUB_TOKEN → GH_TOKEN → GITHUB_TOKEN)
  3. Credenziali OAuth salvate dalla CLI
  4. Credenziali del CLI gh

Disabilitare il login automatico

Se non vuoi usare le credenziali salvate, imposta use_logged_in_user a false. Con false, per l’autenticazione viene usato solo il token specificato esplicitamente (github_token). I token delle variabili d’ambiente (COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN) vengono ignorati.
Come github_token, è supportato solo in modalità stdio. In modalità TCP la Copilot CLI deve essere già autenticata.

Verifica dello stato di autenticazione

Puoi verificarlo ottenendo il risultato di auth.getStatus.

Selezionare un account per il login interattivo

Enumera loginAccounts tramite la RPC di sessione per ottenere le identità salvate che puoi riutilizzare con un determinato provider. Il label di ogni elemento serve per la visualizzazione, mentre active indica se l’identità corrisponde all’account attivo della sessione corrente. accountId è un ID opaco di proprietà del provider. Passalo così com’è alla richiesta di login, senza analizzarlo né modificarlo.
Usa mode: 'default' per riutilizzare un’identità salvata con il comportamento normale del provider. Usa mode: 'selectAccount' per mostrare esplicitamente il selettore di account del provider. In questo caso, non passare accountId. Le chiamate esistenti come begin(LoginProviderKind::ENTRA) continuano a funzionare.
Per le informazioni più recenti fai riferimento al repository GitHub.
Ultima modifica il 9 novembre 2026