
IT-инженер Скотт Чанг сравнил Keycloak и Dex и поделился своими мыслями об этих решениях. Ниже — перевод заметки из блога Скотта на «Медиуме».
Keycloak и Dex — это популярные поставщики OpenID Connect (OIDC) для Kubernetes, поддерживаемые Red Hat.
Я развёртывал и использовал оба решения в среде Kubernetes, так что могу их сравнить.
Keycloak поддерживает те же возможности, что и Dex:
-
Поставщик OIDC.
-
Синхронизация пользователей с Github/SAML/LDAP.
-
Стандартные области OIDC.
-
API.
-
Стабильный Helm-чарт.
Но Keycloak умеет больше:
-
Кастомные области/заявки (claim)
Dex предоставляет несколько нестандартных заявок, но они не кастомизированы. С Keycloak можно вставлять любую пару ключ-значение в атрибут пользователя и включать в токен пользователя как кастомную заявку. -
REST API
Dex поддерживает только gRPC API. Keycloak поддерживает REST API с хорошей документацией. -
Федерация LDAP с синхронизацией групп/пользователей
Dex поддерживает коннектор LDAP для аутентификации с помощью сервера LDAP. Keycloak идёт ещё дальше и синхронизирует пользователей и группы LDAP локально для авторизации. -
Авторизация через локальную роль
Keycloak использует локальную базу данных пользователей, поэтому может настраивать роли для авторизации. -
Пользовательский веб-интерфейс
Управлять Keycloak можно через пользовательский веб-интерфейс. Очень удобно. -
Встроенные логи событий
Keycloak показывает в веб-интерфейсе логи событий — для аудита и диагностики. -
Realm
Используя функцию realm в Keycloak, администраторы могут создавать изолированный виртуальный контекст OIDC. При этом можно одновременно предоставлять сервисы OIDC с другим методом аутентификации через бэкенд. -
Тема
Для веб-интерфейса можно выбрать тему. -
Кастомные потоки входа
Keycloak поддерживает кастомные потоки аутентификации для настройки разных потоков для разных клиентов OIDC. -
2FA — TOTP через Google Authenticator или Free OTP
Keycloak поддерживает TOTP для подключения к разным поставщикам OTP. -
Клиентские адаптеры для приложений JavaScript.
-
Автоматическая аутентификация через сервер Kerberos.
Выбор за вами
Dex — этой простой в использовании и настройке поставщик OIDC. Keycloak — это сервис управления идентификацией и доступом (IAM) с базой данных (PostgreSQL, MySQL, MariaDB, H2) для хранения данных о пользователях и группах. Этой базой данных придётся управлять.
Всё зависит от ваших требований и инфраструктуры.
Если у вас уже есть поставщик идентификации (AD, SAML, Github и т. д.) и вам нужен просто интерфейс OIDC для связи приложений с централизованным сервисом, выбирайте Dex.
Если вам нужны кастомные заявки от поставщика OIDC, вы хотите заменить поставщика идентификации и автоматизировать процессы, вам подойдёт Keycloak с поддержкой REST API.
От редакции
И Keycloak, и Dex могут выступать провайдерами аутентификации Kubernetes, при связки с вашим LDAP-сервером и настраивать импорт пользователей и групп.
Это позволит настраивать RBAC для ваших пользователей и использовать auth-proxy, чтобы защитить Kubernetes Dashboard и другие приложения, которые не умеют производить авторизацию самостоятельно.
Курс по Keycloak: https://slurm.club/3x85RdJ
Курс по Kubernetes: https://slurm.club/3Kn57Fr
ссылка на оригинал статьи https://habr.com/ru/company/southbridge/blog/659697/
Добавить комментарий