gpt4 book ai didi

azure-active-directory - 多个 Web api 的范围

转载 作者:行者123 更新时间:2023-12-04 08:40:35 26 4
gpt4 key购买 nike

我的 b2c 上有 2 个 web api(A 和 B)。他们每个人分别发布自己的权限(scopeA1,scopeA2)和(scopeB1,scopeB2)。

在我的 Web 应用程序(已经配置并授予了对 api 和 4 个范围的访问权限)上,为了在身份验证期间获取两个 api 的授权代码,我尝试将我的 OpenIdConnectAuthenticationOptionsin 范围属性设置为包括 4 个范围。
我收到错误 AADB2C90146:请求中提供的范围“scopeA1 scopeA2 scopeB1 scopeB2 openid offline_access”为访问 token 指定了多个资源,但不受支持。

如果我只为 web api A 或 B 指定范围,那么它按照 this link 工作

如何让我的 Web 应用程序使用这两个 Web api,即使已授予两者的权限

感谢帮助

最佳答案

如果这两个 Web API 是 Azure AD 中的单独应用程序,则需要为它们单独请求访问 token 。

我不熟悉您用作起点的示例,但看起来这些行是您需要进行更改的地方:

// Retrieve the token using the provided scopes
ConfidentialClientApplication app = new ConfidentialClientApplication(authority, Startup.ClientId,
Startup.RedirectUri, credential,
new NaiveSessionCache(userObjectID, this.HttpContext));
AuthenticationResult result = await app.AcquireTokenSilentAsync(scope);

accessToken = result.Token;

您应该创建一个 app每个 API 的实例,并为每个 API 获取一个 token 。然后,当您在其他地方调用 API 时,请在 Bearer 身份验证 header 中使用正确的访问 token 。

关于azure-active-directory - 多个 Web api 的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43894892/

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