tgoop.com/rdclr_dev/159
Last Update:
Авторизация, идентификационные брокеры
Как часто происходит: при работе над проектом, начинающие разработчики создают, к примеру, сущность User и сохраняют ее в базе данных, ставят пароль с шифрованием либо с использованием какого-то хэша. Со временем проекты приходится расширять, добавляя новые, это требует бесшовного перехода пользователей из одного приложения в другое.
🔸На ум приходит первое решение: написать сервис и дать доступ к базе, где хранятся наши юзеры — получим единый сервер авторизации для разных проектов под одним аккаунтом. А можно копнуть чуть глубже и посмотреть на Keycloak.
💡Почему Keycloak? Это продукт с открытым исходным кодом, предназначенный для идентификации и контроля доступа.
Keycloak версий 16.0 и ниже использует сервер WildFly, но начиная с версии 17.0.0 Keycloak перешел на Quarkus и стал самостоятельным фреймворком. Более подробно можно почитать здесь.
🙌🏻 Keycloak предлагает:
- единый вход (SSO)
- брокерскую идентификацию и вход в систему
- управление пользователями
- клиентские адаптеры
- консоль администратора и консоль управления учетными записями
А ещё с его помощью для каждого приложения можно быстро и гибко разграничивать доступ, выдавать различные поля, роли и атрибуты для пользователей. Все это легко и просто — без больших затрат на разработку.
👾Из основного функционала стоит выделить:
- Single-Sign On and Single-Sign Out для браузерных приложений.
- Поддержку OpenID/OAuth 2.0/SAML.
- Identity Brokering — это аутентификация с помощью внешних OpenID Connect или SAML идентификационных провайдеров.
- Social Login – поддержку Google, GitHub, Facebook, Twitter для идентификации пользователей.
- Кастомизацию решения на основе фирменного стиля компании.
- Login Flows — возможна саморегистрация пользователей, восстановление и сброс пароля и прочее.
- Session Management — администраторы могут управлять из единой точки сессиями пользователей.
- Token Mappers — это привязка атрибутов пользователей, ролей и иных требуемых атрибутов в токены.
- Гибкое управление политиками через realm, application и пользователей.
- Service Provider Interfaces (SPI) — большое количество SPI, позволяющих настраивать различные аспекты работы сервера: потоки аутентификации, идентификационных провайдеров, сопоставление протоколов и многое другое.
🔥Как итог — с помощью Keycloak мы можем быстро настроить единый сервер для регистрации/авторизации пользователей и кастомизировать все с наименьшими затратами ресурсов.
BY RDCLR.DEV
Share with your friend now:
tgoop.com/rdclr_dev/159