Keycloak vs authentik

Keycloak suits enterprise SSO with SAML, federation and a Kubernetes Operator; authentik suits smaller teams that want LDAP, RADIUS and proxy providers in an MIT core. Here is how to decide.

On this page

Keycloak or authentik: when each one fits

Keycloak fits enterprise workforce SSO and broad SAML and federation needs under Apache-2.0, while authentik fits teams that need LDAP, RADIUS or proxy providers on a lighter footprint with an MIT core. The decision turns on four questions: which paid features your organization would need from authentik's enterprise directory, whether your team has Kubernetes or Helm skills for the chosen install path, how comfortable your database operators are with the backing store, and which protocols your legacy estate actually speaks. If your estate needs SAML to many applications and federation to an existing Active Directory, Keycloak covers that in the community distribution. If a set of older applications can only bind to LDAP or sit behind a reverse proxy, authentik's provider types cover those cases directly.

Licensing is where teams most often get surprised. authentik's core is MIT licensed, but the code under authentik/enterprise needs a paid subscription for production use, and features such as Microsoft Entra ID and Google Workspace integrations, mTLS client certificate authentication and enhanced audit logging sit on that side of the line. Confirm with the authentik pricing page which features your use case depends on before you assume the MIT core is enough. Keycloak's Apache-2.0 license covers the server itself, so the cost of a community deployment is the infrastructure, the database and the people who run it. Ask any vendor or partner quoting either route to separate the license cost, the subscription cost and the implementation cost in writing.

Which platform fits which scenario

This table maps common Keycloak and authentik scenarios to the platform that fits better and the condition that makes it so. Read each row against your own protocols, directory sources and team size, because the better fit often flips when one requirement changes. The main takeaway is that Keycloak leads on enterprise SAML and federation depth, while authentik leads on breadth of providers such as LDAP, RADIUS and reverse-proxy protection in a smaller footprint.

ScenarioBetter fitCondition under which it holds
Enterprise workforce SSO with SAML and federated directoriesKeycloakYou need SAML 2.0 for many applications and LDAP or Active Directory federation as a core design, and you can run a relational database in production.
Small IT team running one SSO hubauthentikA few people will operate it, you want OIDC, SAML and LDAP from one web console, and you accept that Enterprise features such as Microsoft Entra ID integration need a paid subscription.
Legacy apps that only speak LDAP or RADIUSauthentikThe applications need to bind to an LDAP endpoint or authenticate over RADIUS, since authentik provides LDAP and RADIUS providers; confirm the exact bind and search behavior your apps require.
Reverse-proxy protection for internal web appsauthentikYou want a proxy provider to gate apps that have no native login, and you are comfortable with authentik's embedded outpost model; confirm the proxy setup against your ingress or reverse proxy.
Kubernetes-first platform teamKeycloakYou want a Keycloak Operator managing Keycloak and client resources through Operator Lifecycle Manager or kubectl, and you will supply the external database yourself; manual approval mode is the Operator documentation's recommendation for updates.
Lean Kubernetes or Docker estate with minimal moving partsauthentikYou prefer a server container, a worker container and PostgreSQL, with no Redis since the 2025.10 release, and you accept that scaling and HA design must be confirmed for your environment.
Licensing that must stay fully open source in productionKeycloakYour policy requires Apache-2.0 for the whole server, because authentik's code under its enterprise directory is under a separate license and needs a paid subscription for production use.
Multi-site high availability with synchronous database replicationKeycloakYou plan to follow Keycloak's documented single-cluster or multi-cluster v2 designs, which require a synchronously replicated database; confirm the topology with your database team before committing.

How Keycloak and authentik are built and deployed

Both servers store their state in a relational database, but they reach high availability and upgrades differently. Keycloak asks you to design the database, cluster and load balancer yourself, while authentik ships a small set of containers with fewer moving parts. The cards below cover what each architecture asks your team to run after the first install.

Keycloak needs a relational database

Keycloak requires a relational database in production, and its default dev-file database is not suitable for production. Supported engines include PostgreSQL 14 to 18, MariaDB, MySQL, Microsoft SQL Server, Oracle Database and Amazon Aurora PostgreSQL. You provision, back up and patch that database, so confirm which engine your DBA team already runs and who owns its restores.

Keycloak's three high availability designs

Keycloak documents a single cluster that can span availability zones, a multi-cluster v2 design without an external Infinispan cluster, and the deprecated multi-cluster v1 design. Both supported designs need a synchronously replicated database, so the database choice shapes your failover plan. Plan the external load balancer and test failover before go-live, not after an outage.

