angular - Azure AD B2C 多租户架构
问题描述
Microsoft Azure AD B2C 是否支持多租户架构?下图是我们的架构。我创建了一个 Azure AD B2C 服务调用Tenant(Client)
和一个指向我的订阅帐户的链接。我已经在该租户中注册了 UI 和 API 应用程序。然后我在租户中以管理员身份创建了用户。管理员创建用户来访问我的应用程序。我们计划实施 Azure AD B2C 的多租户来访问单个 Angular 应用程序 (UI)。
例子:
我创建了一个 Azure AD B2C 服务调用TenantA(Client A)
和一个指向我的订阅帐户的链接。然后我在 TenantA 中以管理员身份创建了用户。管理员创建用户来访问我的应用程序。我已经注册
我创建了一个 Azure AD B2C 服务调用TenantB(Client B)
和一个指向我的订阅帐户的链接。然后我在 TenantB 中以管理员身份创建了用户。管理员创建用户来访问我的应用程序。
多个租户 Client A(Tenant A)
和Client B(Tenant B)
用户应访问单个 UI 应用程序并应访问单个 API 应用程序。
如何在UI和API应用程序中为两个租户注册相同的 配置?
解决方案
你不能,每个租户 api 范围都是唯一的,因为它基于租户 ID。
您可以将所有用户放在同一个租户中,或者使用支持多个令牌颁发者的库。
或者,如果您确实需要隔离身份,您可以将单个 B2C“漏斗”租户与多个客户 B2C 租户联合起来,并使用家庭领域发现来路由传入用户的身份验证流。这种方法必须确保电子邮件在范围内的所有租户中是唯一的。漏斗租户会要求用户提供电子邮件,使用自定义策略调用 REST API,该 API 将使用 Graph API 在所有租户中查找电子邮件。一旦找到租户,它就会告诉漏斗租户将用户重定向到哪个 B2C 联盟以完成身份验证。