Zum Hauptinhalt springen

Authentifizierung

Das Copilot SDK unterstützt mehrere Authentifizierungsmethoden. Wählen Sie die für Ihren Anwendungsfall passende aus.

Authentifizierungsmethoden

Zu BYOK siehe Custom providers.

Microsoft Entra ID

Um die integrierte Microsoft-Entra-Anmeldung und Token-Aktualisierung zu nutzen, registrieren Sie Ihre Host-Anwendung beim Client. Setzen Sie clientId auf die Anwendungs-ID (Client-ID) Ihrer Entra-App-Registrierung. Sie können eine EntraAuthConfig-Instanz oder ein Array übergeben. Leere Werte und Werte, die nur aus Leerzeichen bestehen, lösen eine InvalidArgumentException aus.
Sie können auch ein Array übergeben:
Das SDK sendet die Client-ID während des server.connect-Handshakes an die Runtime. Diese Registrierung ist unabhängig vom Server-RPC accounts.acquireEntraToken, das explizit ein Token anfordert. Wenn Sie eine Entra-Konfiguration setzen und die Runtime zu alt ist, um connect zu unterstützen, löst das SDK This runtime does not support Entra client configuration. aus, anstatt die Einstellung stillschweigend zu verwerfen. Aktualisieren Sie in diesem Fall die Runtime. Andere Authentifizierungsmethoden funktionieren weiterhin.

Netzwerk-Callbacks

Mit der Option network können Sie die Proxy-Auflösung und die Kerberos-Negotiate-Authentifizierung der Runtime an Callbacks auf dem Host delegieren. Die verwendete Copilot-Runtime muss das RPC network.setProvider unterstützen. Andernfalls löst der Client beim Start eine Exception aus, die Sie auffordert, die Runtime zu aktualisieren. Jeder Callback erhält den Request-Typ und ein CancellationToken, mit dem Sie auf einen Abbruch prüfen können.
resolveProxy gibt einen PAC-artigen String wie PROXY proxy.example:8080; DIRECT zurück oder DIRECT für eine direkte Verbindung. Geben Sie null zurück, damit die Runtime den Proxy selbst auflöst. authenticateNegotiate gibt ein einmalig verwendbares base64-SPNEGO-Token ohne das Präfix Negotiate zurück oder null, wenn keine Anmeldedaten verfügbar sind. Wenn ein Callback eine Exception wirft, schlägt das RPC fehl, und es erfolgt kein Fallback auf eine direkte Verbindung. Prüfen Sie den SPN, bevor Sie Anmeldedaten ausstellen. scope ist standardmäßig connection und deckt nur Requests aus Sessions ab, die dieser Client erstellt oder fortgesetzt hat. runtime deckt zusätzlich die gemeinsame Hintergrundkommunikation ab, allerdings kann nur eine Verbindung gleichzeitig diesen Scope halten.

GitHub-Login (CLI)

Wenn Sie mit der copilot- oder gh-CLI angemeldet sind und nichts angeben, werden die gespeicherten Anmeldedaten verwendet.

OAuth GitHub App / PAT

Übergeben Sie ein über den OAuth-Flow erhaltenes User-Access-Token oder ein Fine-grained PAT an github_token.
  • Erwartet werden gho_ / ghu_ / github_pat_
  • ghp_ (Classic PAT) wird nicht empfohlen
Wenn Sie github_token angeben, wird use_logged_in_user automatisch auf false gesetzt. Um dies explizit umzuschalten, gehen Sie wie folgt vor.
Details siehe GitHub token. github_token und use_logged_in_user sind nur im stdio-Modus verfügbar. Im TCP-Modus muss die Copilot-CLI bereits authentifiziert sein.

Vom Host erzeugte Secrets maskieren

Wenn Ihre Host-Anwendung Tokens dynamisch bezieht, etwa über MCP OAuth, registrieren Sie diese beim Redaction-Filter der Copilot-CLI. Die CLI maskiert registrierte Werte in Session-Logs und Exporten.
Dieser Aufruf ist unabhängig vom Beziehen und Übergeben von Tokens mit onMcpAuthRequest. Rufen Sie ihn explizit auf, nachdem Sie ein Token erhalten haben. Das SDK speichert die Werte nicht dauerhaft und protokolliert sie für dieses RPC auch nicht separat.

Umgebungsvariablen

Wenn Sie das Token über Umgebungsvariablen übergeben, erkennt die CLI dies automatisch. Die Priorität ist von oben nach unten wie folgt.
  1. COPILOT_GITHUB_TOKEN
  2. GH_TOKEN
  3. GITHUB_TOKEN
Konfigurieren Sie im TCP-Modus die Umgebungsvariablen auf der CLI-Serverseite.

Priorität der Authentifizierung

Das SDK löst Anmeldedaten in folgender Reihenfolge auf.
  1. github_token (explizit angegeben)
  2. Umgebungsvariablen-Token (COPILOT_GITHUB_TOKEN → GH_TOKEN → GITHUB_TOKEN)
  3. In der CLI gespeicherte OAuth-Anmeldedaten
  4. Anmeldedaten der gh-CLI

Automatisches Login deaktivieren

Um gespeicherte Anmeldedaten nicht zu verwenden, setzen Sie use_logged_in_user auf false. Bei false wird zur Authentifizierung nur das explizit angegebene Token (github_token) verwendet. Tokens aus Umgebungsvariablen (COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN) werden ignoriert.
Wie github_token wird auch dies nur im stdio-Modus unterstützt. Im TCP-Modus muss die Copilot-CLI bereits authentifiziert sein.

Authentifizierungsstatus prüfen

Sie können den Status über das Ergebnis von auth.getStatus abrufen.

Konto für die interaktive Anmeldung auswählen

Listen Sie loginAccounts über das Session-RPC auf, um die gespeicherten Identitäten zu erhalten, die Sie bei einem bestimmten Anbieter wiederverwenden können. Das label jedes Eintrags dient der Anzeige, und active gibt an, ob die Identität dem aktiven Konto der aktuellen Session entspricht. accountId ist eine opake ID, die dem Anbieter gehört. Übergeben Sie sie unverändert an die Login-Anfrage, ohne sie zu parsen oder zu verändern.
Verwenden Sie mode: 'default', um eine gespeicherte Identität mit dem normalen Verhalten des Anbieters wiederzuverwenden. Verwenden Sie mode: 'selectAccount', um explizit die Kontoauswahl des Anbieters anzuzeigen. Übergeben Sie in diesem Fall kein accountId. Bestehende Aufrufe wie begin(LoginProviderKind::ENTRA) funktionieren weiterhin.
Aktuelle Informationen finden Sie im GitHub-Repository.
Zuletzt geändert am 9. November 2026