问题描述
对于针对图形 api 的 CRUD 操作,我们必须提供多个开发团队应用程序凭据。这些团队负责不同的应用程序,到目前为止,我们为每个应用程序管理不同的 Azure B2C 租户。我们希望将所有应用整合为一个 B2C 租户。
这样做的最佳方法是什么?这样做有什么问题吗?以下是我们想到的一些
- 授予租户范围的权限,如 Directory.ReadWrite.All 和 User.ReadWrite.All 可能会导致一个团队的开发者无意中删除其他团队的身份。
- 修改一个应用程序已被其他应用程序使用的属性
解决方法
据我所知,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