限制Azure AD B2C中的用户访问

时间:2020-09-17 23:59:48

标签: azure-ad-b2c

目前这主要是在玩,但是我试图使用Azure AD B2C作为我正在工作的网站的登录提供程序/用户存储。

我想根据用户级别限制用户可以访问的内容。

目前,为了处理此问题,我有一个UserLevel数据库条目,其中存储了用户OID,还有一个用于用户级别(管理员,主持人,用户等)的枚举,然后用于页面/ api访问设置一项要求,以检查经过身份验证的用户是否位于UserLevel存储库中,并且其级别是否匹配或超过了所需级别。

我想知道的是,用这种方式做事是否有重大问题/是否有更好的方法来解决这个问题。

1 个答案:

答案 0 :(得分:1)

您可以使用自定义属性保存所有用户属性-它的作用类似于B2C中的DB列。

如何创建?

  1. 导航到包含您的B2C租户的目录。
  2. 在Azure门户的左上角选择所有服务,搜索并选择 Azure AD B2C
  3. 选择用户属性,然后选择添加
  4. 为自定义属性(例如UserLevel)提供名称
  5. 选择数据类型String(请注意,只有String,Boolean和Int可用)。
  6. (可选)输入说明以供参考。
  7. 点击创建

自定义属性现在在“用户”属性列表中可用,并可以在您的用户流中使用。

如何在用户流中使用?

  1. 在您的Azure AD B2C租户中,选择用户流
  2. 选择您的策略(例如“ B2C_1_SignupSignin”)以将其打开。
  3. 选择用户属性,然后选择自定义属性(例如UserLevel)。点击保存
  4. 选择应用程序声明,然后选择自定义属性。
  5. 点击保存

现在您应该在注册过程中收集的属性列表中看到UserLevel,并在发送回您的应用程序的令牌中看到它 –根据您的身份能够识别您要授予该用户的访问权限(而不是进行另一个数据库调用,这会增加延迟)。

如果您还有其他问题,请告诉我。