Azure B2C - 用户管理 (CRUD) - 单租户与多租户

问题描述

对于针对图形 api 的 CRUD 操作,我们必须提供多个开发团队应用程序凭据。这些团队负责不同的应用程序,到目前为止,我们为每个应用程序管理不同的 Azure B2C 租户。我们希望将所有应用整合为一个 B2C 租户。

这样做的最佳方法是什么?这样做有什么问题吗?以下是我们想到的一些

  1. 授予租户范围的权限,如 Directory.ReadWrite.All 和 User.ReadWrite.All 可能会导致一个团队的开发者无意中删除其他团队的身份。
  2. 修改一个应用程序已被其他应用程序使用的属性

解决方法

据我所知,Azure AD 没有现成的解决方案来满足您的需求。

在您的情况下,每个团队都可以管理一个 B2C 租户中的所有用户。我的建议是用你自己的逻辑控制权限。

例如,来自 A 组的用户在 id 令牌中有一个组声明,它告诉您他来自哪个组。然后当他调用MS graph修改用户时,检查用户来自哪个组。如果他尝试修改的用户来自 A 组,则允许它。通过这种方式,可以实现A组的admin只能修改A组的用户。

你也可以使用 Group claim 来实现同样的事情。

参考文献:

How to: Add app roles to your application and receive them in the token

Configure the Azure AD Application Registration for group attributes