Keycloak Operator install paths

The Keycloak Operator installs through Operator Lifecycle Manager, which Keycloak recommends, or with kubectl. An experimental Helm chart also exists. The Operator documentation strongly recommends manual approval mode for operator updates, which keeps upgrades under your change control. Note that the Operator manages Keycloak and client resources, while the database remains your responsibility.

authentik's three-part deployment

A typical authentik deployment runs a server container with an embedded outpost, a worker container for background tasks, and PostgreSQL, which holds all configuration and data except uploaded files. The footprint is smaller than a Keycloak HA design, but you still own the database and the upgrade path. Check how your container platform handles the worker and outpost connectivity before you rely on it.

authentik dropped Redis in 2025.10

The authentik 2025.10 release removed Redis entirely and moved caching, tasks, sessions and WebSocket functions to PostgreSQL. The release notes warn of roughly 50% more PostgreSQL connections after upgrading. If you size connection pools or run a managed database with connection limits, review that warning before you upgrade to any release on or after 2025.10.

Day-two operations compared

Keycloak day-two work centers on cluster health, database failover, and controlled minor upgrades, with schema migration at startup by default or applied manually for large deployments. authentik day-two work centers on PostgreSQL capacity, worker health and fast-moving monthly releases with security fixes announced at least 24 hours ahead. Ask any vendor or partner for a written runbook covering both.

Protocol coverage, deployment and extensibility compared

This table compares how Keycloak and authentik cover protocols, user sources, packaging and release cadence. Read each row as a question to answer for your own applications, since a listed protocol does not guarantee the direction, scope or support level you need.

CapabilityKeycloakauthentik
OIDC, OAuth 2.0 and SAML 2.0Supports OpenID Connect, OAuth 2.0 and SAML 2.0 as identity provider protocols, the core of most enterprise SSO useProvides OAuth2 and OpenID Connect and SAML providers; confirm SAML feature depth against your applications
LDAPFederates users from LDAP or Active Directory, so Keycloak reads an existing directoryLDAP provider exposes authentik users to LDAP-only applications; confirm this is the direction your legacy apps need
RADIUSNot listed among Keycloak's documented protocols; confirm with the vendor if RADIUS is requiredProvides a RADIUS provider in its documented provider types
Proxy and header-based accessNot a documented provider type; use an OIDC or SAML client or a separate proxyProvides a proxy provider for applications without native SSO; confirm fit for your apps
SCIM and provisioningConfirm SCIM support and version in the Keycloak documentation before relying on itLists SCIM among documented provider types; confirm the direction and scope for your targets
Brokering and user federationBrokers logins to external OIDC or SAML providers and federates users from LDAP or Active DirectoryConfirm brokering and upstream source options in the providers documentation for your identity sources
Admin consoleIncludes an admin console for realms, clients and users, bundled with the serverProvides a web administration interface; confirm the scope of delegated administration for your team
Kubernetes packagingKeycloak Operator installed through Operator Lifecycle Manager or kubectl; the database remains your responsibilityDeployment documented for Kubernetes; the server and worker containers and PostgreSQL are the components to run
Supported databasesPostgreSQL 14 to 18, MariaDB, MySQL, Microsoft SQL Server, Oracle Database and Amazon Aurora PostgreSQL in productionStores configuration and data in PostgreSQL; PostgreSQL is the database to plan for
Release cadenceFour minor releases a year planned since Keycloak 26.0, with breaking changes in minor releases opt-inVersions named by year and month; security policy covers the 2026.5.x and 2026.8.x lines

What the Apache-2.0 and MIT licenses cover, and what is paid

Keycloak is an open source identity and access management server licensed under Apache-2.0, and the project is a Cloud Native Computing Foundation incubating project. The facts supplied for this page do not describe a paid Keycloak edition, so the license terms in the repository are the starting point for your review. Your costs are the infrastructure, the database, the people who run and upgrade the server, and any support contract you buy from a third party.

  • License scope: The Apache-2.0 license in the keycloak/keycloak repository applies to the server code you deploy, so you can run, modify and redistribute it under those terms.
  • Current release: Keycloak 26.8.1 is the current release, published October 13, 2026, according to the GitHub releases page.
  • Release cadence: The project plans four minor releases a year and says breaking changes in a minor release will be opt-in, so your upgrade work follows that schedule.
  • Support is separate: Community releases come without a vendor support contract, so any commercial support is a choice you make outside the license.
  • Red Hat build: Red Hat supplies a separate supported distribution, covered in the last tab.

