
Ferrum Community Authorization Server
Введение:
Ferrum Community Authorization Server — Российский (создан российской компанией ООО «Висанс») сервер авторизации с открытым исходным кодом, совместимый по API с Keycloak, написан на Golang, отличающийся от Keycloak и других серверов авторизации значительно более простой настройкой и установкой, более высокой производительностью и возможностью обслуживать большее количество клиентов параллельно. Известная практика среди российских компаний в погоне за наживой взять и форкнуть проект с открым исходным кодом, поменять копирайты и вуаля отечественное ПО готово, Ferrum был спроектирован основываясь на другом подходе, написать решение с нуля не перетягивая в наше решение все ошибки и проблемы, кроме этого наше решение полностью открытое, любой желающий может посмотреть код и увидеть, что это абсолютно собственное решение, выстроенное в соотвествие с нашей философией.
Особенности:
Ferrum Community Authorization Server развивался изначально как вспомогательный продукт для решения вопроса интеграционного тестирования многокомпонентного решения в области ИБ, но позже стало понятно, что это полностью самомстоятельный продукт. Ключевые технические особенности Ferrum:
- возможность использования простого хранилища в виде файла с данными для не больших систем (т.е., в ситуациях где нет необходимости развертывать отдельные хранилища данных).
- возможность использовать Ferrum c любым ханилищем данных (на текущий момент основное продакшен хранилище — Redis), расширение осуществляется достаточно не сложно.
- возможность создавать разную структуру данных у пользователей (у объекта User нет четкой структуры, поэтому отдельные пользователи могут иметь разный набор данных, передаваемых через UserInfo)
- отсутствие зависимостей при запуске, результат сборки — 1 файл размером ~40 Мб, кроме этого файла и фала конфигурации больше ничено не нужно.
- небольшое потребление ресурсов, запущенный Ferrum потребляет ~ 25 Мб ОЗУ в то время как, Keycloak — 100-200 Мб, OpenAM не запустится без 1 Гб минимум, а это в свою очередь говорит о том, что Ferrum спроектирован для работы с большим количеством пользователей.
- возможность встраивания сервера авторизации в код любого Go-приложения и запуска сервера авторизации одновременно с этим приложением.
Стоимость лицензии:
Ferrum Community Authorization Server создан с линезией Apache 2.0, что позволяет его использовать без каких-либо ограничений в коммерческих продуктах абсолютно бесплатно.
Репозиторий исходного кода:
Исходный код Ferrum Community Authorization Server хранится в нескольких разных сервисах:
- В Github-репозитории нашего Github акканта организации
- На внутреннем Gitlab-сервере организации но с возможностью публичного доступа к коду и документации
Документация
Краткое описание функциональных возможностей приведено ниже, однако полноценная документация приведена в Wiki проекта на внутренем Gitlab, см. ссылку.
Функциональные возможности Ferrum Community Authorization Server
- Возможность аутентификации с использованием JWT-токенов
- Возможность обновления (refresh) токена
- Получение информации (userinfo) о пользователе по его токену
- Возможность использования авторизации пользователей в приложениях на основе данных в userinfo и принадлежности пользователей к определенным ролям
- Наличие возможности для подключения Federated-пользователей (LDAP)