Мой опыт показал, что этот простой на первый взгляд механизм часто вызывает неожиданные сложности в реализации. Когда в дискуссиях меня начинают спрашивать почему, приходится долго объяснять. Поэтому решил создать эту статью как ликбез, да и чтобы в процессе свои мысли структурировать для будущих аргументов.

TLDR;

Использование IDaaS (SaaS в авторизации и аутентификации пользователей) для систем, не ограниченных контуром предприятия, имеют самую большую эффективность и удобство. В конце статьи будет сравнительная таблица.

Что такое SaaS и IDaaS? (Если вам это не знакомо)

SaaS (Software as a Service) - это модель, в которой программное обеспечение работает в облаке и предоставляется пользователю как готовый сервис.
Инфраструктура, обновления, безопасность, масштабирование и эксплуатация находятся на стороне поставщика, а команда клиента взаимодействует только с функциональностью - через веб-интерфейс или API.

В России к примерам можно отнести такие сервисы как amoCRM или Яндекс 360.
Вместо того чтобы поднимать собственные CRM или офисные пакеты, компании просто подключаются к готовой платформе и пользуются функционалом “из коробки”.

IDaaS (Identity as a Service, частный вариант SaaS) - это облачное решение для управления идентификацией и доступом (IAM), предоставляемое сторонним поставщиком по подписке. Оно обеспечивает безопасный вход (SSO), многофакторную аутентификацию (MFA) и управление пользователями, снижая затраты на инфраструктуру и повышая безопасность.

Давайте разберемся почему так выходит:

Итак, авторизация сейчас реализуется преимущественно в 5 стандартных сценариях (отсортированы по популярности по убыванию).

  1. Использование Open Source

  2. Самостоятельная разработка

  3. Использование корпоративных решений

  4. SaaS-сервисы

  5. Вайб-кодинг

Дисклеймер:

Поскольку использование 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, и другими инструментами.

Возможно, в статье я забыл какое-то преимущество или минус - кидайте в комментарии, обсудим. Такой формат для меня не привычен, но я постарался, чтобы статья была полезна.

Руководствуясь этими мыслями, я запускаю сервис Авториза - для аутентификации и авторизации пользователей в веб-приложениях и платформах. Сейчас он еще не готов для запуска, но в ближайшее время будет развернута первая версия.

У меня запущена гуглоформа, которая собирает обратную связь, и в которой можно также подписаться на новости.

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

Я ищу сооснователей - если вы заинтересовались и хотите принять в проекте участие на правах соучредителя, а не за зарплату - я открыт к контактам.

Также проект ищет инвесторов, готовых поучаствовать в его развитии.

Спасибо, что дочитали!

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Интересен ли вам SaaS для авторизации пользователей?
12.5%Я бы попробовал в следующем или текущем проекте1
0%Сейчас не готов, но понаблюдаю за развитием Авторизы0
0%Не понял о чем речь0
0%Для меня это не подходит, но я могу посоветовать Авторизу другим0
87.5%Не заинтересовался7
Проголосовали 8 пользователей. Воздержавшихся нет.