从 MSAL Angular v2 升级到 v3

MSAL Angular v3 使我们的 Angular 包装器与最新版本的 MSAL Browser 保持同步,并开箱即用地支持 Angular 15、16、17、18 和 RxJS 7。

本指南将演示将现有应用程序从 @azure/msal-angular v2 迁移到 v3 所需的更改。

如果要从 @azure/msal-angular v1 迁移,请参阅 v1-v2 迁移指南 ,首先迁移到 MSAL v2。

另请参阅 MSAL 浏览器迁移文档 ,了解浏览器支持和其他关键更改。

@azure/msal-angular@3 中的重大更改

初始 化

使用重定向的应用程序

MSAL v3.x 现在需要初始化应用程序对象。 初始化已内置于 MsalRedirectComponenthandleRedirectObservable API 中,并且已实现重定向策略的应用程序无需进行更改。 如果应用程序正在使用独立组件,可能需要进行其他更改。

有关在应用程序中处理重定向的详细信息,请参阅 重定向指南

使用弹出窗口的应用程序

由于初始化内置于 MsalRedirectComponenthandleRedirectObservable 中,因此仅使用弹出窗口的应用程序也必须引导启动 MsalRedirectComponent,或手动调用一次 handleRedirectObservable 来初始化应用程序对象。

有关设置详细信息 ,请参阅重定向指南

allowNativeBroker 标志

现在,该 allowNativeBroker 标志在配置中默认处于打开状态。 如果你使用的是 B2C 颁发机构,可以如下关闭它:

export function MSALInstanceFactory(): IPublicClientApplication {
    return new PublicClientApplication({
        auth: {
            ...
        },
        cache: {
            ...
        },
        system: {
            allowNativeBroker: false, // Disables native brokering support
        }
    });
}

Angular 15、16、17、18 和 rxjs@7

MSAL Angular 现在要求你的应用程序使用以下技术构建:

  • @angular/core@15@angular/core@16@angular/core@17@angular/core@18
  • @angular/common@15@angular/common@16@angular/common@17@angular/common@18
  • rxjs@7

由于此更改,MSAL Angular v3 与早期版本的 Angular 和 RxJS 不兼容,可能需要更新应用程序。 请按照 Angular 更新指南 将应用程序更新到 Angular 15、16、17 或 18。

与 MSAL Angular v2 一样, rxjs-compat 不需要。

Samples

现在提供了以下开发人员示例:

这些示例演示了基本配置和用法,并可以逐步改进并添加到其中。

有关 MSAL Angular v3 示例和演示的功能的列表,请参阅 此处