当MSAL无法在Angular 6中获取令牌时,如何将浏览器重新路由到自定义“用户不在角色”页面

时间:2019-04-22 15:12:56

标签: azure angular6 msal

我正在尝试使用Angular 6 / MSAL实现隐式流。客户端正在尝试从Azure AD获取ID令牌。我们的AD客户端配置为仅为某些用户和组提供令牌。因此,当未经授权的用户(仍是组织内部的用户)尝试登录时,Azure Ad会将他们直接重新路由到登录页面,这不是很直观。我想将他们重定向到自定义页面,以指示用户没有应用程序所需的任何角色。

但是MSAL不能选择“ failedRedirectUri”之类的东西。有人可以告诉我MSAL甚至可以做到这一点吗,如果可以,我该如何配置它?

我尝试从localStorage设置“ redirectUri”,并尝试在重定向发生之前对其进行修改。但这无济于事。

MsalModule.forRoot({
      clientID: '*****-************************',
      authority: "https://login.microsoftonline.com/*************************/",
      validateAuthority: true,
      redirectUri: window.location.origin,
      cacheLocation: 'localStorage',
      postLogoutRedirectUri: window.location.origin + "/loggedout",
      navigateToLoginRequestUrl: false,
      popUp: false,
      unprotectedResources: ["https://www.microsoft.com/en-us/"],
      protectedResourceMap: protectedResourceMap,
      logger: loggerCallback,
      correlationId: "1000",
      level: LogLevel.Info,
      piiLoggingEnabled: true
  })

在隐式流登录失败时,不应将用户重定向到“ redirectUrl”页面。相反,应该将用户带到显示错误说明的错误页面。

0 个答案:

没有答案