【问题标题】:Application architecture - multiple b2c subscription - one global application应用架构 - 多个 b2c 订阅 - 一个全球应用
【发布时间】:2019-07-10 00:08:25
【问题描述】:

创建具有多个 Azure AD B2C 订阅的 MVC CORE 应用程序的最佳实践是什么?请问这可能吗?每个国家/地区对用户的数据驻留都有特定的要求…… 我确实需要: 德国用户在德国的 b2c 订阅... 加拿大用户在加拿大的 b2c 订阅 ETC... 每个用户都将通过国家 b2c 服务进行身份验证,并将使用一个全球应用程序。 请为这种情况提供一些优雅的解决方案吗? 谢谢

【问题讨论】:

  • 你有什么解决办法吗

标签: azure azure-active-directory azure-ad-b2c


【解决方案1】:

我会说您的要求“德国用户使用德国,加拿大用户使用加拿大”是不可能的。

如果您查看 AAD B2C 的本地可用性,您会发现它是“非区域”服务: https://azure.microsoft.com/en-us/global-infrastructure/services/?products=active-directory-b2c

创建新 B2C 租户时可以选择的“国家或地区”选项不等于数据驻留。您在下拉列表中选择的选项与数据驻留之间存在“映射”。您可以在此处查看此映射: https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-reference-tenant-type

目前,有两个可能的数据驻留地:美国和欧洲。考虑到这一限制,您应该评估是否仍希望拥有多个 B2C 租户。

如果您决定仍需要“本地”数据驻留(您好 GDPR),您应该注意,除了登录信息之外,您可能还保存在数据库中的应用程序数据。此方案的一种方法是将您的部署(应用程序网关/Web 应用程序/数据库/缓存)复制到两个区域(一个用于美国数据驻留,一个用于欧盟驻留)。您可以将 Azure 流量管理器用作 DNS 负载均衡器,并根据客户的位置将其路由到所需区域。您应该查看https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/n-tier/multi-region-sql-server。然后,例如,您可以将 MVC CORE 应用程序部署到两个不同的 Azure Web 应用程序中。其中一个使用您的美国 AAD B2C 租户,另一个使用欧盟 AAD B2C 租户。

【讨论】:

    【解决方案2】:

    您可以使用您选择的方法直接在您的应用程序中确定用户的位置,无论是应用程序中的用户偏好设置、IP 地理映射服务、浏览器位置还是其他一些魔法。然后在您的应用程序中,您可以简单地为德国用户使用一个 B2C 租户的端点,如果用户在加拿大,则使用另一个 B2C 租户的端点。

    @wlami 指出,可能应该对用户数据使用类似的方法。他的方法是以基础架构为中心,我的是以应用程序为中心,让您可以控制用户位置检测机制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 2019-08-09
      相关资源
      最近更新 更多