Before you commit, confirm with your legal team whether the Apache-2.0 terms match your redistribution and modification plans, and confirm with the vendor that no paid edition applies to your use.

What drives running cost on each platform

Running Keycloak and authentik costs more in people and infrastructure than in license fees, so the figures that matter are database capacity, the containers you run, and who on your team can operate them. Each card separates one-time setup from recurring spend and names what to request in a written quote.

Database sizing and high availability

Keycloak needs a relational database in production, and its documented high availability designs both depend on a synchronously replicated database. authentik stores all configuration and data in PostgreSQL. Both put the database on your recurring bill as a managed service, a replica set or a licensed engine, so ask who provisions, backs up and patches it. Also confirm whether your chosen database engine carries its own license or support cost.

Container footprint per platform

An authentik deployment runs a server container with an embedded outpost and a separate worker container, both backed by PostgreSQL. Keycloak runs as a server distribution that scales as a cluster behind a load balancer. Count the containers, the load balancer, the database replicas and the monitoring stack for each environment, including staging and disaster recovery. Docker Compose suits test setups and small production, so plan for the move to a cluster platform if usage grows.

Skills needed to operate each platform

Keycloak on Kubernetes is managed through the Keycloak Operator, which needs the Operator Lifecycle Manager or kubectl, so your team needs Kubernetes operating skills in addition to Keycloak administration. authentik runs on Docker Compose for smaller setups or Kubernetes for larger ones. The cost is the time your engineers spend learning and maintaining the chosen route, which recurs as long as the platform runs. Ask the vendor or partner which skills their estimate assumes.

Upgrade cadence and Operator approval mode

Keycloak plans four minor releases a year and states that breaking changes in a minor release are opt-in. The Keycloak Operator documentation strongly recommends manual approval mode for operator updates, which means someone must review and apply each upgrade. authentik publishes security releases with at least 24 hours of notice and supports only certain version lines for security fixes. Budget recurring staff time for testing and applying upgrades on both platforms.

Authentik enterprise subscription fees

authentik core is MIT licensed, but the enterprise directory requires a paid subscription for production use. The published Enterprise edition price is $5 per user per month billed annually plus $0.02 per external user per month, and Enterprise Plus starts at $20k annually. Those fees recur every year and grow with the user count. Keycloak's Apache-2.0 license carries no subscription fee, though support from a vendor is a separate cost. Ask which features your use case needs from the paid tier before you commit.

Support and quote requests

Support is the recurring cost most often missed. authentik's paid tiers include ticket-based support and, at the top tier, dedicated support with SLAs. Keycloak support is available through a commercial distribution or a partner. One-time costs include design, deployment and migration, while recurring costs include upgrades, monitoring and on-call coverage. Request a written quote that separates setup, annual subscriptions, support hours and retainers, and that states the assumed database and cluster sizes.

Moving between Keycloak and authentik

This sequence turns a Keycloak estate into a tested authentik deployment with every relying party re-registered, validated and cut over in a controlled order. It also shows where the work is manual, so the migration can be scoped in writing before any cutover date is set.

  1. Inventory clients, protocols and user sources

    List every Keycloak realm, client, identity brokering link, user federation provider and protocol in use, including OpenID Connect, OAuth 2.0, SAML 2.0 and any LDAP or Active Directory federation. Record which applications depend on each client, who owns them and which ones need features authentik documents differently, such as SAML, LDAP or proxy providers. The step is done when every application has one owner and one protocol recorded in a shared inventory.

  2. Map realms and clients to authentik objects

    Translate each Keycloak realm into the authentik construct that fits its job, then map each client to an authentik provider and application pair. Decide which authentik flows, policies and groups will replace Keycloak authentication flows and role mappings, and note where a Keycloak realm role has no one-to-one equivalent. The step is done when a written mapping table exists and the platform owner has signed off on each row.

  3. Export or federate users into authentik

    Decide per user source whether to export and recreate accounts in authentik or to keep the existing directory as the source of truth and federate from it. Confirm with the vendor which export or import tooling is supported for your Keycloak version and authentik release, because a generic export is not a guaranteed path. Password hashes, MFA enrollments and account attributes often need separate handling, so test a sample of accounts before any bulk move. The step is done when a test cohort logs in successfully and the remaining users have a documented migration path.

  4. Re-register each relying party

    Create a new client or provider in authentik for each application, with fresh client identifiers and secrets, redirect URIs and signing settings copied from the mapping table. Client secrets do not transfer from Keycloak, so each application owner must update its configuration and secret store. Custom protocol mappers and token claims also need rebuilding as authentik property mappings and tested against what each application reads. The step is done when every application completes a login and receives the expected claims in a non-production environment.

  5. Test authorization and session behavior

    Verify group and role-based access, logout propagation, token lifetimes and step-up or MFA prompts against the mapping table rather than assuming parity. Compare how each application handles refresh tokens and session expiry under authentik. Keep a short list of gaps that need code changes or policy redesign. The step is done when each gap is either closed or accepted in writing by the application owner.

  6. Run both platforms in parallel

    Keep Keycloak running while authentik serves a pilot group, and route applications to one platform or the other through DNS, reverse proxy or application configuration. Monitor failed logins, support tickets and audit records on both sides during the overlap. Confirm that authentik's deployment, including its server, worker and PostgreSQL components, meets your availability and backup requirements. The step is done when pilot users complete normal work on authentik without unresolved login failures.

  7. Cut over and retire Keycloak

    Move the remaining applications in the agreed order, starting with the lowest-risk ones, and record each cutover in the inventory. Keep a rollback path to Keycloak until the last application is stable, then decommission Keycloak and archive its configuration and audit logs under your retention policy. The step is done when no application authenticates against Keycloak, the archive is verified and the migration record is signed off by the security owner.

