我需要构建一个解决方案,利用 Azure B2B 协作让来自不同组织的客户使用我的系统。
每个客户可能有 100 或 1000 个用户,其中一些可能有 Azure AD,有些则没有。
应用程序将具有不同的用户角色/组结构,用于控制对我的 API 的访问。
设计这个的最佳方式是什么,你能提供参考吗?
选项 1:为每个客户创建单独的 Azure AD
每个客户都有自己的 Azure AD,我可以使用 Azure 组来控制访问。
- 每个订阅的 Azure AD 限制是多少?(找不到 MS文档中的明确答案(https://learn.microsoft.com/en-us/azure/active-directory/users-groups-roles/directory-service-limits-restrictions
- 这是一个很好的"Azure"实践吗?你能提供参考吗?
- 有关构建/组织此结构以便于维护的任何信息。
- 我需要注意的任何并发症?
选项 2:为所有客户/用户创建单个 Azure AD
所有客户的所有用户都将添加到单个 Azure AD,对于用户隔离,每个客户的用户都属于单独的 Azure 安全组。
- 在这种情况下,我可能需要在本地数据库中维护每个客户组,因为它们可能具有不同的组。
- 将所有客户的用户放在同一个目录中有什么顾虑吗?
选项 3:???
在我看来,单个租户更好。为每个客户创建一个租户会使管理变得更加困难(登录也变得更加难以实现(。每个订阅的 Azure AD 限制可能不存在,因为目录位于层次结构中的订阅之上。是的,您可以为每个客户设置一个组,并将该组的 ID 保留在数据库中。
用户将作为来宾添加到目录中,请确保在外部协作设置中启用了来宾用户权限受限设置。 这将使他们根本无法访问租户中的用户或组列表。