Skip to main content
  1. Posts/
  2. IAM and IdP Solutions/

Authelia vs Authentik vs Keycloak vs ZITADEL - which one to choose?

··1211 words·6 mins· loading · loading · ·
Stilicho2011
Author
Stilicho2011
Writing about homelab, self-hosting, automation and open-source solutions
Table of Contents
IAM-решения - This article is part of a series.
Part : This Article

Comparing Authelia, Authentik, Keycloak, and ZITADEL
#

If you enjoyed this article, you can support the author by becoming a sponsor on Boosty (link in the contacts section).

Introduction
#

Today we’ll compare four popular solutions for SSO and authorization, in simple terms: authentication and authorization servers - Authelia, Authentik, Keycloak, and Zitadel. If you’re building your own home, or maybe even work, infrastructure and don’t know what to choose - this article/video is for you.

When you deploy several services, especially ones exposed to the outside world - Nextcloud, Plex, really any service - the question arises: how do you centrally manage login, passwords, and access rights? SSO - Single Sign-On - lets you authenticate once and use that access everywhere. And you can also add two-factor auth, LDAP, OAuth2, split up roles, and configure access policies. For a breakdown of exactly how TOTP, WebAuthn, and passwordless login differ and which to choose, I have a separate article.

Authelia vs Authentik vs Keycloak vs ZITADEL - what to choose for authentication and SSO?
#

If you’re building your own infrastructure and looking for a way to implement centralized authentication, two-factor protection, and SSO (Single Sign-On), you’ve most likely run into solutions like Authelia, Authentik, Keycloak, and ZITADEL. They all solve the same problem - access management - but they do it differently and are aimed at different scenarios.

In this article I’ll compare all four tools in detail and suggest which solution best fits your needs: from a simple self-hosted setup to corporate and/or cloud solutions.

We’ll look at 4 open-source solutions. I’ve ordered them alphabetically, but oddly enough, this split also happens to line up with a split in built-in functionality - present in the first pair but absent in the second.


  1. Authelia - simple and strict,
  2. Authentik - beautiful and flexible,
  3. Keycloak - powerful, strict, corporate,
  4. Zitadel - cloud-based, with a modern API.

Authelia
#

Authelia is a self-hosted reverse proxy companion designed to protect web applications with two-factor authentication and access control. Authelia works as a proxy companion, adding security and SSO on top of NGINX, Traefik, or HAProxy.

Authelia leans more toward being a reverse proxy guard. It’s reasonably simple to install, with YAML-based configuration. It works as an intermediate layer between the user and your services. There’s no full-fledged UI for managing users - everything goes through the config. Good fit if you have 5-10 services and want to keep everything in config-as-code.

I covered a step-by-step installation and setup of Authelia in Docker in a separate article.

Key characteristics of Authelia
#

CharacteristicDescription
LanguageGo, React
SSO supportOIDC as a client only (not a full-fledged IdP)
2FATOTP, WebAuthn, Duo (including push notifications)
UILimited (has a web login page, but admin configuration is via YAML)
LDAP/ADYes, for authorization and groups
Reverse-proxy supportFull: Traefik, NGINX, HAProxy
ScalabilityYes, supports Redis, MariaDB/Postgres
Target audienceSelf-hosted homelab environments and small offices

Authentik
#

Authentik is a modern open-source IdP written in Python (Django) that offers full support for OIDC, SAML, SCIM, a UI, and powerful access policies. It’s designed for both home and corporate solutions.

Authentik is a visually pleasant, modular, and flexible solution. Simple to install via Docker, excellent documentation. Supports OAuth2, SAML, LDAP, and many other providers. You can build custom policies, UI flows, and custom login templates.

A detailed review of Authentik’s architecture and capabilities is in a separate article, and step-by-step practical guidance on installation, proxy/OIDC providers, and specific scenarios (invitations, password recovery, 2FA, email notifications, Cloudflare Turnstile) is covered in a series of articles in the SSO category.

Key characteristics of Authentik
#

