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

使用MSAL的Azure App Proxy与SPA应用遇AADSTS9002326错误求助

解决Azure AD SPA结合应用代理时的AADSTS9002326错误

问题背景

通过Azure AD的MSAL认证访问SPA应用,已完成应用注册,但结合Azure Application Proxy后触发错误:AADSTS9002326: Cross-origin token redemption is permitted only for the 'Single-Page Application' client-type。原因是应用代理自动添加了Web类型的重定向URI,导致应用注册同时存在Web和SPA两种客户端类型配置,而SPA的令牌兑换流程仅允许纯SPA客户端类型。

解决方案

方案一:分离应用注册(推荐)

这是最稳妥的长期方案,避免客户端类型冲突:

  • 创建两个独立的应用注册:
    • 纯SPA应用注册:仅配置SPA类型的重定向URI,对应你的前端SPA应用,使用MSAL.js的PKCE认证流程,不添加任何Web类型配置。
    • Web应用注册:专门用于Azure应用代理,配置应用代理生成的Web类型重定向URI(格式通常为https://<你的应用代理域名>/signin-oidc),按需启用ID令牌和访问令牌的隐式授权。
  • 将Azure应用代理关联到Web类型的应用注册,SPA前端则使用纯SPA应用注册的clientId进行MSAL配置。

方案二:调整现有应用注册配置(临时应急)

若不想新建应用注册,可修改现有配置:

  • 登录Azure门户,进入目标应用注册的身份验证页面。
  • 删除所有Web类型的重定向URI(包括应用代理自动添加的相关地址)。
  • 仅保留SPA类型的重定向URI。
  • 进入Azure应用代理配置页,将应用的内部认证方法改为「不使用Azure AD预认证」,或关联到单独的Web应用注册进行预认证。

关键注意事项

  • 确保SPA的MSAL配置中,clientId严格对应纯SPA类型的应用注册ID,禁止混用Web应用注册的ID。
  • 若应用代理必须使用Azure AD预认证,务必使用独立的Web应用注册,避免与SPA的客户端类型规则冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:57:01