IdentityServer3 против Azure Active Directory против сервисов каталогов AWS
Я оцениваю три вышеупомянутые технологии управления идентификацией и хотел попытаться выяснить преимущества и недостатки и понять, когда мне следует использовать IdentityServer3 по сравнению с другими технологиями. У меня есть три сценария:
- Внутренний клиент MVC для веб-API
- Внешний телефонный клиент для веб-API
- Внутренний веб-API для веб-API
1 ответ
Комментарии Брока Аллена:
По словам Брока Аллена, создателя IdentityServer:
Ну, главное, что отличает IdentityServer - это возможность настроить весь сервис токенов и контролировать пользовательские данные. Продукты SaaS очень ограничены в настройке, потому что по большей части они не позволяют загружать произвольный код для изменения или изменения поведения, и они часто инкапсулируют базу данных пользователей. С другой стороны, это означает, что вам нужно разместить IdSvr (который может быть размещен в облаке), и вам нужно создать базу данных для ваших пользователей. Поэтому, если вам нужен контроль, IdSvr - хороший выбор.
Кроме того, я должен отметить, что очень часто IdSvr используется совместно с другими поставщиками удостоверений (такими как ADFS или AAD). IdSvr развертывается между приложениями и конечными IdP, опять же, обычно для обеспечения настройки, которая необходима приложениям, но при этом все еще централизованной и консолидированной.
Мои собственные выводы
Отказ от ответственности: я рассмотрел это для использования компанией, в которой я работаю, у которой была существующая инфраструктура, которой я должен был обслуживать, поэтому выбранное мной решение искажено в этом направлении. Несмотря на это, я попытался дать беспристрастное резюме моих собственных мыслей во время моего исследования.
Azure Active Directory
Azure Active Directory - это размещенное решение для идентификации, поэтому настройки гораздо меньше (особенно если вы, как и я, обнаружите, что вы уже используете его для Office 365). Из коробки он предоставляет некоторые очень приятные функции, которые помогут вам начать работу очень быстро.
Премиум-версия имеет функции мониторинга и отчетности ( Connect Health), поэтому вы можете видеть, кто входит в вашу систему, она имеет двухфакторную аутентификацию, веб-сайт управления идентификацией, а Microsoft отслеживает входы (немного похоже на cloudflare для идентификации), поэтому следует в теории обеспечивают дополнительную безопасность. Тем не менее, настройка пользовательского интерфейса очень проста: вы должны платить за дополнительные функции, и использование портала Azure для управления идентификацией (если вы пользуетесь бесплатной версией) является проблемой.
Документация довольно хорошая, и на GitHub есть примеры, где разработчики Microsoft активно отслеживают проблемы, которые были полезны. Некоторые ссылки, которые я нашел полезными:
- Домашняя страница документации
- Документация для каждого потока
- Образцы, охватывающие каждый поток
- Введение Видео 1 и Видео 2.
- Сборка видео 1, 2, 3.
IdentityServer
IdentityServer - это швейцарский армейский нож управления идентификацией. Он может делать все, но требует небольшого объема настройки и немного большего знания пространства идентификаторов. Он может делать большинство вещей, которые я перечислил выше, и многое другое.
Следует отметить, что даже если вы используете Azure Active Directory, могут существовать причины для выбора IdentityServer, который я изначально не рассматривал. Например, если у вас есть более одного источника пользовательских данных, например, вы используете AD, а также базу данных пользователей SQL, то IdentityServer можно использовать для указания на оба этих источника пользовательской информации. Теоретически, это также должно облегчить переход от AD к чему-то другому полностью, поскольку это разъединяет вещи.
Проект активно развивается, содержит примеры кода для всех потоков аутентификации, и вы можете получить ответы от сообщества. Некоторые ссылки, которые я нашел полезными:
- IdentityServer4 GitHub
- Образцы, охватывающие каждый поток
- IdentityManager (отдельное приложение для обработки пользователей, групп и ролей).
- Вступительное видео
Потоки аутентификации
Факт: безопасность это сложно. Существует множество способов аутентификации, называемых потоками. Я поместил эту ссылку здесь, потому что я нашел ее очень полезной для понимания их.
Резюме
Я не обращал внимания на службы каталогов AWS, поскольку они очень молоды, хотя компания, в которой я работаю, использует AWS. Мы также используем Office 365, поэтому я обнаружил, что у нас уже есть Azure Active Directory, связанная с локальным сервером активных каталогов. Несмотря на это, IdentityServer по-прежнему является действительным претендентом по причинам, которые я объяснил выше. Мы все еще испытываем оба решения...
То, что вы решите выбрать, полностью зависит от вашей проблемы. Какой из них выбрать? Ну, это зависит от количества разработчиков, времени, денег и усилий, которые вы можете потратить, настраивая это. Не существует единого размера, подходящего для любого решения. Действительно, различия в двух вышеупомянутых продуктах - это различия между решениями SaaS и PaaS.