gpt4 book ai didi

azure - 如何使用 Azure DevOps 的 MSAL.js 获取有效的 AAD v2 token

转载 作者:行者123 更新时间:2023-12-04 14:50:31 25 4
gpt4 key购买 nike

ADAL.js 和 AAD v1 可使用委托(delegate)的 user_impersonation 范围访问 Azure DevOps。

我使用具有委派权限的相同 AAD 应用程序 ID 来使用 MSAL.js 生成访问 token 。 token 已成功创建,但访问 token 无法访问 Azure DevOps。

解码后的 JWT token 中唯一有意义的区别是“aud”声明不同。

在 ADAL/v1 中,aud 是 Azure DevOps 的应用程序 ID:

"aud": "499b84ac-1321-427f-aa17-267ca6975798"

在 MSAL/v1 中,aud 是 Azure DevOps 的唯一 URI:

"aud": "https://app.vssps.visualstudio.com"

是否有人能够通过 user_impersonation 委派权限使用 MSAL.js 来访问 Azure DevOps Rest API?如果是这样,是否缺少某些东西才能使 MSAL 正常工作?

他们的 JWT 验证是否有可能尚未考虑到第二个受众值(value)?

最佳答案

看起来 Azure DevOps 是一个 v1.0 应用程序,因此我试图让它与 Azure 门户在设置委派权限时建议的错误 v2.0 范围一起工作:

scopes: ['https://app.vssps.visualstudio.com/user_impersonation']

但是,根据这个doc ,与 v1.0 应用程序通信时,作用域应使用资源 Id 作为前缀。以下是 Azure DevOps 资源 ID 的工作范围:

scopes: ['499b84ac-1321-427f-aa17-267ca6975798/user_impersonation']

这解决了 aud 字段的问题,以便我再次获得包含 499b84ac-1321-427f-aa17-267ca6975798 的 JWT aud 声明。

希望这可以帮助其他人在这个问题上被屏蔽。

关于azure - 如何使用 Azure DevOps 的 MSAL.js 获取有效的 AAD v2 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53788182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com