繁体   English   中英

如何阻止用户登录,直到他们在 Azure B2C 中获得授权

[英]how to stop users logging in until they are authorised in Azure B2C

我的 Angular 8(.net 核心后端 api)应用程序使用 MSAL 库受 Azure B2C 保护。 用户进行注册,我使用 Graph API 在 B2C 中创建此用户,我有一个自定义属性isActive我设置为False 应用程序管理员登录应用程序并授予访问权限,创建的用户可以访问应用程序。 我想阻止用户登录,直到他们被管理员授权并允许访问。

我的问题是如何在isActive设置为 true 之前阻止用户登录? 目前我在我的应用程序组件中如下所示

  subscribeToBroadCastServiceOnLogin() {
this.broadcastService.subscribe("msal:loginSuccess", (success) => {     

  if (
    success.idToken.claims[
      "extension_3datttttxxxxxxxxxxxxxxxxxxxxxxxxx_isActive"
    ] !== true
  ) {
    window.alert("Your login is awaiting authorization from site Admin");

    return this.authService.logout();
  }

这种方法的问题是用户已经成功登录,我正在根据声明将他们注销。 我想知道是否有更好的方法来满足这个要求?

您的选项在 b2c 中有些受限,在普通的 azure 广告中,您将有许多选项,例如,限制登录到企业应用程序窗格,或完全禁用该用户的用户登录。

但是在 b2c 中,您没有选项 1,选项 2 仅适用于本地帐户。 这意味着使用社交电子邮件创建的任何帐户.. gmail 等,您不能禁用登录。

因此,除了您目前正在做的事情之外,唯一的其他解决方案是构建邀请流程或等效流程,这基本上会阻止注册,直到管理员批准。 因此您可以构建一些可以调用邀请注册过程的东西,如下所示: https://github.com/azure-ad-b2c/samples/tree/master/policies/invite这样在您发送之前不会创建用户邀请。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM