Open Source Identity and Access Management For Modern Applications and Services (by keycloak)

Keycloak Alternatives

Similar projects and alternatives to Keycloak

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better Keycloak alternative or higher similarity.

Keycloak reviews and mentions

Posts with mentions or reviews of Keycloak. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-21.
  • Top 6 Open Source Identity and Access Management (IAM) Solutions For Enterprises
    3 projects | | 21 Feb 2024
    KeyCloak is a Cloud Native Computing Foundation (CNCF) project that offers enterprise IAM solutions. Keycloak emphasizes proficient enterprise authorization solutions by providing:
  • Outline: Self hostable, realtime, Markdown compatible knowledge base
    7 projects | | 16 Jan 2024
    Outline only uses SSO for authentication. The solution when self hosting is use a private keycloak server [1]. This allows you to do email based auth.


  • Keycloak open redirect: wildcard redirect URIs can be exploited to steal tokens
    2 projects | | 12 Jan 2024
    > Keycloak was good but has too much legacy for 10+ years.

    I got curious, actually seems to check out and explains why it's so well documented (but also complex and oftentimes confusing):

    > The first production release of Keycloak was in September 2014, with development having started about a year earlier.

  • What Is OIDC?
    3 projects | | 21 Dec 2023
    > Don't outsource either your authentication or authorization. Run it in-house.

    This is hard to do, though. I hope people here will drop a lot of combinations that work for them!

    Personally, for a small/medium scale project, I went with:


    It supports various backing RDBMSes (like PostgreSQL, MariaDB/MySQL and others), allows both users that you persist in your own DB, as well as various external sources, like social login across various platforms, is an absolute pain to configure and sometimes acts in stupid ways behind a reverse proxy, but has most of the features that you might ever want, which sadly comes coupled with some complexity and an enterprise feeling.

    I quite like that it offers the login/registration views that you need with redirects, as well as user management, storing roles/permissions and other custom attributes. It's on par with what you'd expect and should serve you nicely.


    This one's a certified OpenID Connect Relying Party implementation for... Apache2/httpd.

    Some might worry about the performance and there are other options out there (like a module for OpenResty, which is built on top of Nginx), but when coupled with mod_md Apache makes for a great reverse proxy/ingress for my personal needs.

    The benefit here is that I don't need 10 different implementations for each service/back end language that's used, I can outsource the heavy lifting to mod_auth_openidc (protected paths, needed roles/permissions, redirect URLs, token renewal and other things) and just read a few trusted headers behind the reverse proxy if further checks are needed, which is easy in all technologies.

    That said, the configuration there is also hard and annoying to do, as is working with OpenID Connect in general, even though you can kind of understand why that complexity is inherent. Here's a link with some certified implementations, by the way:

    3 projects | | 21 Dec 2023
    Keycloak [1]. Rock solid, supports everything, trusted everywhere.


  • Auth0 increases price by 300%
    7 projects | /r/webdev | 7 Dec 2023
    You couldn't pay me to use their bullshit...if you need an identity server/provider go with Keycloak. Open source, free, and standards based, works better and scales better too.
  • Hasura and Keycloak integration with NestJS server
    5 projects | | 7 Dec 2023
    #docker-compose.yml version: '3' volumes: postgres_data: driver: local services: postgres: container_name: postgres image: postgres:15-alpine restart: unless-stopped volumes: - postgres_data:/var/lib/postgresql/data - ./init/db:/docker-entrypoint-initdb.d/ command: postgres -c wal_level=logical ports: - '5433:5432' environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} hasura: container_name: hasura image: hasura/graphql-engine:v2.29.0 restart: unless-stopped depends_on: - postgres # - keycloak ports: - '6080:8080' volumes: - ./hasura/metadata:/hasura-metadata environment: ## postgres database to store Hasura metadata HASURA_GRAPHQL_METADATA_DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/hasura_metadata HASURA_GRAPHQL_DATABASE_URL: postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB} HASURA_GRAPHQL_LOG_LEVEL: warn ## enable the console served by server HASURA_GRAPHQL_ENABLE_CONSOLE: 'true' # set to "false" to disable console ## enable debugging mode. It is recommended to disable this in production HASURA_GRAPHQL_DEV_MODE: 'true' HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log ## enable jwt secret when keycloak realm is ready # HASURA_GRAPHQL_JWT_SECRET: '{ "type": "RS256", "jwk_url": "http://keycloak:8080/realms/development/protocol/openid-connect/certs" }' HASURA_GRAPHQL_ADMIN_SECRET: ${HASURA_GRAPHQL_ADMIN_SECRET} HASURA_GRAPHQL_UNAUTHORIZED_ROLE: anonymous HASURA_GRAPHQL_ENABLE_REMOTE_SCHEMA_PERMISSIONS: 'true' HASURA_GRAPHQL_MIGRATIONS_SERVER_TIMEOUT: 30 # To view tables in Postgres # pgweb: # container_name: pgweb # image: sosedoff/pgweb:latest # restart: unless-stopped # ports: # - '8081:8081' # environment: # - DATABASE_URL=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}?sslmode=disable # depends_on: # - postgres keycloak: container_name: keycloak image: command: ['start-dev'] # Uncomment following if you want to import realm configuration on start up # command: ['start-dev', '--import-realm'] environment: ## KEYCLOAK_ADMIN: admin KEYCLOAK_ADMIN_PASSWORD: password123 KC_DB: postgres KC_DB_PASSWORD: postgres_pass KC_DB_USERNAME: postgres KC_DB_SCHEMA: public KC_DB_URL: jdbc:postgresql://postgres:5432/keycloak_db KC_HOSTNAME: localhost ports: - 8090:8080 depends_on: - postgres # Uncomment following if you want to import realm configuration on start up # volumes: # - ./realm-export.json:/opt/keycloak/data/import/realm.json:ro
  • 🚀 Top 12 Open Source Auth Projects Every Developer Should Know 🔑
    9 projects | | 6 Dec 2023
    Single Sign On (SSO) - Keycloak
  • IT Pro Tuesday #280 - Identity/Access Mgmt, Training, Collaboration Tool & More
    2 projects | /r/ITProTuesday | 5 Dec 2023
    RedHat Keycloak is an Identity and Access Management tool. Features include user federation, robust authentication methods, user management, and fine-grained authorization. Grintor describes it as an "open source alternative to"
  • Ask HN: Any Comprehensive Courses on Auth?
    3 projects | | 19 Nov 2023
    FastAPI's tutorial on how to implement a basic OAuth server helped me a lot in understanding the basic concepts.

    After getting familiar, I self hosted Keycloak and integrated it with my FastAPI server.

  • A note from our sponsor - InfluxDB | 29 Feb 2024
    Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality. Learn more →


Basic Keycloak repo stats
7 days ago

keycloak/keycloak is an open source project licensed under Apache License 2.0 which is an OSI approved license.

Keycloak is marked as "self-hosted". This means that it can be used as a standalone application on its own.

The primary programming language of Keycloak is Java.

The modern API for authentication & user identity.
The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.