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

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

·996 слов·5 минут· loading · loading · · Черновик
Сравнение Безопасность Self-Hosting
Stilicho2011
Автор
Stilicho2011
Blog owner
SSO - 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)
2FA TOTP, 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)
Поддержка SSO OIDC, SAML (как IdP и SP)
2FA TOTP, 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)
Поддержка SSO OIDC, SAML, Kerberos, Social Login
2FA TOTP, 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
Поддержка SSO OIDC, SAML, SCIM
2FA WebAuthn, TOTP, SMS, Email
UI Современный, минималистичный, логичный и приятный
LDAP/AD Только в enterprise-подписке (см. документацию)
Поддержка multi-tenant Да (одна из главных фич)
Масштабируемость Очень высокая, cloud-first решение
Целевая аудитория SaaS-платформы, DevOps, разработчики

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

Характеристика Authelia Authentik Keycloak ZITADEL
Язык разработки Go Python (Django) Java (Quarkus/WildFly) Go
Метод установки Docker, Kubernetes, Binary Docker, Kubernetes, Binary Docker, Kubernetes, ZIP-дистрибутив Docker, Kubernetes, Cloud
Поддержка SSO (OIDC/SAML) OIDC (как клиент) OIDC, SAML (IdP и SP) OIDC, SAML, Kerberos OIDC, SAML, SCIM
Web UI Ограниченный Да (современный UI) Да (богатый, но сложный) Да (минималистичный UI)
Поддержка 2FA / MFA TOTP, WebAuthn, Duo TOTP, WebAuthn, Email OTP TOTP, WebAuthn, Email, SMS TOTP, 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 вариант, с акцентом на разработчиков и безопасность.

SSO - This article is part of a series.
Part : This Article