Azure DevOps Services
重要
建议对与 Azure DevOps Services 集成的新应用程序使用 Microsoft Entra ID 身份验证。 它提供增强的安全性、企业标识集成和新式身份验证功能。
本文介绍 Microsoft Entra ID 身份验证的优点,并指导你在应用程序中实现它。
概述
Microsoft Entra ID 是Microsoft基于云的标识和访问管理平台,使组织能够:
- 管理用户标识并控制对资源的访问。
- 实施企业安全策略,例如多重身份验证和Microsoft Entra 条件访问。
- 与数千个应用程序(包括 Azure DevOps Services)集成。
- 跨Microsoft和非Microsoft服务提供单一登录。
许多 Azure DevOps 企业客户将其 Azure DevOps 组织连接到 Microsoft Entra ID ,以使用这些功能和 增强的安全功能。
注释
Microsoft Entra ID 以前称为 Azure Active Directory (Azure AD)。 在某些Microsoft产品和文档中,你仍可能会看到引用。
身份验证选项
Microsoft标识平台为 Azure DevOps 访问提供了两种主要身份验证模式。
用户委托 (OAuth)
最适合:为用户执行作的交互式应用程序
- 用户使用其Microsoft Entra ID 凭据登录。
- 应用程序接收委托的权限,以充当已登录用户。
- 支持多重身份验证和Microsoft Entra 条件访问策略。
- 非常适合 Web 应用程序、桌面应用和面向用户的工具。
入门: Microsoft Entra ID OAuth 实现
应用程序标识(服务主体和托管标识)
最适合:后台服务和自动化场景
- 应用程序使用自己的标识(而不是用户凭据)进行身份验证。
- 适用于持续集成和持续交付(CI/CD)管道、后台服务和自动化工具。
- 更安全的服务到服务通信。
- 支持服务主体和 Azure 托管标识。
入门: 服务主体和托管标识
Microsoft Entra ID 身份验证的优点
Microsoft Entra ID 身份验证比旧版 Azure DevOps 身份验证方法具有显著优势。
增强的安全性
- 短期令牌(一小时过期)可降低凭据泄露的风险。
- Microsoft Entra 条件访问策略可防止令牌被盗和未经授权的访问。
- 多重身份验证支持其他安全层。
- 高级威胁防护提供实时风险评估。
企业集成
- 跨Microsoft和非Microsoft应用程序的单一登录
- 用户和应用程序的集中式标识管理
- 组织级别的策略强制实施
- 治理要求的审核和合规性功能
开发人员体验
- 使用自动令牌刷新的新式身份验证库(Microsoft身份验证库)
- 跨所有Microsoft服务的一致标识平台
- 用于快速实现的丰富文档和示例
- 使用常规功能更新主动支持和开发
与旧方法的比较
| 功能 / 特点 | Microsoft Entra ID | 个人访问令牌 | Azure DevOps OAuth |
|---|---|---|---|
| 令牌生存期 | 一小时(自动引用) | 最多一年 | 可配置 |
| 多重身份验证 | ✅ 本机支持 | ❌ 不支持 | ❌ 不支持 |
| 条件性访问 | ✅ 完全支持 | ❌ 不支持 | ❌ 不支持 |
| 企业策略 | ✅ 强制执行 | ⚠️ 有限公司 | ⚠️ 有限公司 |
| 审核日志 | ✅ 综合 | ⚠️ 基本 | ⚠️ 基本 |
| 未来投资 | ✅ 活动开发 | ⚠️ 维护模式 | ❌ 荒废的 |
重要
令牌兼容性:Microsoft Entra ID 令牌和 Azure DevOps 令牌不可互换。 从 Azure DevOps OAuth 迁移到 Microsoft Entra ID OAuth 的应用程序需要用户重新授权。
从旧身份验证迁移
由于安全风险,组织越来越多地采用 限制个人访问令牌(PAT)创建的安全策略 。 Microsoft Entra ID 身份验证为常见 PAT 方案提供安全替代方法。
| PAT 场景 | Microsoft Entra 替代方案 |
|---|---|
| 使用 Git 凭据管理器进行身份验证 (GCM) | GCM 默认使用 PAT 进行身份验证。 将默认凭据类型设置为 oauth。 在 Git 凭据管理器(GCM)页上了解详细信息。 |
| 在生成或发布管道中进行身份验证 | 使用具有工作负载联合身份验证的服务连接。 |
| 对 Azure DevOps REST API 的即席请求 | 使用 Azure CLI 发出一次性Microsoft Entra 令牌。 |
小窍门
是否有 Azure DevOps PAT 方案,没有明确的Microsoft Entra 令牌替代方案? 在 开发人员社区中共享你的方案。