Почему применение SaaS-IDaaS для аутентификации и авторизации наиболее эффективно, сравнение
Мой опыт показал, что этот простой на первый взгляд механизм часто вызывает неожиданные сложности в реализации. Когда в дискуссиях меня начинают спрашивать почему, приходится долго объяснять. Поэтому решил создать эту статью как ликбез, да и чтобы в процессе свои мысли структурировать для будущих аргументов.
TLDR;
Использование IDaaS (SaaS в авторизации и аутентификации пользователей) для систем, не ограниченных контуром предприятия, имеют самую большую эффективность и удобство. В конце статьи будет сравнительная таблица.
Что такое SaaS и IDaaS? (Если вам это не знакомо)
SaaS (Software as a Service) — это модель, в которой программное обеспечение работает в облаке и предоставляется пользователю как готовый сервис.
Инфраструктура, обновления, безопасность, масштабирование и эксплуатация находятся на стороне поставщика, а команда клиента взаимодействует только с функциональностью — через веб-интерфейс или API.
В России к примерам можно отнести такие сервисы как amoCRM или Яндекс 360.
Вместо того чтобы поднимать собственные CRM или офисные пакеты, компании просто подключаются к готовой платформе и пользуются функционалом “из коробки”.
IDaaS (Identity as a Service, частный вариант SaaS) — это облачное решение для управления идентификацией и доступом (IAM), предоставляемое сторонним поставщиком по подписке. Оно обеспечивает безопасный вход (SSO), многофакторную аутентификацию (MFA) и управление пользователями, снижая затраты на инфраструктуру и повышая безопасность.
Давайте разберемся почему так выходит:
Итак, авторизация сейчас реализуется преимущественно в 5 стандартных сценариях (отсортированы по популярности по убыванию).
-
Использование Open Source
-
Самостоятельная разработка
-
Использование корпоративных решений
-
SaaS-сервисы
-
Вайб-кодинг
Дисклеймер:
Поскольку использование SaaS когда ПО развернуто внутри закрытого контура предприятия, не самая лучшая идея, все сценарии буду рассматривать через призму их использования через глобальную сеть.
Оценки давал субъективные, поэтому с чьим-то опытом они могут не совпасть. Мы можем обсудить ваши оценки в комментариях.
А теперь по списку:
1. Open-source
|
Этап |
Задачи |
Сложность / Затраты |
|
1. Анализ требований |
Какие функции нужны, какие open-source подходят |
Средняя |
|
2. Деплой |
Настройка сервера, контейнеризация (Docker/K8s) |
Средняя |
|
3. Конфигурация |
Настройка клиентов, политик, ролей, шифрования |
Средняя-Высокая |
|
4. Интеграция с фронтом и бэком |
SDK, API, документация |
Средняя |
|
5. Тестирование |
Защищенность, нагрузка, баги |
Средняя-Высокая |
|
6. Поддержка |
Обновления OSS, патчи безопасности, миграции |
Средняя |
|
7. Модификация / кастомизация |
Если нужны уникальные фичи |
Высокая, иногда почти как разработка с нуля |
Итого: не критично много разработки, хотя без нее не обходится, и остаются значительные затраты на деплой, настройку и поддержку.
В некоторых случаях это действительно хорошее решение, например для использования в закрытом контуре предприятия, когда использование корпоративных решений не оправдывает себя. И тем не менее — это совсем не так “бесплатно”, как звучит. Это скорее немного проще и надежней, чем самостоятельная разработка.
2. Самостоятельная разработка (с нуля)
|
Этап |
Задачи |
Сложность / Затраты |
|
1. Анализ требований |
Определение сценариев логина, ролей, прав доступа, compliance |
Высокая |
|
2. Дизайн архитектуры |
Решение о токенах (JWT, OIDC), хранении паролей, сессиях, масштабировании, модулях |
Высокая |
|
3. Выбор технологий |
Языки, БД, криптография, обмен данными |
Средняя |
|
4. Разработка модулей |
Регистрация, логин, MFA, OAuth2/OIDC, RBAC, ACL |
Очень высокая |
|
5. Интеграция с фронтом |
SDK, API, документация для команд |
Средняя |
|
6. Безопасность |
Хэширование паролей, защита от CSRF, XSS, brute-force, аудит |
Очень высокая |
|
7. Логирование и мониторинг |
Ведение событий, оповещения |
Средняя |
|
8. Тестирование |
Unit, интеграционное, нагрузочное, security |
Высокая |
|
9. Поддержка и обновления |
Исправления багов, адаптация под новые стандарты |
Постоянная высокая |
Итого: почти полностью ручная работа, высокая стоимость времени и рисков.
Если кто-то скажет, что запилим сами за неделю, стоит насторожиться. А если посчитать работы в рублях, то и поплохеть может. В одной организации такой инструмент при мне создавали год целой командой (было стратегическое решение, что данный модуль должен быть «своим»).
3. Корпоративное решение
|
Этап |
Задачи |
Сложность / Затраты |
|
1. Анализ требований |
Полная модель пользователей, интеграции, соответствие стандартам |
Средняя-Высокая |
|
2. Закупка лицензий |
Стоимость лицензий, серверов, SLA |
Очень высокая |
|
3. Деплой / установка |
Серверы, сетевые настройки, LDAP/AD |
Высокая |
|
4. Конфигурация |
Клиенты, ролей, групп, политик безопасности |
Средняя-Высокая |
|
5. Интеграция с продуктами |
SDK, SSO, SAML/OIDC, API |
Средняя-Высокая |
|
6. Обучение персонала |
Администраторы, DevOps, поддержка |
Средняя |
|
7. Тестирование и аудит |
Security, compliance, нагрузка |
Средняя-Высокая |
|
8. Поддержка |
SLA, обновления, патчи, консалтинг |
Постоянная высокая |
Итого: дорого, сложная интеграция, медленная адаптация, но высокая надежность. Для корпораций часто важна минимизация рисков, соблюдение жестких требований, за что они готовы неплохо платить. Именно для этого и создается корпоративное ПО.
4. SaaS-сервис
|
Этап |
Задачи |
Сложность / Затраты |
|
1. Анализ требований |
Определение сценариев логина и прав |
Низкая |
|
2. Регистрация и настройка |
Создание проекта, ключей API |
Низкая |
|
3. Интеграция с фронтом и бэком |
Использование SDK/REST API |
Средняя |
|
4. Тестирование |
Проверка логики интеграции, пользовательских ролей |
Средняя (короткий цикл) |
|
5. Поддержка |
Обновления и безопасность обеспечиваются SaaS |
Очень низкая для команды клиента |
Итого: почти все тяжелые этапы перекладываются на сервис, затраты клиента минимальны, быстрая интеграция, низкие риски безопасности и регуляторных требований. При этом сохраняется необходимый уровень доступа к данным пользователей.
5. Вайб-кодинг
|
Этап |
Задачи |
Сложность / Затраты |
|
1. Анализ требований |
Определение сценариев логина, ролей, прав |
Низкая |
|
2. Настройка платформы |
Создание проекта, подключение пользователей, шаблоны auth |
Низкая-Средняя |
|
3. Интеграция с фронтом/бэком |
Drag-and-drop компоненты, готовые API |
Средняя |
|
4. Тестирование |
Проверка логики интеграции, ролей |
Средняя (короткий цикл) |
|
5. Поддержка |
Обновления, исправления багов обеспечиваются платформой |
Низкая |
|
6. Ограничения / кастомизация |
Если нужны уникальные фичи или сложная RBAC — возможно придется писать код |
Средняя-Высокая при сложных требованиях |
Итого: Быстрое прототипирование и MVP, экономия времени. На данном этапе своего развития это решение несет некоторые риски, и являясь отличным инструментом для малого бизнеса, для среднего уже может быть опасным. Ограничения платформы могут мешать сложным сценариям безопасности или интеграции. В случае разработки кода с помощью ИИ-агентов в IDE (возможно, это вообще стоит отнести к самостоятельной разработке) — нестабильность кода и сложность поддержки и дальнейшей разработки, масштабирования. Но если вайб-кодинг использовать вместе с SaaS — то это может повысить стабильность системы за счет высокой стабильности ее отдельных компонентов.
Попробую собрать сложность в сводной таблице:
|
Критерий |
Самостоятельная разработка |
Open-source |
Корпоративное решение |
SaaS (Авториза) |
Вайб-кодинг / low-code |
|
Анализ требований |
8/10 — требуется проработка всех сценариев |
6/10 — нужно сопоставить с возможностями OSS |
7/10 — строгие стандарты |
3/10 — описать сценарии |
3/10 — упрощённая модель |
|
Разработка / конфигурация |
10/10 — всё с нуля |
7/10 — глубокая настройка |
7/10 — сложная конфигурация |
2/10 — почти всё готово |
4/10 — GUI + немного кода |
|
Интеграция с фронтом / бэком |
6/10 — писать SDK |
5/10 — интеграция с API OSS |
6/10 — сложные протоколы |
4/10 — понятные SDK/API |
4/10 — drag-and-drop + API |
|
Тестирование |
8/10 — все уровни тестов |
6/10 — защищенность и нагрузка |
6/10 — аудит и совместимость |
4/10 — в основном функциональное |
4/10 — короткий цикл |
|
Безопасность / регуляторы |
10/10 — всё на команде |
7/10 — зависит от качества OSS |
6/10 — высокий уровень требований |
2/10 — на стороне сервиса |
3/10 — обеспечивается платформой |
|
Поддержка и обновления |
9/10 — постоянные затраты |
6/10 — патчи OSS |
6/10 — SLA и обновления |
2/10 — на стороне SaaS |
3/10 — автоматические |
|
Кастомизация / расширяемость |
6/10 — полная свобода |
6/10 — ограничена ядром OSS |
6/10 — но сложная |
4/10 — ограничена моделью SaaS |
5/10 — ограничена low-code |
|
Скорость внедрения |
10/10 — медленно |
6/10 — средне |
7/10 — медленно |
2/10 — очень быстро |
3/10 — быстро |
|
Стоимость реализации |
10/10 — самая высокая |
6/10 — средняя |
9/10 — высокая (лицензии) |
3/10 — низкая |
4/10 — низкая-средняя |
|
Риски / сложность управления |
9/10 — много уязвимостей |
6/10 — зависимость от OSS |
7/1 — сложность, vendor lock-in |
3/10 — минимальные |
5/10 — ограничения платформы |
Итоговая сложность (средний балл по столбцу)
Я посчитал средний балл по всем критериям — это «общая сложность и затратность подхода». Оценка 0-10, где 10 = максимально сложно/затратно.
|
Решение |
Итоговый балл |
Интерпретация |
|
Самостоятельная разработка |
8,6 / 10 |
Самое трудоемкое, дорогое и рискованное |
|
Open-source |
6,1 / 10 |
Средняя сложность, ощутимые DevOps-затраты |
|
Корпоративное решение |
6,7 / 10 |
Дорого, долго, сложно, но надежно |
|
SaaS |
2,9 / 10 |
Минимальная сложность, оптимально по стоимости и скорости |
|
Вайб-кодинг / low-code |
3,8 / 10 |
Быстро для MVP, ограничения при росте |
А теперь козыри на стол — из всех решений только внедрение SaaS позволяет за один-два дня работы мидл разработчика подключить готовый безопасный полноценный функционал, который будет обходиться на проде в год всего 20-30 тысяч рублей! А для разработки вообще бесплатен. Например Авториза на старте бесплатна для проектов с 500 пользователями, а потом стоимость фиксирована в месяц. Из минусов — относительная потеря контроля над данными. Они хранятся не в «своих» БД. На самом деле этот риск легко нивелируется, например, возможностью миграций, предусмотренных в SaaS, и другими инструментами.
Возможно, в статье я забыл какое-то преимущество или минус — кидайте в комментарии, обсудим. Такой формат для меня не привычен, но я постарался, чтобы статья была полезна.
Руководствуясь этими мыслями, я запускаю сервис Авториза — для аутентификации и авторизации пользователей в веб-приложениях и платформах. Сейчас он еще не готов для запуска, но в ближайшее время будет развернута первая версия.
У меня запущена гуглоформа, которая собирает обратную связь, и в которой можно также подписаться на новости.
Отдельно хочу искренне поблагодарить тех, кто уже оставил обратную связь! Ваши отклики и комментарии очень помогают мне
не сдаватьсявыбирать стратегию развития проекта.Я ищу сооснователей — если вы заинтересовались и хотите принять в проекте участие на правах соучредителя, а не за зарплату — я открыт к контактам.
Также проект ищет инвесторов, готовых поучаствовать в его развитии.
Спасибо, что дочитали!
Автор: metis