Where implementation projects usually run long

Most of the effort in a Keycloak or authentik project sits in the integration work between the identity server and each relying application, not in installing the server itself. Each application needs its own client registration, redirect URIs, claim mapping and logout behavior, and SAML applications add metadata exchange and signing certificate rotation. Keycloak builds these through clients, protocol mappers and the Keycloak Operator's KeycloakOIDCClient and KeycloakSAMLClient resources, while authentik uses providers and applications, including its proxy provider for apps that cannot speak a federation protocol at all. Before quoting, list every application, its protocol, and who owns its configuration, because that list drives most of the hours.

Directory design and MFA policy are the next places where timelines slip. If Keycloak federates users from LDAP or Active Directory, or if authentik's LDAP provider serves legacy apps, someone must decide which system owns passwords, group membership and deprovisioning, and test what happens when an account is disabled in the source directory. Authentication flows, conditional MFA rules and password policy are easy to draft and slow to validate against real user populations and helpdesk procedures. Ask the vendor or your own team to confirm the exact directory attributes, group sources and MFA methods required, since these change the scope more than the number of applications does.

Database and high availability sizing and upgrade testing carry the largest schedule risk over the life of the platform. Keycloak requires a production relational database and documents high availability designs that depend on a synchronously replicated database, while authentik stores all configuration and data in PostgreSQL and removed Redis in its 2025.10 release, a change its release notes flag for higher PostgreSQL connection counts. Upgrades need a rehearsal on a copy of production data: Keycloak migrates its schema at startup by default or can run manual SQL, and its Operator documentation recommends manual approval mode for updates. DeployOpen works under fixed-scope agreements written before work starts, so the timeline depends on the written scope, including the number of applications, directory sources, environments and upgrade rehearsals agreed up front.

Questions buyers ask before choosing Keycloak or authentik

Which costs more to run, Keycloak or authentik?

Neither has a license fee for the core server, so the difference lies in people time, infrastructure and any paid subscription you add. Keycloak requires a relational database in production, and its Operator or server distribution needs a platform team that can handle clustering and upgrades. authentik runs as a server container, a worker container and PostgreSQL, and since its 2025.10 release it no longer uses Redis. Cost drivers include the number of users and applications, high availability requirements, the staff who patch and upgrade each system, and whether you buy authentik Enterprise. Ask any implementation partner for a written scope that lists the database, environments, upgrade cadence and the support model before comparing totals.

Do I need an authentik Enterprise subscription for production?

Not for the core server, but some features require it. authentik core is MIT licensed, while code under the enterprise directory is under the authentik Enterprise Edition license and needs a paid subscription for production use. The pricing page places Google Workspace and Microsoft Entra ID integrations, mTLS client certificate authentication, privileged access management, password history and enhanced audit logging in the Enterprise tier. If your identity design depends on any of these, price the subscription into the comparison. Keycloak's Apache-2.0 server does not split features this way, so confirm each required feature against the current license and edition documents before you decide.

How long does a migration between Keycloak and authentik take?

The timeline depends on the scope you agree, and no fixed duration applies to every estate. The main drivers are the number of applications and their protocols, how many user stores you must reconcile, whether passwords and MFA factors can move or users must re-enroll, and how many environments need testing. Keycloak can migrate its database schema automatically at startup or through manual SQL, which matters for large deployments. Plan a parallel run where each application is cut over separately, and write acceptance criteria per application. Ask for a fixed-scope plan that lists each application, its protocol and its rollback path.

