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

Azure托管Angular SPA使用错误OAuth端点触发AADSTS9002325错误,如何配置正确的v2.0认证端点?

解决Azure部署的Angular MSAL登录失败(AADSTS9002325)问题

我之前在部署Angular MSAL应用到Azure Web App时,碰到过几乎一模一样的问题,咱们一步步来排查解决:

核心问题分析

你看到的端点差异(本地用/oauth2/v2.0/authorize,生产用/oauth2/authorize)说明生产环境的MSAL没有使用Microsoft Identity Platform v2.0端点,而v1端点对SPA的授权码流要求必须使用PKCE,但配置不匹配就会触发AADSTS9002325错误。

具体排查步骤

1. 确认MSAL Angular配置中的authority参数

这是最容易出错的地方:本地开发的环境配置(environment.ts)可能正确设置了v2端点,但生产环境配置(environment.prod.ts)或者Azure Web App的环境变量没跟上。

确保生产环境的MSAL初始化代码里,authority明确包含/v2.0后缀:

// environment.prod.ts
export const environment = {
  production: true,
  msalConfig: {
    auth: {
      clientId: '你的客户端ID',
      authority: 'https://login.microsoftonline.com/你的租户ID/v2.0', // 必须带/v2.0
      redirectUri: 'https://你的Azure Web App域名.com'
    }
  }
};

在app.module.ts的MsalModule.forRoot中,要确保引用的是这个生产环境的配置,而不是硬编码的本地值。

2. 检查Azure AD应用注册的平台类型

这是另一个关键点:如果你的应用注册里添加的是Web平台而不是单页应用(SPA),MSAL会自动切换到v1端点,并且不启用PKCE支持。

操作步骤:

  • 登录Azure门户,找到你的AD应用注册
  • 进入「管理」→「平台配置」
  • 确保已添加「单页应用(SPA)」类型的重定向URI,并且删除不必要的「Web」类型配置(如果之前加过)
  • 保存配置后,重启Azure Web App

3. 验证Azure Web App的环境变量

如果你的应用通过环境变量传递MSAL配置(比如在Azure门户的「配置」→「应用程序设置」里设置了AUTHORITY),要检查这个变量的值是否正确包含/v2.0后缀。

有时候部署时会不小心覆盖了正确的配置,导致MSAL用默认的v1端点。

4. 清除缓存并重启应用

旧的认证配置可能被浏览器或Azure Web App缓存:

  • 在浏览器中强制刷新页面(Ctrl+Shift+R),清除本地缓存
  • 登录Azure门户,重启你的Web App,清除服务器端缓存

为什么本地正常而生产异常?

本地开发时,你大概率是直接在代码里配置了正确的v2端点,并且浏览器缓存是干净的;而部署到Azure后,要么是生产环境配置遗漏了/v2.0,要么是应用注册的平台类型不对,导致MSAL自动降级到v1端点,最终触发PKCE错误。

按照上面的步骤排查,应该能解决问题。如果还是不行,可以打开浏览器的开发者工具,查看网络请求里的authority参数,确认MSAL实际请求的端点是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 20:27:36