通过多个Azure AD B2C订阅创建MVC CORE应用程序的最佳实践是什么?这可以吗?每个国家/地区对用户的数据居留权都有特定的要求。 我确实需要: 德国用户对德国b2c的订阅... 加拿大用户在加拿大的b2c订阅 等等... 每个用户都将通过国家b2c服务进行身份验证,并将使用一个全局应用程序。 请为这种情况存在一些优雅的解决方案吗? 谢谢
答案 0 :(得分:2)
我想说您的要求“德国用户适用于德国,加拿大用户适用于加拿大”是不可能的。
如果您查看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 Traffic Manager用作DNS负载平衡器,并根据客户的位置将其路由到所需区域。您应该签出https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/n-tier/multi-region-sql-server。然后,您可以例如将MVC CORE应用程序部署到两个不同的Azure Web应用程序中。其中一个使用您的US AAD B2C租户,另一个使用EU AAD B2C租户。
答案 1 :(得分:0)
您可以使用选择的方法直接在应用程序中确定用户的位置,无论是应用程序中的用户首选项设置,IP地理映射服务,浏览器位置还是其他魔术。然后,在您的应用中,您可以简单地为德国用户使用一个B2C租户的端点,如果该用户位于加拿大,则可以使用另一个B2C租户的端点。
@wlami指出,应该对用户数据使用类似的方法。他的方法以基础架构为中心,我的以应用程序为中心,使您可以控制用户位置检测机制。