ADAL.js 和 AAD v1 可以使用委派的 user_impersonation 范围访问 Azure DevOps。
我使用具有委托权限的相同 AAD 应用程序 ID 来使用 MSAL.js 生成访问令牌。令牌已成功创建,但访问令牌无法访问 Azure DevOps。
解码后的 JWT 令牌中唯一有意义的区别是“aud”声明不同。
在 ADAL/v1 中,aud 是 Azure DevOps 的应用程序 ID:
"aud": "499b84ac-1321-427f-aa17-267ca6975798"
Run Code Online (Sandbox Code Playgroud)
在 MSAL/v1 中,aud 是 Azure DevOps 的唯一 uri:
"aud": "https://app.vssps.visualstudio.com"
Run Code Online (Sandbox Code Playgroud)
有没有人能够使用具有 user_impersonation 委派权限的 MSAL.js 来访问 Azure DevOps rest API?如果是这样,是否缺少让 MSAL 工作的东西?
他们的 JWT 验证是否可能还没有考虑到第二个受众价值?
azure jwt azure-active-directory azure-ad-msal azure-devops-rest-api