选择正确的身份验证机制
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
对于与 Azure DevOps Services 交互的应用程序,必须进行身份验证才能访问 REST API 等资源。 本文提供了指导,可帮助你为应用程序选择正确的身份验证机制。
下表概述了针对不同应用程序类型的建议身份验证机制。 请参阅随附的说明、示例和代码示例,帮助你入门。
应用程序类型 | 说明 | 示例 | 身份验证机制 | 代码示例 |
---|---|---|---|---|
交互式客户端应用 (REST) | 允许用户交互调用 Azure DevOps Services REST API 的客户端应用程序 | 枚举组织中的项目的控制台应用程序 | Microsoft 身份验证库 (MSAL) | sample |
交互式客户端应用(客户端库) | 允许用户交互调用 Azure DevOps Services 客户端库的客户端应用程序 | 枚举分配给当前用户的 bug 的控制台应用程序 | 客户端库 | sample |
交互式 JavaScript 应用 | 基于 GUI 的 JavaScript 应用程序 | 显示用户项目信息的 AngularJS 单页应用 | Microsoft Authentication Library for JavaScript (MSAL JS) | sample |
交互式 OAuth Web 应用 | 需要用户同意的基于 GUI 的 Web 应用程序 | 显示生成摘要的自定义 Web 仪表板 | OAuth | sample |
非交互式客户端应用 | 仅无外设文本客户端应用程序 | 显示分配给用户的所有 bug 的控制台应用 | 设备配置文件 | sample |
个人访问令牌 (PAT) | 用于访问你自己的资源的持有者令牌 | 使用 PAT 代替 REST 请求的密码。 不适合生成应用程序。 | 拍 | docs |
服务器应用 | 使用客户端 OM 库Azure DevOps Server应用 | 显示团队 bug 仪表板的Azure DevOps Server扩展 | 客户端库 | sample |
服务主体应用 | 有权访问组织的 Azure DevOps 资源的应用程序 | 用于创建工作项的 Azure 函数 | 服务主体和托管标识 | sample |
Web 扩展 | Azure DevOps Services 扩展 | 敏捷卡 扩展 | VSS Web 扩展 SDK | sample |
有关详细信息,请参阅以下文章:
启用 IIS 基本身份验证会使使用 PAC 进行Azure DevOps Server
有关详细信息,请参阅 将 IIS 基本身份验证与本地 Azure DevOps 配合使用。
常见问题 (FAQ)
问:为什么我的服务帐户无法访问 Azure DevOps REST API?
答:服务帐户可能没有“具体化”。没有交互式登录权限的服务帐户无法登录。 有关详细信息,请参阅 此解决方案的解决方法 。
问:我应该对交互式客户端应用程序使用 Azure DevOps Services 客户端库 或 Azure DevOps Services REST API 吗?
答:建议通过 REST API 使用 Azure DevOps Services 客户端库来访问 Azure DevOps Services 资源。 当 REST 终结点版本发生更改时,它们更易于维护。 如果客户端库缺少某些功能,请使用 MSAL 通过 REST API 进行身份验证。
问:本指南是仅适用于Azure DevOps Services还是与本地Azure DevOps Server用户相关?
答:本指南主要面向 Azure DevOps Services 用户。 对于 Azure Devops Server 用户,我们建议使用 客户端库、Windows 身份验证或 个人访问令牌(PAT) 进行身份验证。
问:如果希望应用程序同时使用 Azure DevOps Server 和 Azure DevOps Services 进行身份验证,该怎么办?
答:最佳做法是为 Azure DevOps Server 和 Azure DevOps Services 提供单独的身份验证路径。 可以使用它 requestContext
来确定要访问的服务,然后应用相应的身份验证机制。 如果你更喜欢统一的解决方案, 则 PAT 适用于这两者。