Autenticación
Copilot SDK admite varios métodos de autenticación. Elige el que mejor se adapte a tu caso de uso.Métodos de autenticación
Para BYOK consulta Custom providers.
Microsoft Entra ID
Para usar el inicio de sesión integrado de Microsoft Entra y la renovación de tokens, registra tu aplicación host en el cliente. Asigna aclientId el ID de aplicación (cliente) de tu registro de aplicación de Entra. Puedes pasar una instancia de EntraAuthConfig o un array. Los valores vacíos o que solo contienen espacios lanzan una InvalidArgumentException.
server.connect. Este registro es independiente de la RPC de servidor accounts.acquireEntraToken, que solicita un token explícitamente. Si configuras Entra y el runtime es demasiado antiguo para admitir connect, el SDK lanza This runtime does not support Entra client configuration. en lugar de descartar la configuración en silencio. En ese caso, actualiza el runtime. Los demás métodos de autenticación siguen funcionando.
Callbacks de red
Con la opciónnetwork puedes delegar la resolución de proxy y la autenticación Kerberos Negotiate del runtime a callbacks en el host. El runtime de Copilot que utilices debe admitir el RPC network.setProvider. Si no lo admite, el cliente lanza una excepción al iniciarse que te pide actualizar el runtime. Cada callback recibe el tipo de solicitud y un CancellationToken con el que puedes comprobar la cancelación.
resolveProxy devuelve una cadena de estilo PAC como PROXY proxy.example:8080; DIRECT, o DIRECT para una conexión directa. Devuelve null para que el runtime resuelva el proxy por sí mismo. authenticateNegotiate devuelve un token SPNEGO en base64 de un solo uso sin el prefijo Negotiate , o null cuando no hay credenciales disponibles. Si un callback lanza una excepción, el RPC falla y no se recurre a una conexión directa. Valida el SPN antes de emitir credenciales.
scope es connection por defecto, que solo cubre las solicitudes de las sesiones que este cliente creó o reanudó. runtime cubre también la comunicación compartida en segundo plano, pero solo una conexión a la vez puede tener este scope.
Login con GitHub (CLI)
Si has hecho login con el CLIcopilot o con gh, cuando no especificas nada se usan las credenciales guardadas.
OAuth GitHub App / PAT
Pasa agithub_token un user access token obtenido con OAuth o un fine-grained PAT.
- Se esperan tokens
gho_/ghu_/github_pat_ ghp_(Classic PAT) está desaconsejado
github_token, use_logged_in_user pasa automáticamente a false. Si quieres alternar explícitamente:
github_token y use_logged_in_user solo funcionan en modo stdio. En modo TCP, el CLI de Copilot debe estar ya autenticado por su cuenta.
Enmascarar secretos generados por el host
Si tu aplicación host obtiene tokens de forma dinámica, por ejemplo mediante MCP OAuth, regístralos en el filtro de redacción del CLI de Copilot. El CLI enmascara los valores registrados en los logs y las exportaciones de sesión.onMcpAuthRequest. Llámala explícitamente después de obtener un token. El SDK no persiste los valores ni los registra por separado para esta RPC.
Variables de entorno
Si pasas el token por variables de entorno, el CLI las detecta automáticamente. El orden de prioridad es de arriba a abajo:COPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKEN
Orden de prioridad de la autenticación
El SDK resuelve las credenciales en este orden:github_token(indicado explícitamente)- Token por variable de entorno (
COPILOT_GITHUB_TOKEN→GH_TOKEN→GITHUB_TOKEN) - Credenciales OAuth guardadas por el CLI
- Credenciales del CLI
gh
Desactivar el login automático
Si no quieres usar las credenciales guardadas, ponuse_logged_in_user a false.
Con false, solo se usa para autenticar el token que indicas explícitamente (github_token). Los tokens de variables de entorno (COPILOT_GITHUB_TOKEN, GH_TOKEN, GITHUB_TOKEN) se ignoran.
github_token, solo se admite en modo stdio. En TCP el CLI de Copilot debe estar ya autenticado.
Comprobar el estado de autenticación
Puedes consultar el resultado deauth.getStatus.
Seleccionar una cuenta para el inicio de sesión interactivo
EnumeraloginAccounts mediante la RPC de sesión para obtener las identidades guardadas que puedes reutilizar con un proveedor determinado. El label de cada elemento sirve para mostrarlo, y active indica si la identidad coincide con la cuenta activa de la sesión actual. accountId es un ID opaco que pertenece al proveedor. Pásalo tal cual a la solicitud de inicio de sesión, sin analizarlo ni modificarlo.
mode: 'default' para reutilizar una identidad guardada con el comportamiento normal del proveedor. Usa mode: 'selectAccount' para mostrar explícitamente el selector de cuentas del proveedor. En ese caso, no pases accountId. Las llamadas existentes como begin(LoginProviderKind::ENTRA) siguen funcionando.
Consulta la información más reciente en el repositorio de GitHub.