本文档适用于 Devin 的联邦部署。返回 Devin 文档
创建认证文件
该文件只能指定一种模式。如果该文件不存在,产品将按文件中包含
"mode": "license" 的情况运行。
/etc/devin/auth.json
未知字段会被拒绝。在
license 模式下,仅允许使用 schema_version 和 mode。
在您的 IdP 中注册客户端
CLI 以公开客户端身份运行 OIDC 带 PKCE (S256) 的授权码流程,不使用客户端密钥。您注册的客户端必须满足以下要求:- 是一个公开客户端 (无客户端密钥) ,其 ID 与您在
client_id中填写的值一致 (例如devin-cli) ,已启用授权码授权类型,且 PKCE 方法为S256。 - 已将
http://127.0.0.1/callback注册为有效的重定向 URI。在浏览器流程中,CLI 会在随机的回环端口 (http://127.0.0.1:<port>/callback) 上监听;在手动流程中,则使用固定的http://127.0.0.1/callback。根据 RFC 8252,IdP 应忽略回环端口;如果您的 IdP 不忽略端口,请注册一个匹配的通配符地址。 - 如果要使用
required_group,ID 令牌必须包含groups_claim中指定的组成员资格认领 (默认为groups) 。 - IdP 在刷新时会返回 ID 令牌 (授予
openid作用域后,大多数 IdP 都会返回) ,且该客户端的 ID 令牌有效期较短。原因请参阅撤销如何传播。
登录
在工作站的终端中登录:127.0.0.1 URL。复制这个完整的 URL (包括其中的查询参数) ,再粘贴回终端即可。
检查状态并退出登录
Status: not logged in (<reason>),后跟 Run \devin auth login` to sign in.`
CLI 会校验哪些内容
ID 令牌在本地进行校验:基于 IdP 的 JWKS 验证签名,并校验iss、aud、过期时间 (允许 120 秒的时钟偏差) 、登录时的 nonce 以及组访问控制。ID 令牌和 refresh token 缓存在本地凭据存储中,文件权限为仅所有者可访问 (0600) ,并会在后台向 IdP 静默刷新。
如果已配置 SSO (单点登录) ,但没有有效的登录状态 (且静默刷新失败) ,CLI 会在启动时报错退出,提示用户运行 devin auth login。
CLI 不会跟随 IdP 返回的任何 HTTP 重定向:如果自动发现端点、JWKS 端点或令牌端点返回 3xx,登录即会失败,错误信息中会指明出错的端点。因此,issuer 必须指向 IdP 实际提供服务的 URL。
自动发现的端点必须与签发方位于同一来源
通过自动发现获取的authorization_endpoint、token_endpoint 和 jwks_uri 必须与 issuer 具有相同的协议、主机和端口 (默认端口视为相同) 。如果端点位于其他主机上,将被拒绝,登录也会失败,并显示类似以下的错误:
hostname-backchannel-dynamic=true 的 Keycloak,此时 token_endpoint 和 jwks_uri 会被重写为 CLI 连接时所用的内部主机名。只有在你已对照 IdP 自身的配置确认该额外主机确属有意设置时,才可以添加它:
host (任意端口) 或 host:port,匹配时不区分大小写。不支持通配符,也无法禁用此检查。允许列表绝不会放宽 TLS 要求:签发方为 https:// 时,http:// 端点仍会被拒绝。不要仅因登录错误中提到了某个主机就将其添加到允许列表;出现该错误恰恰说明检查在正常工作。
撤销如何生效
组访问控制基于缓存的 ID 令牌进行校验,因此在 IdP 中将用户从required_group 中移除 (或禁用该用户) 后,变更会在该用户下一次刷新令牌时生效:最迟在当前 ID 令牌过期时生效,外加 120 秒的时钟偏差容限。如果需要快速撤销,请为此客户端设置较短的 ID 令牌有效期。
如果刷新响应中未返回新的 ID 令牌,系统会继续使用缓存的 ID 令牌,但最长只能沿用至该令牌 exp 之后 24 小时;超过此时限后,即使 IdP 仍接受该 refresh token,用户也必须重新登录。
运行中会话的重新验证
Devin Desktop (或内置智能体的任何客户端) 运行期间,智能体每 60 秒重新检查一次登录状态,并至少每 15 分钟向 IdP 强制刷新一次令牌。如果检查失败,智能体会记录一条 code 为IDP 的 sso_revalidation_failed 审计事件,随即停止接受新任务并关闭;用户必须重新登录并重启。
审计内容
SSO (单点登录) 活动会以auth 事件的形式写入本地审计日志。凡是在发生时持有已验证令牌的事件,都会在 actor 字段中记录 SSO 身份信息 (sso_issuer、sso_subject、sso_user、sso_groups) 。
IDP 错误代码
完整的错误代码目录请参阅错误代码页面。

