Azure B2C 中的多租户用户管理支持

时间:2021-02-15 19:12:53

标签: azure-ad-b2c multi-tenant azure-ad-b2c-custom-policy

我们将 B2C 用于许多应用。每个应用都由一个单独的团队拥有,目前每个团队都有自己的非生产和生产 B2C 租户。

应用的数量肯定会增长。我们希望今后使用更少的租户。准确地说,我们希望所有应用程序只使用 2 个租户。 1 个非产品和 1 个产品。这种方法的主要问题是,我们目前在租户级别为开发人员应用程序注册授予具有权限的客户端凭据,例如 User.ReadWrite.All 和 Directory.ReadWrite.All。因此,开发人员对一个团队/应用程序的操作可能会无意中影响另一个应用程序的用户。为此,我们希望围绕 Graph API 创建一个包装器用户管理 API,以及这个新 API 的前端。用户管理管理员将在前端进行身份验证并使用自定义 API,该 API 调用 Graph API。希望通过此设置,只有自定义 API 将使用具有 Graph API 权限的客户端凭据授予。用户管理员将进行身份验证以登录前端 Web 应用以使用自定义 API。

问题

  1. 这是实现我们使用更少租户的长期目标的正确方法吗?有哪些替代方案?
  2. 关于自定义 API/前端设置。我们正在考虑实施的一种方法是为用户管理管理员使用专用的 B2C 租户。此租户将包含自定义 API 的一个应用程序注册。范围将在此 API 上公开。自定义 API 将使用客户端凭据授予在其他 B2C 租户上执行 CRUD 操作。 Web 应用程序前端将有第二个应用程序注册,该应用程序将被分配在自定义 API 上公开的权限。这是否可行?如果不可行,有哪些可用的选项?
  3. 我们正在考虑的用于 API/前端设置的第二种方法是类似的,但是,我们希望前端 Web 应用程序成为多租户的,这样用户管理管理员就不必在容纳这些应用程序的租户中拥有帐户自定义 API 和前端,因为他们已经在各自的 B2C 租户中拥有帐户。如何在 B2C 中实现多租户支持,它是否适用于这种情况?

1 个答案:

答案 0 :(得分:0)

为了分离职责(开发人员无法访问 prod)以及在多个租户(POC、NonProd、Prod)之间复制大量 b2c 设置 - 已经进行了自动化工作以配置 B2C 的日常管理租户。我每个环境都有一个 JSON 文件(dev/test/uat/prod/dr),它提供一个 powershell 脚本来强制执行在租户内创建(100s)应用程序的业务规则。租户的自动化要求您创建一些管理应用程序/服务帐户以通过 API 进行管理,但它会进一步限制您赋予团队的角色(全局 READER 与管理员角色)。不幸的是B2C does not support PIM for JIT/JEA

脚本包括:

  • 创建 B2C UI 应用注册(对回复 URL/公共客户端/下游权限的清单控制)
  • 直接为 PS 命令不支持的属性设置清单
  • 创建 B2C AAD 应用注册(主要用于 OAuth STS、应用范围/权限)
  • 为应用注册(证书/机密)创建凭据(客户端 ID)并通过密钥库进行管理(轮换和自我修复)
  • 管理员权限授予

还将 B2C 自动化扩展到 IEF 自定义策略 XML 文件部署。

相关问题