Архитектура приложения - множественная подписка b2c - одно глобальное приложение - PullRequest
0 голосов
/ 07 июля 2019

Какова оптимальная практика для создания приложения MVC CORE с несколькими подписками Azure AD B2C? Это возможно, пожалуйста? В каждой стране существуют особые требования к резидентности данных пользователей… Мне точно нужно b2c подписка в Германии для пользователей немцев ... подписка на b2c в Канаде для канадских пользователей так далее... Каждый пользователь будет аутентифицирован с помощью национальной службы b2c и будет использовать одно глобальное приложение. Есть, пожалуйста, какое-нибудь элегантное решение для такого сценария? Спасибо

Ответы [ 2 ]

2 голосов
/ 07 июля 2019

Я бы сказал, что ваше требование "Германия для немецких пользователей, Канада для канадских пользователей" невозможно.

Если вы посмотрите на локальную доступность 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), вы должны знать, что помимо информации для входа в систему вывероятно, также есть данные приложения, сохраненные в базах данных.Одним из подходов для этого сценария является дублирование вашего развертывания (шлюз приложений / веб-приложение / базы данных / кэши) в двух регионах (один для резидентства данных США и один для резидентства ЕС).Вы можете использовать Azure Traffic Manager в качестве балансировщика нагрузки DNS и направлять своих клиентов в зависимости от их местоположения в нужный регион.Вам следует проверить https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/n-tier/multi-region-sql-server. Затем вы можете, например, развернуть приложение MVC CORE в двух разных веб-приложениях Azure.Один из них использует вашего американского арендатора AAD B2C, а другой - европейского AAD B2C.

0 голосов
/ 09 июля 2019

Вы можете определить местоположение пользователя непосредственно в вашем приложении, используя метод по вашему выбору, будь то настройка предпочтений пользователя в приложении, служба гео-карт IP, местоположение в браузере или какое-либо другое волшебство. Затем в своем приложении вы можете просто использовать конечную точку одного арендатора B2C для немецких пользователей и конечную точку другого арендатора B2C, если пользователь находится в Канаде.

Подобный подход, вероятно, следует использовать для пользовательских данных, как отмечает @wlami. Его подход ориентирован на инфраструктуру, мой - на приложение и дает вам контроль над механизмом определения местоположения пользователя.

...