Esta documentación corresponde a los despliegues federales de Devin. Volver a la documentación de Devin
Crear el archivo de autenticación
El archivo selecciona un único modo. Si el archivo no existe, el producto se comporta como si contuviera
"mode": "license".
/etc/devin/auth.json
Los campos desconocidos se rechazan. En el modo
license solo se permiten schema_version y mode.
Registra el cliente en tu IdP
La CLI ejecuta el flujo de código de autorización de OIDC con PKCE (S256) como cliente público, por lo que no hay secreto de cliente. El cliente que registres debe cumplir estos requisitos:- Debe ser un cliente público (sin secreto de cliente) con el ID que indiques en
client_id, por ejemplodevin-cli, con la concesión de código de autorización habilitada y el método PKCES256. http://127.0.0.1/callbackdebe estar registrado como URI de redirección válido. La CLI escucha en un puerto de loopback aleatorio (http://127.0.0.1:<port>/callback) para el flujo del navegador y usa la dirección fijahttp://127.0.0.1/callbackpara el flujo manual. Según el RFC 8252, el IdP debería ignorar el puerto de loopback; si el tuyo no lo hace, registra un comodín que coincida.- Si quieres usar
required_group, el token de ID debe incluir el claim de pertenencia a grupo indicado engroups_claim(groupsde forma predeterminada). - El IdP debe devolver un token de ID al actualizarse (la mayoría lo hace cuando se concede el ámbito
openid), y la vida útil del token de ID para este cliente debe ser corta. Consulta Cómo se propaga la revocación para saber por qué.
Iniciar sesión
Inicia sesión desde una terminal en la estación de trabajo:127.0.0.1 que no llegará a cargarse. Copia esa URL completa (incluidos sus parámetros de consulta) y pégala en la terminal.
Comprobar el estado y cerrar sesión
Status: not logged in (<reason>), seguida de Run \devin auth login` to sign in.`
Qué valida la CLI
El token de ID se valida localmente: la firma con el JWKS del IdP,iss, aud, la expiración (con una tolerancia de desfase de reloj de 120 segundos), el nonce del inicio de sesión y el control de pertenencia a grupos. Los tokens de ID y de actualización se guardan en caché en el almacén local de credenciales con permisos exclusivos para el propietario (0600) y se renuevan automáticamente con el IdP, sin intervención del usuario.
Si SSO está configurado y no hay un inicio de sesión válido (y la renovación automática falla), la CLI se cierra al iniciarse y muestra un error que indica al usuario que ejecute devin auth login.
La CLI nunca sigue redirecciones HTTP del IdP: si el endpoint de descubrimiento, de JWKS o de tokens devuelve un 3xx, el inicio de sesión falla con un error que indica qué endpoint lo provocó, por lo que issuer debe apuntar a las URL que el IdP expone realmente.
Los endpoints descubiertos deben estar en el mismo emisor
Los valoresauthorization_endpoint, token_endpoint y jwks_uri obtenidos mediante el descubrimiento deben tener el mismo esquema, host y puerto que issuer (los puertos predeterminados se consideran equivalentes). Cualquier endpoint alojado en otro host se rechaza, y el inicio de sesión falla con un error similar a este:
hostname-backchannel-dynamic=true, donde token_endpoint y jwks_uri se reescriben con el nombre de host interno a través del cual se conectó la CLI. Si, y solo si, has comprobado en la propia configuración del IdP que el host adicional es intencionado, agrégalo:
host (cualquier puerto) o host:port, y se comparan sin distinguir entre mayúsculas y minúsculas. No se admiten comodines ni hay forma de desactivar la comprobación. La lista de permitidos nunca flexibiliza TLS: un endpoint http:// se sigue rechazando con un emisor https://. No agregues un host solo porque aparezca en un error de inicio de sesión; ese error significa que la comprobación está funcionando.
Cómo se propaga la revocación
El control de pertenencia a grupos se evalúa sobre el token de ID almacenado en caché, por lo que quitar a un usuario derequired_group (o deshabilitarlo) en el IdP surte efecto en la siguiente actualización de su token: como máximo, cuando caduque el token de ID actual, más los 120 segundos de tolerancia de desfase de reloj. Si necesitas que la revocación sea rápida, configura una vida útil corta del token de ID para este cliente.
Si una respuesta de actualización no incluye un nuevo token de ID, se sigue usando el token de ID almacenado en caché, pero solo hasta 24 horas después del exp de ese token. Pasado ese plazo, el usuario debe volver a iniciar sesión aunque el IdP siga aceptando el token de actualización.
Revalidación en sesiones en ejecución
Mientras Devin Desktop (o cualquier cliente del agente integrado) está en ejecución, el agente vuelve a comprobar el inicio de sesión cada 60 segundos y fuerza una actualización del token con el IdP al menos cada 15 minutos. Si una comprobación falla, el agente registra un evento de auditoríasso_revalidation_failed con el código IDP, deja de aceptar trabajo nuevo y se cierra; el usuario debe volver a iniciar sesión y reiniciarlo.
Qué se audita
La actividad de SSO se escribe en el registro de auditoría local como eventosauth. Todo evento que disponga de un token validado incluye la identidad SSO en actor (sso_issuer, sso_subject, sso_user, sso_groups).
Códigos de error de IDP
Puede consultar el catálogo completo en la página Códigos de error.

