使用 Microsoft Entra ID 向 Azure DevOps 进行身份验证

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 令牌替代方案? 在 开发人员社区中共享你的方案。