Can a small IT team run Keycloak or authentik itself?

Both are feasible for a small team, but the workload differs. authentik's Docker Compose guide positions Compose for test setups and small-scale production, and it calls for at least 2 CPU cores and 2 GB of RAM for a host. Keycloak in production needs a supported external database and, for high availability, a synchronously replicated database and careful cluster design. A small team should plan for regular upgrades, backups, monitoring and security patches on either platform. Keycloak's project plans four minor releases a year, and authentik publishes security releases with at least 24 hours of advance notice, so someone must own the upgrade calendar.

Is the Keycloak Operator harder to run than authentik on Compose or Kubernetes?

The Keycloak Operator adds Kubernetes skills but manages Keycloak custom resources such as Keycloak, KeycloakRealmImport, KeycloakOIDCClient and KeycloakSAMLClient. You install it through the Operator Lifecycle Manager, which Keycloak recommends, or with kubectl. The Operator documentation strongly recommends manual approval mode for updates to avoid unintended upgrades, and you still provide the database. authentik on Kubernetes follows its own installation guide, and on Compose it needs only a few containers. Choose the route your platform team already operates. A team with no Kubernetes practice should weigh the Operator's learning curve against Compose's simplicity, and both paths need a tested backup and restore plan.

Does authentik remove the need for a separate directory for LDAP legacy apps?

It can remove the need for a separate directory for many legacy apps, but the direction of the connection matters. authentik's LDAP provider exposes its users to applications that speak only LDAP, so those apps can authenticate against authentik. Keycloak instead federates users from an existing LDAP or Active Directory directory, so the directory remains the source of identities. If you must keep Active Directory or another directory as the system of record, Keycloak's federation fits that pattern. If the apps need a directory service for other purposes, such as group lookups by many clients, confirm that the chosen identity server covers those queries before retiring the directory.

Which protocols does each platform support for enterprise SSO?

Keycloak supports OpenID Connect, OAuth 2.0 and SAML 2.0, brokers logins to external OIDC or SAML providers, and federates users from LDAP or Active Directory. authentik documents provider types for OAuth2 and OpenID Connect, SAML, LDAP, proxy, RADIUS, SCIM, remote access control and WS-Federation, among others. Confirm the exact protocol versions and provider options your applications need in each product's current documentation. Teams with RADIUS network devices or proxy-protected internal apps should check authentik's provider list closely, while teams centered on SAML federation with large enterprise applications should verify Keycloak's federation and brokering against their requirements.

How DeployOpen helps choose, implement or migrate

DeployOpen is a Chainscore Labs company that plans, implements, integrates, hardens, backs up, upgrades and documents self-hosted open-source platforms inside the client's own infrastructure. For a Keycloak or authentik decision, that covers the cloud accounts, data centers or air-gapped networks where the identity service would actually run. Work usually starts with a question the comparison above cannot answer for you: which protocols your applications need, whether LDAP clients such as legacy applications must be served directly or can be federated from a directory, and whether you need the paid authentik Enterprise features such as Google Workspace or Microsoft Entra ID integrations, mTLS client certificates or enhanced audit logging. DeployOpen can help you map those requirements to the platform that fits, and to the operational model (Kubernetes with the Keycloak Operator or a Compose-based authentik deployment, for example) your team can actually run. The aim is a recommendation you can defend, including the option of not using either platform.

Most engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts. Ongoing support, upgrades and continuous testing are available as retainers, and DeployOpen does not publish a price list, so a quote follows from the written scope. To get a useful quote, ask for the components in scope (database, high availability design, identity brokering, LDAP or SAML integrations, backup and restore testing), who performs each task, what is one-time and what recurs, and which upgrade and patch responsibilities move to the retainer. Ask the same questions of every vendor you evaluate so the figures can be compared on equal terms. DeployOpen is not an official partner, reseller or certified provider of Keycloak, authentik or any other vendor, and it does not favor either platform in this comparison.

DeployOpen prepares systems, controls and evidence for compliance assessments, but it does not issue audit reports, attestations or certifications. Independent auditors and certification bodies perform those roles, so confirm with your assessor which evidence they will accept, such as configuration baselines, access reviews, logging settings and backup test records, before the identity platform is built. If you plan a migration between the two platforms, agree in writing how user accounts, client registrations, credentials and audit history will move, and who validates the result. Starting that conversation early is usually cheaper than discovering a gap during an assessment.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.