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

NextJS14+next-auth集成Microsoft Entra ID时AADSTS700025错误求助

解决方案:NextAuth集成Microsoft Entra ID时AADSTS700025错误

错误核心原因

你的Microsoft Entra ID应用注册为公共客户端(如SPA、移动类应用),但NextAuth配置中却传入了clientSecret。公共客户端无需也不能使用客户端密钥,因此触发AADSTS700025错误。

修复步骤

1. 确认Entra ID客户端类型

  • 登录Azure门户,找到你的Entra ID应用注册
  • 进入「概述」页面,查看「客户端类型」:如果显示「公共客户端(移动和桌面)」或「单页应用」,则属于公共客户端范畴

2. 调整NextAuth配置

移除配置中的clientSecret字段,确保授权参数匹配公共客户端要求:

import NextAuth from "next-auth";
import MicrosoftEntraID from "next-auth/providers/microsoft-entra-id";

export const authOptions = {
  providers: [
    MicrosoftEntraID({
      clientId: process.env.AZURE_AD_CLIENT_ID,
      tenantId: process.env.AZURE_AD_TENANT_ID,
      // 直接删除clientSecret字段
      authorization: {
        params: {
          response_type: "code",
          redirect_uri: `${process.env.NEXTAUTH_URL}/api/auth/callback/microsoft-entra-id`,
        },
      },
    }),
  ],
};

export default NextAuth(authOptions);

3. 验证Entra ID重定向URI设置

  • 在Entra ID应用注册的「身份验证」页面,添加正确的回调URI:
    • 对于NextJS服务器端应用,选择「Web」类型,填入http://localhost:3000/api/auth/callback/microsoft-entra-id(本地开发)或生产环境域名对应的地址
    • 确保重定向URI与NextAuth配置中的redirect_uri完全一致

4. 若需使用机密客户端(可选)

如果你实际需要服务器端的机密客户端认证:

  • 在Entra ID应用注册的「概述」页面,点击「修改应用程序类型」,改为「机密客户端(Web应用/API)」
  • 进入「证书和密码」页面,生成新的客户端密钥,将其填入NextAuth配置的clientSecret字段

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:35:07