Angular 9与MSAL v2兼容性咨询:替换ADAL相关问题
MSAL v2 与 Angular 9 的兼容性及迁移建议
兼容性说明
- **@azure/msal-angular v2.x(MSAL Angular封装的v2版本)**与Angular 9不兼容,该版本对Angular的最低要求为12.0.0。
- 若需在Angular 9环境下使用MSAL替代ADAL,可选择**@azure/msal-angular v1.x**(基于MSAL.js v1),它完全兼容Angular 9,能覆盖Azure AD认证的核心需求,足以替代ADAL。
- 若你需要MSAL v2的新特性(如PKCE原生支持、更优化的SPA认证流程),则需将Angular版本升级至12及以上,方可适配@azure/msal-angular v2.x。
从ADAL迁移到MSAL的核心步骤
- 卸载ADAL依赖:
npm uninstall adal-angular - 安装对应版本的MSAL包:
- Angular 9环境:
npm install @azure/msal-angular@1.x @azure/msal-core@1.x - 升级Angular到12+后:
npm install @azure/msal-angular@2.x @azure/msal-browser@2.x
- Angular 9环境:
- 替换认证配置:将原ADAL的配置对象替换为MSAL的
MsalConfiguration,核心参数(如clientId、tenant)可直接复用,需确保redirectUri与Azure AD应用注册中的配置一致。 - 替换认证方法:将
adalService.login()、adalService.acquireToken()等调用替换为MSAL的msalService.loginPopup()/loginRedirect()、msalService.acquireTokenSilent()等方法。 - 更新路由守卫:使用MSAL提供的
MsalGuard替代ADAL的路由守卫逻辑,实现路由级别的认证拦截。 - 替换HTTP拦截器:用
MsalInterceptor替代ADAL的拦截器,自动为API请求附加认证令牌。
内容的提问来源于stack exchange,提问作者Nicolas Cozzo
相关产品推荐
相关产品推荐

