概览
- 在 Entra 批准期间,仅会请求
User.Read——这仅用于确认身份 - 仅完成 Entra 批准并不会授予对代码仓库或代码的访问权限
- 所有代码仓库访问权限都由你在 Azure DevOps 中分配的权限控制
前提条件
- 拥有管理集成权限的 Devin Enterprise 账户
- 一位可为应用授予管理员同意的 Microsoft Entra 管理员
- 一位可添加用户并分配权限的 Azure DevOps 组织管理员
设置集成
- 在 app.devin.ai 登录你的 Devin 账户。
- 在另一个浏览器或无痕窗口中登录 Azure DevOps (第 6 步需要用到) 。
- 在你的 Devin Enterprise 账户中,前往 设置 > 企业设置 > 集成,然后选择 Azure DevOps。
- 打开 连接 按钮的下拉菜单,然后选择 使用服务主体连接。

-
你会被重定向到 Microsoft,向 Devin 授予访问你的租户的权限。批准后,你会返回 Devin 中的 Azure DevOps 集成页面,此时页面会显示 使用服务主体添加组织 部分。
- 批准后会在你的 Microsoft Entra 租户中创建一个服务主体
- 此步骤仅请求
User.Read,不会授予对代码仓库的访问权限
-
在 Azure DevOps 中,前往 组织设置 > 用户:
- 点击 添加用户,并添加该服务主体 (
Cognition Azure DevOps Service Principal) - 访问级别选择 Basic (Stakeholder 不够,API 需要 Basic)
- 将其添加到你希望 Devin 访问的所有项目中
- 将该服务主体分配到相关的 Azure DevOps 组 中 (通常为 Project Contributors)
- 点击 添加用户,并添加该服务主体 (
- 返回 Devin,在 Azure DevOps 集成页面的 使用服务主体添加组织 部分中,输入上一步中的 Azure DevOps 组织名称,然后点击 添加。
- 在 Devin 中,在你的 Azure DevOps 集成里选择 Git Permissions,选择一个子组织,并在组级别或代码仓库级别授予权限。

- 对于每个已授予权限的组织,前往 Devin 的设置 > Devin’s Machine,点击 + Repository,并接入这些代码仓库。
Devin 可访问的内容
| 能力 | 说明 |
|---|---|
| 列出代码仓库 | 查看可用代码仓库及其元数据 |
| 读取分支 | 访问分支信息和提交历史 |
| 创建拉取请求 | 为代码修改发起新的 PR |
| 查看拉取请求 | 访问 PR 事件、评论和状态 |
| 推送代码 | 将新分支和提交推送到代码仓库 |
如果你的组织今后需要 Devin 支持更多 Azure DevOps 领域,请联系 enterprise@cognition.ai 与我们讨论你的需求。
安全注意事项
- 最小 Entra 权限 — 仅请求
User.Read。不要求对整个目录的读取权限、查看组成员关系的权限或管理控制权限。 - 显式授权 — 仅获得 Entra 批准并不会授予任何 Azure DevOps 访问权限。所有代码仓库访问权限都必须由你的 Azure DevOps Admin 显式分配。
- 加密凭据 — 所有令牌都会加密并安全存储。
- 范围限定访问 — 可通过 Devin 的 Enterprise UI 将权限限制在特定项目、代码仓库和操作范围内。
- 可审计性 — 活动会记录在 Entra 登录日志和 Azure DevOps 审计日志中。
- 遵循分支策略 — Devin 的 PR 需遵循与其他任何贡献者相同的分支策略和评审要求。
最佳实践
- 使用代码仓库级权限 — 仅向 Devin 授予其所需的特定代码仓库和项目访问权限,而非整个组织范围的访问权限。
- 启用分支策略 — 在 Azure DevOps 中设置分支策略,确保所有更改在合并前都经过适当的审查。
- 监控审计日志 — 定期查看 Azure DevOps 审计日志和 Entra 登录日志,监控服务主体的活动。
故障排查
- 验证执行批准的用户是否有权在你的 Entra 租户中为应用授予管理员同意
- 如果你的租户限制应用同意,可能需要由全局管理员或云应用程序管理员来授予同意
- 在 Entra 门户的 Enterprise Applications 下验证管理员同意是否已成功完成 (查找
Cognition Azure DevOps Service Principal) - 确保该服务主体已在 Organization Settings > Users 下明确添加到你的 Azure DevOps 组织中
- 如果服务主体受强制执行 MFA 的 Conditional Access 策略约束,令牌刷新会静默失败。请为该服务主体添加针对 Devin 应用的 Conditional Access 排除项。
- 验证该服务主体是否已在 Organization Settings > Users 下添加到 Azure DevOps 组织中
- 确认访问级别设置为 Basic (Stakeholder 不足以进行 API 访问)
- 检查是否已在 Devin 的企业设置中授予代码仓库权限
- 确保这些代码仓库已添加到 Devin’s Machine
- 确认该服务主体在目标代码仓库上具有 Contributor 权限
- 检查分支策略是否阻止创建 PR
- 验证目标分支存在且可访问
