MSAL:AADB2C90146:' Openid个人资料'在请求中提供的访问令牌指定了多个资源,这是不受支持的。

时间:2018-03-19 12:09:41

标签: azure-active-directory msal

尝试使用时

this.clientApplication.acquireTokenSilent(scopes)...

虽然收到错误,但我传入了多个范围:

  

AADB2C90146:范围' https://xxx.onmicrosoft.com/xxx/user_impersonation https://xxx.onmicrosoft.com/xxx/user_impersonation openid个人资料'在请求中提供,为访问令牌指定了多个资源,但不支持。

如何使用MSAL.js库为多个范围静默获取新令牌?我最初用

这样做了
 this.clientApplication.loginRedirect(this.tenantConfig.b2cScopes);

此时这可能吗?

谢谢,

1 个答案:

答案 0 :(得分:3)

访问令牌与资源相关联。如果您指定多个范围映射到多个资源,则MSAL不知道哪个范围可以获取访问令牌,因为存在一些歧义。

例如,

Scope A.0Scope A.1属于Resource A

Scope B.0属于Resource B

请求必须是:

// Access tokens for Resource A acquireTokenSilent([Scope A.0, Scope A.1])

// Access tokens for Resource B acquireTokenSilent([Scope B.0])