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

Azure AD授权流访问令牌权限配置:Next.js应用SQL同步401报错

解决方案

1. 修正令牌受众(aud)匹配问题

你当前通过Next-Auth获取的令牌受众大概率是Microsoft Graph(https://graph.microsoft.com),但Azure SQL同步API要求令牌的受众必须是Azure SQL的资源ID:https://database.windows.net/。这也是Postman生成的令牌能正常工作的核心原因——它是针对Azure SQL资源请求的。

修改Next-Auth授权配置里的scope参数,明确添加Azure SQL的资源范围:

params: {
  scope: "https://database.windows.net/.default User.Read offline_access"
},

若需同时访问Microsoft Graph和Azure SQL,可同时包含两个资源的权限范围:

params: {
  scope: "https://graph.microsoft.com/User.Read https://database.windows.net/.default offline_access"
},

2. 确认Azure SQL权限已授予管理员同意

在Azure门户的应用注册页面,找到已添加的**Azure SQL Database (user_impersonation)**权限,检查是否已点击「授予管理员同意」按钮。未授予此同意的话,用户令牌不会包含该权限声明,导致SQL服务无法识别身份。

3. 验证令牌核心字段

用jwt.ms解码Next-Auth获取的access token,重点检查两个字段:

  • aud:必须等于https://database.windows.net/
  • scp或roles:必须包含user_impersonation权限
    如果aud不匹配,说明请求令牌时未指定正确的资源;如果权限不存在,说明管理员同意未配置或scope参数设置错误。

4. 核对Next-Auth的Azure AD Provider配置

若使用Azure AD v1端点,除了scope外,还需在授权参数中添加resource字段:

params: {
  resource: "https://database.windows.net/",
  scope: "User.Read offline_access"
},

同时确认应用注册的「重定向URI」与Next-Auth配置的callback URL完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 10:55:11