CharacteristicDescription
LanguagePython (Django)
SSO supportOIDC, SAML (as IdP and SP)
2FATOTP, WebAuthn, Email OTP, Duo, Push, Social Login
UIModern interface
LDAP/ADYes (as a user source)
Workflow / PoliciesYes, visual flows, policies, and more
ScalabilityYes (Docker, Kubernetes, Redis, PostgreSQL support)
Target audienceSelf-hosted, SMB (small and medium business), DevOps

Advantages of Authelia and Authentik
#

Both of these solutions have a built-in web proxy. This means that, integrating seamlessly with a reverse proxy, both solutions can work with applications that have no built-in OIDC mechanism or only support basic HTTP authentication.


Keycloak
#

Keycloak is an enterprise open-source solution from Red Hat, designed for centralized authentication and authorization. It’s one of the most powerful and flexible IdPs on the market, supporting OIDC, SAML, Kerberos, LDAP, and so on.

Keycloak is a genuine beast. Support for practically every protocol and scenario. Used in enterprise projects, but requires significant expertise. Configuration can be cumbersome at times, the interface is overloaded, but this solution really does have everything - just like in Greece.

I covered step-by-step installation, docker-compose configuration, and the first startup with realm creation in a separate article.

Key characteristics of Keycloak
#

CharacteristicDescription
LanguageJava (Quarkus, previously WildFly)
SSO supportOIDC, SAML, Kerberos, Social Login
2FATOTP, SMS, Email OTP, WebAuthn
UIPowerful, but some may find it overloaded and confusing
LDAP/ADYes (broad support)
ExtensibilityYes, via SPI, extensions, and the REST API
ScalabilityExcellent, especially for enterprise
Target audienceLarge enterprise, government institutions

Zitadel
#

ZITADEL is a modern, open-source, cloud-native Identity & Access Management solution developed in Switzerland. Its main focus is on security, developers, DevOps, and multitenancy. Available both as a cloud platform and as a self-hosted solution.

Zitadel is the youngest of the bunch, but already fairly mature. It has both a cloud version and an open-source version for Docker. Very clean and minimalist UI, a modern API and SDK, well-suited for a dev-first approach. Well documented, though there’s still room for improvement. It’s already being actively and widely adopted.

More details on ZITADEL’s installation and architecture are in a separate article.

Key characteristics of ZITADEL
#

CharacteristicDescription
LanguageGo
SSO supportOIDC, SAML, SCIM
2FAWebAuthn, TOTP, SMS, Email
UIModern, minimalist, logical, and pleasant
LDAP/ADOnly with the enterprise subscription (see documentation)
Multi-tenant supportYes (one of its main features)
ScalabilityVery high, cloud-first solution
Target audienceSaaS platforms, DevOps, developers

Overall comparison table
#

CharacteristicAutheliaAuthentikKeycloakZITADEL
Development languageGoPython (Django)Java (Quarkus/WildFly)Go
Installation methodDocker, Kubernetes, BinaryDocker, Kubernetes, BinaryDocker, Kubernetes, ZIP distributionDocker, Kubernetes, Cloud
SSO support (OIDC/SAML)OIDC (as client)OIDC, SAML (IdP and SP)OIDC, SAML, KerberosOIDC, SAML, SCIM
Web UILimitedYes (modern UI)Yes (rich, but complex)Yes (minimalist UI)
2FA / MFA supportTOTP, WebAuthn, DuoTOTP, WebAuthn, Email OTPTOTP, WebAuthn, Email, SMSTOTP, WebAuthn, SMS, Email
LDAP / AD integrationAuthorization via LDAPYes (as a user source)YesEnterprise only
RBAC / ABACVia YAML and policyYes (flow-based)Yes (groups, roles, policies)Yes (RBAC + conditions)
ScalabilityMediumGoodExcellentExcellent
Cloud-readyNoNoPartialYes
Open sourceYes (Apache 2.0)Yes (MIT)Yes (Apache 2.0)Yes (GNU Affero GPL v3.0)

Conclusions
#

Authelia is not a full-fledged IdP; rather it serves as an intermediate authentication layer between the user and the application.

Authentik is actively developed and convenient for self-hosted scenarios with a good UI.

Keycloak is powerful but heavy. Suited for corporate use.

ZITADEL is cloud-oriented but has a self-hosted option, with an emphasis on developers and security.

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

Related