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. ImpostaclientId 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.
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’opzionenetwork 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 CLIcopilot o gh e non specifichi nulla, vengono usate le credenziali salvate.
OAuth GitHub App / PAT
Passa agithub_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
github_token, use_logged_in_user viene impostato automaticamente a false. Se vuoi cambiarlo esplicitamente, procedi così.
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.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.COPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKEN
Priorità dell’autenticazione
L’SDK risolve le credenziali nel seguente ordine.github_token(specificato esplicitamente)- Token da variabile d’ambiente (
COPILOT_GITHUB_TOKEN→GH_TOKEN→GITHUB_TOKEN) - Credenziali OAuth salvate dalla CLI
- Credenziali del CLI
gh
Disabilitare il login automatico
Se non vuoi usare le credenziali salvate, impostause_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.
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 diauth.getStatus.
Selezionare un account per il login interattivo
EnumeraloginAccounts 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.
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.