Saltar al contenido principal

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 a clientId 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.
También puedes pasar un array:
El SDK envía el client ID al runtime durante el handshake 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ón network 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 CLI copilot o con gh, cuando no especificas nada se usan las credenciales guardadas.

OAuth GitHub App / PAT

Pasa a github_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
Si indicas github_token, use_logged_in_user pasa automáticamente a false. Si quieres alternar explícitamente:
Consulta GitHub token para más detalle. 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.
Esta llamada es independiente de obtener y pasar tokens con 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:
  1. COPILOT_GITHUB_TOKEN
  2. GH_TOKEN
  3. GITHUB_TOKEN
En modo TCP configura las variables de entorno en el lado del servidor CLI.

Orden de prioridad de la autenticación

El SDK resuelve las credenciales en este orden:
  1. github_token (indicado explícitamente)
  2. Token por variable de entorno (COPILOT_GITHUB_TOKEN → GH_TOKEN → GITHUB_TOKEN)
  3. Credenciales OAuth guardadas por el CLI
  4. Credenciales del CLI gh

Desactivar el login automático

Si no quieres usar las credenciales guardadas, pon use_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.
Igual que con 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 de auth.getStatus.

Seleccionar una cuenta para el inicio de sesión interactivo

Enumera loginAccounts 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.
Usa 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.
Última modificación el 9 de noviembre de 2026