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

Next.js中使用MSAL遇Invalid Grant错误:权限不足(AADB2C90205)

问题描述

在Next.js应用中使用Azure AD B2C和MSAL库实现登录功能时,遇到以下错误:

{
    "error": "invalid_grant",
    "error_description": "AADB2C90205:This application does not have sufficient permissions 
    against this web resource to perform the operation.
    \r\nCorrelation ID: 425d0c39-3bf7-48be-9b81-8bc5cd5abc02\r\nTimestamp: 2024-09-06 12:41:31Z\r\n"
}

相关细节

使用的依赖版本:

@azure/msal-browser: ^3.23.0
@azure/msal-react: ^2.0.13

已执行的配置步骤:

  • 在Azure AD B2C中注册应用;
  • 配置必要的重定向URI和API权限;
  • 使用MSAL React库在Next.js应用中配置MSAL。

已尝试的排查操作:

  • 检查API权限并确认已授予管理员同意;
  • 验证MSAL配置中的重定向URI和范围与Azure AD B2C中的一致。

疑问

该“权限不足”错误可能由什么原因导致?如何解决?是否需要在Azure AD B2C中进行特定配置才能让MSAL成功完成用户认证?


原因分析与解决方案

可能的原因及对应解决方法

  1. 请求的范围未在应用注册中配置

    • 若MSAL代码中请求的scopes未在Azure AD B2C应用注册的权限列表中,会触发权限不足错误。
    • 解决:登录Azure AD B2C门户,进入目标应用注册的「API权限」页面,检查是否包含代码中请求的所有范围,缺失则添加并重新授予管理员同意。
  2. 权限类型与应用类型不匹配

    • Next.js单页应用(SPA)只能使用委托权限,无法使用应用权限。若误添加了应用权限,会导致验证失败。
    • 解决:删除不适用的应用权限,添加对应的委托权限并完成管理员同意操作。
  3. 重定向URI类型配置错误

    • SPA类型的应用需将重定向URI设置为「单页应用(SPA)」类型,而非「Web」类型,错误类型会引发权限验证异常。
    • 解决:在应用注册的「身份验证」页面,修改重定向URI的类型为「单页应用(SPA)」,确保与MSAL配置中的URI完全一致。
  4. MSAL的authority参数错误

    • authority必须正确指向Azure AD B2C的用户流端点,格式为https://{你的B2C租户}.b2clogin.com/{你的B2C租户}.onmicrosoft.com/{你的用户流名称},参数错误会导致权限逻辑失效。
    • 解决:核对MSAL配置中的authority是否与Azure AD B2C中创建的用户流端点一致,修正后重新测试。
  5. 未启用所需令牌类型

    • 若应用需要获取ID令牌(用于登录)或访问令牌(用于调用API),需在应用注册的「身份验证」页面勾选对应令牌类型。
    • 解决:进入应用注册的「身份验证」设置,在对应应用类型的配置中,勾选所需的ID令牌、访问令牌选项。

Azure AD B2C的特定配置要求

除常规配置外,还需确保:

  • 创建并启用了正确的用户流(如注册/登录流),MSAL的authority必须指向该用户流的端点;
  • 若使用Microsoft Graph API,需添加针对Azure AD B2C的Graph权限(而非普通Azure AD的权限);
  • 若调用自定义API,需先在Azure AD B2C中注册该API,为应用添加对应的委托权限,并确保API的范围名称与代码中请求的一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:13:14