Мой опыт показал, что этот простой на первый взгляд механизм часто вызывает неожиданные сложности в реализации. Когда в дискуссиях меня начинают спрашивать почему, приходится долго объяснять. Поэтому решил создать эту статью как ликбез, да и чтобы в процессе свои мысли структурировать для будущих аргументов.
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, и другими инструментами.
Возможно, в статье я забыл какое-то преимущество или минус - кидайте в комментарии, обсудим. Такой формат для меня не привычен, но я постарался, чтобы статья была полезна.
Руководствуясь этими мыслями, я запускаю сервис Авториза - для аутентификации и авторизации пользователей в веб-приложениях и платформах. Сейчас он еще не готов для запуска, но в ближайшее время будет развернута первая версия.
У меня запущена гуглоформа, которая собирает обратную связь, и в которой можно также подписаться на новости.
Отдельно хочу искренне поблагодарить тех, кто уже оставил обратную связь! Ваши отклики и комментарии очень помогают мне
не сдаватьсявыбирать стратегию развития проекта.Я ищу сооснователей - если вы заинтересовались и хотите принять в проекте участие на правах соучредителя, а не за зарплату - я открыт к контактам.
Также проект ищет инвесторов, готовых поучаствовать в его развитии.
Спасибо, что дочитали!
