You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Entra ID OAuth在Azure DevOps的工作原理及无权限API调用疑问

Microsoft Entra ID OAuth 在 Azure DevOps 中的工作原理

Entra ID OAuth 在 Azure DevOps 中的验证流程可以拆成以下几步:

  • 身份请求发起:你的应用(比如创建的Azure App)向Entra ID授权端点发送请求,携带客户端ID、重定向URI、请求的权限范围等核心信息。
  • 身份验证与授权确认:Entra ID先验证应用/用户的身份合法性,若涉及用户交互场景,还会引导用户确认是否授予权限,完成后返回一个授权码。
  • 获取访问令牌:应用拿着授权码向Entra ID的令牌端点请求访问令牌,Entra ID验证授权码有效后,返回JWT格式的令牌,其中包含身份信息、权限范围等关键数据。
  • 调用Azure DevOps API:调用API时,在HTTP请求头中携带Authorization: Bearer <访问令牌>。Azure DevOps收到请求后,先验证令牌的签名、过期时间等有效性,再根据令牌中的身份信息,匹配对应的Azure DevOps权限,判断是否允许执行操作。
未配置Azure DevOps权限仍能调用API的原因

Azure DevOps的权限体系存在两个独立维度:

  1. Entra ID应用权限:即你在App注册中添加的Azure DevOps相关权限,属于跨服务的权限委托机制,用于让应用以Entra ID授予的权限访问Azure DevOps。
  2. Azure DevOps本地权限分配:Azure DevOps自身拥有一套独立的组和用户权限体系,可直接给Entra ID中的用户/应用分配本地权限。

你将Azure App加入了Azure DevOps的Project Collection Administrators组,该组拥有组织级最高权限,完全具备创建项目的权限。此时Azure DevOps会优先使用自身的本地权限配置来判断操作权限——只要你的应用通过Entra ID OAuth完成身份验证,证明自己是该组成员,就允许执行对应的API操作,无需依赖Entra ID中配置的Azure DevOps应用权限。

内容的提问来源于stack exchange,提问作者noonenine

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:07:43