选择正确的身份验证机制
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 |
个人访问令牌 (PAT) | 用于访问你自己的资源的持有者令牌 | 使用 PAT 代替密码。 | 拍 | |
非交互式客户端 | 仅无外设文本客户端应用程序 | 显示分配给用户的所有 bug 的控制台应用 | 设备配置文件 | sample |
面向 Azure DevOps 的交互式客户端应用 | 允许用户交互的客户端应用程序对 Azure DevOps 用户进行身份验证 | 允许 Azure DevOps 用户查看分配的 bug 的控制台应用程序 | 客户端库 (交互式和Windows 身份验证) | sample |
交互式 Web | 需要用户同意的基于 GUI 的 Web 应用程序 | 显示生成摘要的自定义 Web 仪表板 | Azure DevOps OAuth | sample |
服务主体或托管标识 | 有权访问组织的 Azure DevOps 资源的应用程序 | 用于创建工作项的 Azure 函数 | 服务主体和托管标识 | sample |
Azure DevOps Server应用程序 | 使用客户端 OM 库Azure DevOps Server应用 | 显示团队 bug 仪表板的Azure DevOps Server扩展 | 客户端库 | sample |
Azure DevOps Services 扩展 | Azure DevOps Services 扩展 | 敏捷卡片 | VSS Web 扩展 SDK | sample |
有关 Azure DevOps 中的安全和标识概念的入门,请参阅 关于安全和标识。 若要详细了解如何存储凭据,请参阅 Azure DevOps 的凭据存储。
启用 IIS 基本身份验证会使使用 PAC 进行Azure DevOps Server
有关详细信息,请参阅 将 IIS 基本身份验证与本地 Azure DevOps 配合使用。
常见问题 (FAQ)
问:为什么我的某个服务帐户无法访问 Azure DevOps REST API?
答:服务帐户可能没有“具体化”。由于无法使用没有交互式登录权限的服务帐户登录,因此检查此解决方法。
问:我正在制作一个交互式客户端应用程序。 我应该使用Azure DevOps Services客户端库还是Azure DevOps Services REST API?
答:在访问Azure DevOps Services资源时,建议使用Azure DevOps Services客户端库,而不要使用 REST API。 当 REST 终结点的版本发生更改时,它们更简单且更易于维护。 如果客户端库中缺少功能, MSAL 是用于 REST API 的最佳身份验证机制。
问:本指南是仅适用于Azure DevOps Services还是与本地Azure DevOps Server用户相关?
答:本指南主要面向Azure DevOps Services用户。 客户端库是专为扩展Azure DevOps Server功能而生成的一系列包。 对于本地用户,建议使用 客户端库、Windows 身份验证或 个人访问令牌 (PAC) 为用户进行身份验证。
问:如果希望应用程序同时使用 Azure DevOps Server 和 Azure DevOps Services 进行身份验证,该怎么办?
答:最佳做法是为Azure DevOps Server和Azure DevOps Services使用不同的身份验证路径。 可以使用 requestContext 找出要命中哪些内容,然后针对每个使用最佳机制。 相反,如果需要统一的解决方案, 则 PAT 适用于这两者。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