tou*_*ili 5 azure-active-directory azure-ad-b2c
我的 b2c 上有 2 个 web api(A 和 B)。他们每个人分别发布自己的权限(scopeA1,scopeA2)和(scopeB1,scopeB2)。
在我的 Web 应用程序(已经配置并授予了对 api 和 4 个范围的访问权限)上,为了在身份验证期间获取两个 api 的授权代码,我尝试将我的 OpenIdConnectAuthenticationOptionsin 范围属性设置为包括 4 个范围。我收到错误 AADB2C90146:请求中提供的范围“scopeA1 scopeA2 scopeB1 scopeB2 openid offline_access”为访问令牌指定了多个资源,但不受支持。
如果我只为 web api A 或 B 指定范围,那么它会按照这个链接工作
如何让我的 Web 应用程序使用这两个 Web api,即使已授予两者的权限
感谢帮助
如果这两个 Web API 是 Azure AD 中的单独应用程序,则需要分别为它们请求访问令牌。
我不熟悉您用作起点的示例,但看起来这些行是您需要进行更改的地方:
// 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;
Run Code Online (Sandbox Code Playgroud)
您应该app为每个 API 创建一个实例,并为每个 API 获取一个令牌。然后,当您在其他地方调用 API 时,请在 Bearer 身份验证标头中使用正确的访问令牌。
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |