Перейти к основному содержимому
  1. Статьи/

Authelia vs Authentik vs Keycloak vs ZITADEL — Полное сравнение решений для аутентификации и SSO

·996 слов·5 минут· loading · loading · ·
Сравнение Безопасность Self-Hosting
Stilicho2011
Автор
Stilicho2011
Site owner
IAM-решения - This article is part of a series.
Part : This Article

Cравнение Authelia, Authentik, Keycloak и ZITADEL
#

Введение
#

Сегодня мы сравним четыре популярных решения для SSO и авторизации, по простому сервера авторизации и аутентификации: Authelia, Authentik, Keycloak и Zitadel. Если вы создаете свою домашнюю, а может и рабочую, инфраструктуру и не знаете, что выбрать — эта статья/видео для вас.

Когда вы разворачиваете несколько сервисов, в особенности которые доступны из внешнего мира — Nextcloud, Plex, да любой сервис — возникает вопрос: как централизованно управлять входом, паролями и правами доступа? SSO — Single Sign-On — позволяет авторизоваться один раз и использовать доступ везде. А ещё — можно подключить двухфакторку, LDAP, OAuth2, разграничить роли и настраивать политики доступа.

Authelia vs Authentik vs Keycloak vs ZITADEL — Что выбрать для аутентификации и SSO?
#

Если вы строите собственную инфраструктуру и ищете способ централизованной аутентификации, двухфакторной защиты и реализации SSO (Single Sign-On), скорее всего, вы столкнулись с такими решениями, как Authelia, Authentik, Keycloak и ZITADEL. Все они решают одну и ту же задачу — управление доступом, но делают это по-разному и ориентированы на разные сценарии.

В этой статье я подробно сравню все четыре инструмента и подскажу, какое решение лучше подойдет под ваши нужды: от простого self-hosted решения до корпоративных и/или облачных решений.

Мы рассмотрим 4 open-source решения. Я разбил их по алфавиту, но как это не странно, получилось не только разделение по алфавиту, но и по встроенному функционалу, который есть у первой пары, но нет у второй.


  1. Authelia — простая и строгая,
  2. Authentik — красивый и гибкий,
  3. Keycloak — мощный, строгий, корпоративный,
  4. Zitadel — облачный, с современным API.

Authelia
#

Authelia — это self-hosted reverse proxy companion, предназначенный для защиты веб-приложений с помощью двухфакторной аутентификации и контроля доступа. Authelia работает как прокси-компаньон, добавляя безопасность и SSO поверх NGINX, Traefik или HAProxy.

Authelia — это больше как reverse proxy guard. Устанавливается в меру просто, конфигурация — через YAML. Работает как промежуточный слой между пользователем и вашими сервисами. Нет полноценного UI для управления пользователями — всё через конфиг. Подходит, если у вас 5–10 сервисов и вы хотите всё держать в конфиге как код.

Основные характеристики Authelia
#

ХарактеристикаОписание
ЯзыкGo, React
Поддержка SSOТолько OIDC как клиент (не является полноценным IdP)
2FATOTP, WebAuthn, Duo, Push, Social Login
UIОграниченный (есть веб-страница входа, а админ-конфигурация через YAML)
LDAP/ADДа, для авторизации и групп
Поддержка reverse-proxyПолная: Traefik, NGINX, HAProxy
МасштабируемостьДа, поддержка Redis, MariaDB/Postgres
Целевая аудиторияSelf-hosted homelab окружение и малый офис

Authentik
#

Authentik — это современный open-source IdP, написанный на Python (Django), который предлагает полноценную поддержку OIDC, SAML, SCIM, UI-интерфейс и мощные политики доступа. Он предназначен как для домашних, так и корпоративных решений.

Authentik — визуально приятное, модульное и гибкое решение. Простая установка через Docker, отличная документация. Поддерживает OAuth2, SAML, LDAP, и много других провайдеров. Можно делать кастомные policy, UI-потоки, кастомные шаблоны входа.

Основные характеристики Authentik
#

ХарактеристикаОписание
ЯзыкPython (Django)
Поддержка SSOOIDC, SAML (как IdP и SP)
2FATOTP, WebAuthn, Email OTP, Duo, Push, Social Login
UIСовременный интерфейс
LDAP/ADДа (в роли источника пользователей)
Workflow / PoliciesДа, визуальные потоки политики и не только
МасштабируемостьДа (Docker, Kubernetes, поддержка Redis, PostgreSQL)
Целевая аудиторияSelf-hosted, SMB (малый, средний бизнес), DevOps

Плюсы Authelia и Authentik
#

Оба этих решения имеют встроенный web proxy. Это означает, что бесшовно интегрируясь с обратным прокси, оба этих решения могут работать с приложениями, которые не имеею встроенного механизма OIDC или имеют только базовую http аутентицикацию


Keycloak
#

Keycloak — это корпоративное open-source решение от Red Hat, предназначенное для централизованной аутентификации и авторизации. Это один из самых мощных и гибких IdP на рынке с поддержкой OIDC, SAML, Kerberos, LDAP и так далее.

Keycloak — настоящая махина. Поддержка всех возможных протоколов и сценариев. Используется в enterprise-проектах, но требует значительных знаний. Настройка порой громоздкая, интерфейс перегружен, но это приложение может все, прям как в Греции.

Основные характеристики Keycloak
#

ХарактеристикаОписание
ЯзыкJava (Quarkus, раньше WildFly)
Поддержка SSOOIDC, SAML, Kerberos, Social Login
2FATOTP, SMS, Email OTP, WebAuthn
UIМощный, но кому-то покажется перегруженным и нелогичным
LDAP/ADДа (широкая поддержка)
РасширяемостьДа, через SPI, расширения и REST API
МасштабируемостьОтличная, особенно для enterprise
Целевая аудиторияКрупный enterprise, государственные учреждения

Zitadel
#

ZITADEL — это современный cloud-native Identity & Access Management с открытым исходным кодом, разработанный в Швейцарии. Основной фокус — безопасность, разработчики, DevOps и multitenancy. Доступна как облачная платформа и self-hosted решение.

Zitadel — самое молодое, но уже достаточно зрелое решение. Имеет как облачную, так и open-source версию для Docker. Очень чистый и минималистичный UI, современный API и SDK, хорош для dev-first подхода. Отлично документирован, хотя есть над чем работать. Уже активно и широко используется.

Основные характеристики ZITADEL
#

ХарактеристикаОписание
ЯзыкGo
Поддержка SSOOIDC, SAML, SCIM
2FAWebAuthn, TOTP, SMS, Email
UIСовременный, минималистичный, логичный и приятный
LDAP/ADТолько в enterprise-подписке (см. документацию)
Поддержка multi-tenantДа (одна из главных фич)
МасштабируемостьОчень высокая, cloud-first решение
Целевая аудиторияSaaS-платформы, DevOps, разработчики

Общая сравнительная таблица
#

ХарактеристикаAutheliaAuthentikKeycloakZITADEL
Язык разработкиGoPython (Django)Java (Quarkus/WildFly)Go
Метод установкиDocker, Kubernetes, BinaryDocker, Kubernetes, BinaryDocker, Kubernetes, ZIP-дистрибутивDocker, Kubernetes, Cloud
Поддержка SSO (OIDC/SAML)OIDC (как клиент)OIDC, SAML (IdP и SP)OIDC, SAML, KerberosOIDC, SAML, SCIM
Web UIОграниченныйДа (современный UI)Да (богатый, но сложный)Да (минималистичный UI)
Поддержка 2FA / MFATOTP, WebAuthn, DuoTOTP, WebAuthn, Email OTPTOTP, WebAuthn, Email, SMSTOTP, WebAuthn, SMS, Email
LDAP / AD интеграцияАвторизация через LDAPДа (в роли источника пользователей)ДаТолько в Enterprise
RBAC / ABACЧерез YAML и policyДа (flow-based)Да (группы, роли, политики)Да (RBAC + conditions)
МасштабируемостьСредняяХорошая,ОтличнаяОтличная
Cloud-readyНетНетУсловноДа
Открытый исходный кодДа (Apache 2.0)Да (MIT)Да (Apache 2.0)Да (GNU Affero GPL v3.0)

Выводы
#

Authelia — не является полноценным IdP, а скорее промежуточным слоем аутентификации между пользователем и приложением.

Authentik — активно развивается и удобен для self-hosted сценариев с хорошим UI.

Keycloak — мощный, но тяжёлый. Подходит для корпоративного использования.

ZITADEL — ориентирован на облако, но имеет self-hosted вариант, с акцентом на разработчиков и безопасность.

IAM-решения - This article is part of a series.
Part : This Article