Альтернативы: Keycloak или Authoriza?
Если вы выбираете систему аутентификации для нового проекта, скорее всего вы уже слышали о Keycloak.
Это один из самых известных open source серверов идентификации с поддержкой OAuth 2.0, OpenID Connect и SAML. Его используют тысячи компаний по всему миру — от небольших стартапов до крупных корпораций.
Мы в Authoriza не считаем Keycloak плохим решением.
Наоборот.
Во многих сценариях именно Keycloak является правильным выбором.
Но существуют задачи, для которых он оказывается слишком сложным или требует значительно больше времени на внедрение и поддержку.
Эта статья поможет понять разницу между двумя подходами.
Что такое Keycloak
Keycloak — это полноценная система управления идентификацией (Identity and Access Management).
Она включает в себя:
- OpenID Connect
- OAuth 2.0
- SAML
- LDAP/Active Directory
- Federation
- Identity Brokering
- MFA
- RBAC
- User Management
- Administration Console
- десятки вариантов интеграции
Фактически это целая IAM-платформа.
Если вашей организации действительно нужен такой уровень возможностей — Keycloak является отличным выбором.
Что такое Authoriza
Authoriza — это облачный сервис аутентификации.
Его задача значительно уже.
Он не пытается стать корпоративной IAM-системой.
Вместо этого Authoriza решает одну конкретную задачу:
добавить современную авторизацию в приложение за минимальное время.
В основе лежит OpenID Connect, поэтому приложение взаимодействует со стандартным Identity Provider и не зависит от специфики реализации.
Разные философии
Несмотря на поддержку одинаковых стандартов, продукты создавались для разных пользователей.
| Keycloak | Authoriza |
|---|---|
| Универсальная IAM-платформа | SaaS для разработчиков |
| Максимум возможностей | Минимум инфраструктуры |
| Самостоятельное размещение | Готовый облачный сервис |
| Настройка и сопровождение | Подключение за несколько минут |
Нельзя сказать, что один подход лучше другого.
Они просто отвечают на разные вопросы.
Когда стоит выбрать Keycloak
Keycloak подойдет, если:
- необходимо полностью контролировать инфраструктуру;
- существуют требования к размещению исключительно внутри периметра компании;
- используется LDAP или Active Directory;
- требуется SAML;
- нужна федерация внешних Identity Provider;
- необходимы сложные корпоративные сценарии управления пользователями;
- в компании уже есть специалисты по сопровождению Keycloak.
Во всех этих случаях Keycloak остается одним из лучших решений.
Когда стоит выбрать Authoriza
Authoriza создавалась для другой аудитории.
Она подойдет, если вы хотите:
- не заниматься сопровождением собственного Identity Provider;
- получить OpenID Connect без настройки серверов;
- быстро подключить авторизацию в MVP или SaaS;
- использовать единый сервис сразу для нескольких проектов;
- уменьшить объем персональных данных внутри приложений;
- использовать современный стандарт без глубокого изучения IAM.
Стоимость владения
Сам Keycloak распространяется бесплатно.
Но на эксплуатацию собственного Identity Provider требуются иные ресурсы.
Даже небольшой проект с Keycloak требует:
- управление безопасностью и защищенностью;
- управлять доступностью и быстродействием;
- управлять качеством и разработкой;
- юридическое и регуляторное соответствие;
- сопровождения базы данных.
С точки зрения инфраструктуры, для KeyCloak нужно:
- развернуть сервер;
- настроить базу данных;
- организовать резервное копирование;
- следить за обновлениями безопасности;
- выполнять миграции;
- мониторить доступность сервиса.
Эти задачи появляются независимо от того, насколько часто пользователи входят в систему.
Для многих компаний это привычная работа.
Но если команда состоит из нескольких разработчиков, поддержка инфраструктуры может занимать непропорционально много времени.
Authoriza переносит эту ответственность на себя. Вам остается только интеграция через OpenID Connect.
Интеграция
С точки зрения приложения различия минимальны.
И Keycloak, и Authoriza являются OpenID Connect Provider.
Если используется стандартная библиотека OpenID Connect, переход между ними обычно требует изменения конфигурации, а не переписывания приложения.
Это одна из причин, почему мы сознательно строим Authoriza вокруг открытых стандартов.
Что получает разработчик
Используя Authoriza, разработчик получает:
- полноценный OpenID Connect Provider;
- готовые страницы входа;
- единый аккаунт для нескольких приложений;
- поддержку современных OAuth 2.0 flow;
- отсутствие привязки к нестандартным API;
- возможность заменить Identity Provider в будущем без переписывания приложения.
Главная идея проста — использовать открытые стандарты и не создавать зависимости от конкретной платформы.
Работа с пользователями
Один из принципов Authoriza — приложение не должно хранить больше персональных данных, чем ему действительно необходимо.
Поэтому каждый клиент получает собственный идентификатор пользователя.
Это позволяет уменьшить связанность между различными сервисами и снизить объем обрабатываемых персональных данных.
Для многих SaaS-продуктов это оказывается удобнее классической модели хранения пользователей.
Производительность команды
Самая большая разница между продуктами проявляется не в технологиях.
Она проявляется в количестве времени, которое команда тратит на поддержку системы аутентификации.
Если аутентификация — это лишь одна из функций вашего продукта, зачастую хочется просто подключить ее и больше не возвращаться к этому вопросу.
Именно для этого существует Authoriza.
Можно ли перейти с Keycloak?
Да.
Если ваше приложение использует стандартный OpenID Connect, миграция обычно сводится к смене Identity Provider и перенастройке клиента.
Именно поэтому использование открытых стандартов настолько важно.
Они позволяют выбирать инструмент исходя из текущих задач, а не зависеть от конкретного поставщика.
Если вам дополнительно требуется перенести пользователей, обратитесь к статье Планируемый переход на Авторизу
Что выбрать?
Выбирайте Keycloak, если вам нужна полноценная корпоративная IAM-платформа и вы готовы самостоятельно сопровождать инфраструктуру.
Выбирайте Authoriza, если вам нужен современный OpenID Connect сервис, который позволяет сосредоточиться на разработке продукта, а не на эксплуатации системы аутентификации.
Оба решения решают одну и ту же задачу.
Просто делают это по-разному.
| Если вам важно | Обычно выбирают |
|---|---|
| Полный контроль над инфраструктурой | Keycloak |
| Корпоративная IAM | Keycloak |
| LDAP и Active Directory | Keycloak |
| Быстро подключить авторизацию | Authoriza |
| Делегировать аутентификацию и не сопровождать самостоятельно | Authoriza |
| Запустить MVP за несколько дней | Authoriza |
| Минимизировать персональные данные | Authoriza |
| Использовать только OpenID Connect | Оба решения |
Нужна помощь с выбором?
Если вы только начинаете проект или планируете миграцию с Keycloak, мы готовы помочь оценить оба варианта.
Мы не будем убеждать вас переходить на Authoriza любой ценой.
Если после обсуждения окажется, что Keycloak лучше соответствует вашим требованиям — мы честно об этом скажем.
Наша цель — помочь выбрать решение, которое прослужит вашему проекту несколько лет, а не просто подключить еще одного клиента.