MSAL:AADB2C90146:请求中提供的“Openid 配置文件"为访问令牌指定了多个资源,这是不受支持的 [英] MSAL : AADB2C90146 : 'Openid profile' provided in request specifies more than one resource for an access token, which is not supported'
问题描述
尝试使用时
this.clientApplication.acquireTokenSilent(scopes)...
虽然我收到错误,但我有多个范围要传递:
I have multiple scopes I am passing in although I receive the error :
AADB2C90146:范围'https://xxx.onmicrosoft.com/xxx/user_impersonation https://xxx.onmicrosoft.com/xxx/user_impersonation openid profile' 在请求中提供为访问令牌指定了多个资源,这是不受支持的.
AADB2C90146 : The scope 'https://xxx.onmicrosoft.com/xxx/user_impersonation https://xxx.onmicrosoft.com/xxx/user_impersonation openid profile' provided in request specifies more than one resource for an access token, which is not supported.
如何使用 MSAL.js 库为多个范围静默获取新令牌?我最初可以使用
How am I able to silently get a new token using the MSAL.js library for multiple scopes? I was able to do so initially with the
this.clientApplication.loginRedirect(this.tenantConfig.b2cScopes);
这个时候可以吗?
谢谢,
推荐答案
访问令牌与资源相关联.如果您指定映射到多个资源的多个范围,则 MSAL 不知道要为哪一个获取访问令牌,因为存在一些歧义.
Access tokens are tied to a resource. If you specify multiple scopes that map to multiple resources, MSAL doesn't know which one to get an access token for since there's some ambiguity.
例如,
Scope A.0
、Scope A.1
属于Resource A
Scope B.0
属于Resource B
请求必须是:
//资源 A 的访问令牌acquireTokenSilent([Scope A.0, Scope A.1])
//资源 B 的访问令牌获取TokenSilent([Scope B.0])
这篇关于MSAL:AADB2C90146:请求中提供的“Openid 配置文件"为访问令牌指定了多个资源,这是不受支持的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!