使用 Microsoft Entra OAuth 应用构建 Azure DevOps

重要

创建新的 OAuth 2.0 应用时,请从 Microsoft Entra OAuth 应用开始,因为 计划于 2026 年弃用 Azure DevOps OAuth 应用在我们的博客文章中了解详细信息。

Microsoft Entra ID OAuth

Microsoft Entra ID 是具有其自己的平台的独立Microsoft产品。 在 Microsoft Entra 上,可以注册应用程序以访问 Azure 租户并定义 Azure 资源所需的权限,其中 Azure DevOps 被视为其中一个。

Microsoft Entra 应用和 Azure DevOps 应用是单独的实体,彼此不知道。 对应用程序进行身份验证的方法不同于 Microsoft Entra OAuth 到 Azure DevOps OAuth。 首先, Microsoft Entra ID OAuth 应用 Microsoft Entra 令牌颁发,而不是 Azure DevOps 访问令牌。 这些令牌在过期前具有标准的一小时持续时间。

建议全面阅读 Microsoft Entra 文档,以全面了解通过 Microsoft Entra 提供的新功能,以及 设置过程中你的不同期望

为什么选择Microsoft Entra?

作为领先的标识和访问管理(IAM)提供商, Microsoft Entra ID 侧重于需要管理团队成员和保护公司资源的公司的需求。 Microsoft Entra ID 提供了许多功能 - 应用程序开发和管理是其中之一。 Microsoft Entra 应用程序模型在 Azure DevOps OAuth 应用模型中提供了一些优势,使它们更吸引应用开发人员。

1. Microsoft内外更广泛的接触

通过在 Microsoft Entra 上构建应用,可以在Microsoft生态系统的其余部分获得更广泛的影响力。 一个Microsoft Entra 应用可用于访问多个Microsoft产品,从而使应用凭据管理更加简单。 提供 SaaS 产品的 Teams 可能会考虑创建预集成的应用程序,该应用程序与其他热门应用 一起显示在 Microsoft Entra 应用库中

2.提高管理员可见性、同意和管理

受信任的租户管理员可以管理 哪些应用访问公司资源、组织中的谁可以使用该应用以及如何获取同意。 Azure DevOps OAuth 不知道租户或其管理员的知识,只依赖用户来授权访问潜在敏感数据。 以前授权访问长期遗忘的应用的用户会打开大门,以便以后可能会渗透。 管理员监督提供了一组额外的眼睛,其中包含适当的评审过程,并有助于清理未使用或未经授权的应用。

3. 更严格的条件访问控制

通过条件访问策略 ,可以轻松设置用户可通过Microsoft Entra 应用访问组织的相应访问控制。 Azure DevOps OAuth 应用位于 Microsoft Entra 生态系统之外,不遵循所有条件访问策略。

4. 自助应用配置

与 Azure DevOps OAuth 应用相比,更改Microsoft Entra 应用的应用范围和应用所有权是相对轻而易举的。 应用开发人员与我们的客户支持团队联系,在 Azure DevOps OAuth 应用上进行更改,但在Microsoft Entra 中,更改范围的功能将返回到开发人员。 应用所有权甚至可以在多个用户之间共享,并且不限于单个用户,如果说用户将来离开公司,可能会造成问题。

5.可用的登录日志

Microsoft Entra 将所有“登录”记录到 Azure 租户中,其中包括内部应用和资源。 此附加信息可以更深入地了解谁正在使用未通过审核提供的应用。

有用资源

在新的平台上构建可能是压倒性的。 我们提供一些有用的链接,我们认为对于 Microsoft Entra 上的 OAuth 应用开发过程可能很有用。 对于从 Azure DevOps OAuth 切换到 Microsoft Entra OAuth 的开发人员,我们在迁移过程中提供了有用的提示。

适用于开发人员的良好资源

适合管理员的资源

生成和迁移提示

注意

Microsoft Entra OAuth 应用本身不支持 Azure DevOps REST API 的 MSA 用户。 如果要构建一个必须迎合 MSA 用户或同时支持 Microsoft Entra 和 MSA 用户的应用, Azure DevOps OAuth 应用 仍然是最佳选择。 我们目前正在通过 Microsoft Entra OAuth 为 MSA 用户提供本机支持。

  • 众所周知的 Azure DevOps ID:
    • Microsoft Entra 资源标识符: 499b84ac-1321-427f-aa17-267ca6975798
    • 资源 URI: https://app.vssps.visualstudio.com
    • .default请求具有应用权限的所有范围的令牌时,请使用范围。
  • 迁移现有应用时,可以使用 Microsoft Entra 中不存在的 Azure DevOps 用户标识符。 使用 ReadIdentities API 解析和匹配每个标识提供者使用的不同标识。

Microsoft Entra 上的仅限应用流

Microsoft Entra OAuth 是用于生成应用以代表同意用户访问 Azure DevOps 服务的建议解决方案。

如果要生成应用程序来代表自己执行操作,请查看我们的服务主体支持文档。 在这些文档中,我们详细介绍了如何设置不依赖于用户权限来对组织资源执行操作的服务主体或托管标识,而只依赖于自己的权限。 建议使用此身份验证机制为团队构建自动化工具。