我应该在 SaaS 应用程序中使用单个 Azure AD B2C 租户还是多个租户?

Should I use a single Azure AD B2C tenant or multiple tenants in a SaaS app?

我有一个合作伙伴正在考虑将他们的 SaaS 应用迁移到 AAD B2C,该应用被许多企业客户使用。

他们正在讨论是要有一个供所有客户使用的 AAD B2C 租户,还是要为每个客户提供单独的 B2C 租户。这里的最佳做法是什么?为什么?

一个相关问题是关于环境的 (dev/test/QA/prod):合作伙伴应该为每个环境实施单独的 AAD B2C 租户,还是跨环境使用一个 B2C 租户?

我建议为所有客户使用一个 Azure AD B2C 租户,因为为每个客户维护一个单独的租户将难以管理,而且您不会利用 B2C 的用途。使用一个 B2C 租户时,您可以考虑在用户注册期间收集公司名称,如果您想稍后根据他们的组织隔离或查找用户。

您还可以考虑将他们的企业 IAM 解决方案(如 ADFS/AzureAD/Okta 等)与 B2C 租户联合起来。如果您选择使用此选项,则可以使用 this custom policy sample 来实施 Home Realm Discovery,这将根据客户电子邮件后缀中的域名将客户重定向到他们各自的 IDP 进行身份验证。

对于 Dev 和 Prod 环境,选择使用单独的租户,因为如果使用相同的租户,无论用户在哪个环境中,后端目录都是相同的 signing-up/signining-in。任何测试或定制都不应影响 prod 目录。因此,测试和生产使用不同的租户将是一个安全的选择。

有不同的租户。

这加强了分离,并且更容易应用不同的条件访问策略、不同的 IDP 而无需跳过箍、不同的 MFA 流、不同的扩展属性等。

干净多了。

如果出现问题,您只会失去一个租户。

在管理方面,可以用DevOps

当然,不同的测试、UAT 租户等

同样,将错误代码部署到测试不会影响生产。