You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MSAL.js调用acquireTokenSilent时个人微软账号触发AADSTS70011错误求助

问题

我注册了支持「任何组织目录账号及个人微软账号」的应用,使用msal.js调用loginPopup可成功登录个人账号,但调用acquireTokenSilent时触发AADSTS70011错误,提示scope无效。该问题仅出现在个人账号,组织账号可正常运行。

相关代码

this.$msalInstance
        .loginPopup({scopes: ['user.read']})
        .then(() => {
          const myAccounts = this.$msalInstance.getAllAccounts();
          this.account = myAccounts[0];
          const accessTokenRequest = {
            scopes: [`${this.msalConfig.auth.clientId}/.default`],
            account: this.account
          };
          this.$msalInstance
            .acquireTokenSilent(accessTokenRequest)
            .then(function(accessTokenResponse) {
              // Acquire token silent success
              let accessToken = accessTokenResponse.accessToken;
            })

配置信息

msalConfig: {
  auth: {
    clientId: "1236664d-751d-4a0a-9a3d-13c332cb7e9b",
    authority: "https://login.microsoftonline.com/common",
    redirectUri: "http://localhost:8080/app/login", 
    postLogoutRedirectUri: "/" 
  },
  cache: {
    cacheLocation: "localStorage"
  }
}

错误信息

AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope '1236664d-751d-4a0a-9a3d-13c332cb7e9b/.default openid profile offline_access' is not valid - it refers to a resource which is not listed in the client's Required Resource Access and for which the user does not have any existing consent.

解决方案

1. 明确问题根源

{clientId}/.default属于应用权限,必须由管理员授权才能生效,但个人微软账号没有管理员权限,自然无法完成授权。组织账号能正常运行是因为管理员已经给应用配置了对应权限,而个人账号走不通这个逻辑。另外你登录时用的是user.read这类委托权限,获取令牌时切换到应用权限的scope,这种混用也是触发错误的核心原因。

2. 调整获取令牌的scope为委托权限

直接使用和登录时一致的委托权限,比如继续用user.read,或者替换成业务实际需要的其他委托权限:

const accessTokenRequest = {
  scopes: ['user.read'], // 替换为你需要的委托权限
  account: this.account
};

3. 若必须使用应用权限(仅针对组织账号)

如果业务逻辑确实依赖应用权限,需要把个人账号和组织账号的逻辑分开处理:

  • 组织账号:保留{clientId}/.default的scope,但要确保Azure AD应用注册中已经配置好对应的应用权限,且获得了管理员同意。
  • 个人账号:强制使用委托权限的scope,避开应用权限的逻辑。

4. 检查应用注册的API权限配置

登录Azure AD应用注册后台,确认已添加所需的委托权限(比如Microsoft Graph的User.Read),且这些权限属于用户可自行同意的类型(无需管理员审批)。

内容的提问来源于stack exchange,提问作者pmvp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 11:00:08