小编Ala*_*ley的帖子

运行 Angular e2e 测试时如何禁用或绕过 MSAL 身份验证?

我想为我的 Angular 应用程序设置一些端到端测试,这需要使用 MSAL 库来对一些下游服务进行身份验证。当我尝试在本地运行 e2e 测试时,MSAL 库强制我使用用户名/密码进行身份验证。

这是一个问题,因为我们的 CI/CD e2e 测试不应该有任何人为干预;因此,我正在寻找一种方法来绕过 MSAL 身份验证或设置服务帐户进行登录。不幸的是,围绕 Angular 的 MSAL 的文档并不多(尤其是在 e2e 测试方面),但这似乎是其他人可能遇到的常见问题。

我试图从我们的 app.module.ts 文件中禁用 MsalModule 但是当我尝试运行应用程序时仍然提示我登录。我还看到一些文章试图以编程方式登录,但这对我们不起作用,因为从技术上讲,MSAL 不是我们能够接触的 Angular 组件。

app.module.ts:

@NgModule({
  ...
  imports: [
    ...
    MsalModule.forRoot({
      clientID: '<client_id>',
      authority: <microsoft_authority_url>,
      validateAuthority: true,
      redirectUri: "http://localhost:4200/",
      cacheLocation : "localStorage",
      postLogoutRedirectUri: "http://localhost:4200/",
      navigateToLoginRequestUrl: true,
      popUp: true,
      consentScopes: [ "user.read"],
      unprotectedResources: ["https://www.microsoft.com/en-us/"],
      protectedResourceMap: protectedResourceMap,
      logger: loggerCallback,
      correlationId: '1234',
      level: LogLevel.Info,
      piiLoggingEnabled: true
    })
  ],
  entryComponents: [SaveDialogComponent,
                    GenericDialog, MassChangeDialogComponent],
  providers: [TitleCasePipe,
    {provide: HTTP_INTERCEPTORS, useClass: MsalInterceptor, multi: …
Run Code Online (Sandbox Code Playgroud)

e2e-testing angular-cli azure-ad-msal angular angular-e2e

4
推荐指数
2
解决办法
3762
查看次数