Ionic iOS端Azure MSAL认证报错AADSTS9002326求解决
解决iOS端AADSTS9002326错误的方法
1. 调整Azure AD应用注册的客户端类型
- 登录Azure门户,找到你的应用注册
- 进入认证页面,删除原有的SPA类型重定向URI(如果已配置)
- 添加移动和桌面应用类型的重定向URI:
- 输入
msauth.<你的应用Bundle ID>://auth(示例:msauth.com.yourcompany.yourapp://auth) - 同时将
capacitor://localhost也添加到该类型的重定向URI列表(兼容测试场景)
- 输入
- 保存配置
2. 修改Ionic应用中的MSAL初始化与iOS配置
- MSAL配置调整:根据平台切换重定向URI,确保Native环境使用Native类型的URI:
import { Capacitor } from '@capacitor/core'; const isNative = Capacitor.isNativePlatform(); const msalConfig = { auth: { clientId: '你的客户端ID', authority: 'https://login.microsoftonline.com/你的租户ID', redirectUri: isNative ? 'msauth.com.yourcompany.yourapp://auth' : 'http://localhost:4200', postLogoutRedirectUri: isNative ? 'msauth.com.yourcompany.yourapp://auth' : 'http://localhost:4200' }, cache: { cacheLocation: isNative ? 'localStorage' : 'sessionStorage', storeAuthStateInCookie: !isNative } }; - iOS Info.plist配置:添加对应的URL Scheme和查询权限,确保Azure能回调你的应用:
打开ios/App/App/Info.plist,插入以下内容:<key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>msauth.com.yourcompany.yourapp</string> </array> </dict> </array> <key>LSApplicationQueriesSchemes</key> <array> <string>msauthv2</string> <string>msauthv3</string> </array>
3. 核心注意事项
- 禁止将
capacitor://localhost添加到SPA类型的重定向URI,Azure仅允许SPA使用http/https协议的URI - iOS端必须使用移动和桌面应用类型的重定向URI,配合Bundle ID对应的URL Scheme,才能通过Azure的跨源令牌兑换校验
- 测试前清理iOS模拟器缓存或重新安装应用,确保配置生效
内容的提问来源于stack exchange,提问作者AlmostDone
相关产品推荐
相关产品推荐

