Рейтинг:0

Как использовать Azure AD в мультитенантном приложении SaaS

флаг cn

У меня возникла проблема с использованием Azure AD в контексте моего приложения SaaS. У меня такое ощущение, что мультитенант Azure AD — это другой термин, чем мультитенант SaaS. Если я ошибаюсь, то, надеюсь, кто-нибудь укажет на мою неверную интерпретацию.

Что такое мультитенантность SaaS (IMO): разделение данных и пользователей в одном приложении. В моем случае это приложение, которое работает для многих небольших компаний. Приложение хранит данные в одной базе данных и использует схему для каждой компании/арендатора. В каждой компании может быть много пользователей — обычно от 1 до 5 пользователей. SaaS — это приложение .NET Core, REST.

В качестве клиента у меня есть настольное приложение. Я мог бы реализовать обработку JWT, но передовой опыт предполагает использование существующих решений, таких как Azure AD. Итак, я гуглил об этом, но для мультитенанта Azure AD я вижу Azure AD B2B, но после глубокого чтения я не думаю, что это вариант для меня, потому что у моих клиентов (компаний) обычно не будет своего Азур AD.

Мой вопрос - как использовать Azure AD? Я чувствую, что:

  • У меня должен быть только один арендатор/каталог, который является моим собственным.
  • Моя SaaS должна добавлять пользователей в каталог.
  • Как отметить в моем каталоге, что несколько пользователей 1-5 принадлежат одному и тому же арендатору SaaS?

Тема Azure AD для меня новая, я буду признателен за подсказки и подсказки, которые помогут мне приблизиться к реализации среды аутентификации в моем приложении.

Рейтинг:0
флаг br

Я думаю, вы слишком все усложняете.

Если вы хотите развернуть приложение один раз в своем арендаторе, но при этом вы можете полностью контролировать, кто может получить доступ к приложению (включая гостевые учетные записи) и управлять всеми разрешениями, используйте приложение с одним арендатором: https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-register-app

Если вы хотите развернуть приложение один раз в своем арендаторе и сделать так, чтобы оно отображалось в разных арендаторах, где администраторы каждого арендатора несут ответственность за управление своим собственным доступом пользователей и разрешениями для приложения, используйте мультитенантное приложение: https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-convert-app-to-be-multi-tenant

Вы обнаружите, что процесс регистрации обоих приложений практически одинаков, вам просто нужно применить несколько настроек, чтобы мультитенантные приложения работали правильно.

Дополнительные сведения о мультитенантных приложениях: https://docs.microsoft.com/en-us/azure/active-directory/develop/single-and-multi-tenant-apps

Вот пример приложения, если вы хотите поиграть: https://github.com/Azure-Samples/active-directory-aspnetcore-webapp-openidconnect-v2/blob/master/2-WebApp-graph-user/2-3-Multi-Tenant/README.md

Идея приложений с несколькими/одиночными арендаторами становится немного размытой, когда вы приглашаете гостевые учетные записи из другого арендатора в свой арендатор для доступа к приложению: https://docs.microsoft.com/en-us/azure/active-directory/external-identities/what-is-b2b

Помните, что лучший способ думать об этом таков: кто будет поддерживать доступ к использованию и их разрешения? ответ на этот вопрос облегчит определение типа регистрации. Надеюсь, это поможет.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.