Need advice about which tool to choose?Ask the StackShare community!

Keycloak

705
1.3K
+ 1
102
OpenID Connect

147
131
+ 1
0
Add tool

Keycloak vs OpenID Connect: What are the differences?

Introduction

Keycloak and OpenID Connect are both authentication frameworks used in website development. While they have similarities in terms of their purpose, there are key differences between the two.

  1. Token-Based Authentication vs Identity Federation: One of the main differences between Keycloak and OpenID Connect is their approach to authentication. Keycloak uses a token-based authentication system, where users receive access and refresh tokens that are used for authorization. On the other hand, OpenID Connect focuses on identity federation, allowing users to use their existing identities from other identity providers to log in to a website.

  2. Server-Side vs Client-Side Authentication: Another notable difference is the location of the authentication process. Keycloak performs authentication on the server-side, meaning that the authentication logic resides on the server. In contrast, OpenID Connect primarily focuses on client-side authentication, where the authentication logic is implemented on the client-side using JavaScript libraries.

  3. User Management and Administration: Keycloak offers a comprehensive set of user management and administration features, allowing administrators to manage users, roles, and permissions within the Keycloak realm. OpenID Connect, on the other hand, does not provide built-in user management and administration capabilities. It relies on external identity providers to handle these functionalities.

  4. Standards-Based vs Protocol: Keycloak follows a standards-based approach, implementing the OAuth 2.0 and OpenID Connect specifications. It provides support for other standards such as SAML, LDAP, and more. OpenID Connect, on the other hand, is a protocol built upon OAuth 2.0, providing a standardized way for clients to access user identity information from an identity provider.

  5. Interoperability and Vendor Lock-In: Keycloak offers greater interoperability with other systems and technologies due to its adherence to standards-based protocols. It enables seamless integration with various components of the application stack. OpenID Connect, although widely adopted and supported, might lead to vendor lock-in as it introduces some implementation-specific features.

  6. Scalability and Performance: Keycloak is known for its scalability and high-performance capabilities, with features like clustering, session store caching, and database connection pooling. This ensures that Keycloak can handle a large number of concurrent users and heavy workloads effectively. OpenID Connect's scalability and performance depend on the identity provider being used, as different providers have varying capabilities and requirements.

In summary, Keycloak focuses on token-based authentication, server-side authentication logic, comprehensive user management, standards-based protocols, interoperability, scalability, and performance. OpenID Connect emphasizes identity federation, client-side authentication logic, relies on external providers for user management, uses a specific protocol, and has varying levels of interoperability and scalability depending on the identity provider.

Advice on Keycloak and OpenID Connect
Needs advice
on
KeycloakKeycloakOktaOkta
and
Spring SecuritySpring Security

I am working on building a platform in my company that will provide a single sign on to all of the internal products to the customer. To do that we need to build an Authorisation server to comply with the OIDC protocol. Earlier we had built the Auth server using the Spring Security OAuth project but since in Spring Security 5.x it is no longer supported we are planning to get over with it as well. Below are the 2 options that I was considering to replace the Spring Auth Server. 1. Keycloak 2. Okta 3. Auth0 Please advise which one to use.

See more
Replies (3)
Luca Ferrari
Solution Architect at Red Hat, Inc. · | 5 upvotes · 203.9K views
Recommends
on
KeycloakKeycloak

It isn't clear if beside the AuthZ requirement you had others, but given the scenario you described my suggestion would for you to go with Keycloak. First of all because you have already an onpremise IdP and with Keycloak you could maintain that setup (if privacy is a concern). Another important point is configuration and customization: I would assume with Spring OAuth you might have had some custom logic around authentication, this can be easily reconfigured in Keycloak by leveraging SPI (https://www.keycloak.org/docs/latest/server_development/index.html#_auth_spi). Finally AuthZ as a functionality is well developed, based on standard protocols and extensible on Keycloak (https://www.keycloak.org/docs/latest/authorization_services/)

See more
Sandor Racz
Recommends
on
KeycloakKeycloak

We have good experience using Keycloak for SSO with OIDC with our Spring Boot based applications. It's free, easy to install and configure, extensible - so I recommend it.

See more
Recommends
on
KeycloakKeycloak

You can also use Keycloak as an Identity Broker, which enables you to handle authentication on many different identity providers of your customers. With this setup, you are able to perform authorization tasks centralized.

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Keycloak
Pros of OpenID Connect
  • 33
    It's a open source solution
  • 24
    Supports multiple identity provider
  • 17
    OpenID and SAML support
  • 12
    Easy customisation
  • 10
    JSON web token
  • 6
    Maintained by devs at Redhat
    Be the first to leave a pro

    Sign up to add or upvote prosMake informed product decisions

    Cons of Keycloak
    Cons of OpenID Connect
    • 7
      Okta
    • 6
      Poor client side documentation
    • 5
      Lack of Code examples for client side
      Be the first to leave a con

      Sign up to add or upvote consMake informed product decisions

      What is Keycloak?

      It is an Open Source Identity and Access Management For Modern Applications and Services. It adds authentication to applications and secure services with minimum fuss. No need to deal with storing users or authenticating users. It's all available out of the box.

      What is OpenID Connect?

      It is a simple identity layer on top of the OAuth 2.0 protocol. It allows Clients to verify the identity of the End-User based on the authentication performed by an Authorization Server, as well as to obtain basic profile information about the End-User in an interoperable and REST-like manner.

      Need advice about which tool to choose?Ask the StackShare community!

      What companies use Keycloak?
      What companies use OpenID Connect?
      See which teams inside your own company are using Keycloak or OpenID Connect.
      Sign up for StackShare EnterpriseLearn More

      Sign up to get full access to all the companiesMake informed product decisions

      What tools integrate with Keycloak?
      What tools integrate with OpenID Connect?

      Sign up to get full access to all the tool integrationsMake informed product decisions

      Blog Posts

      Sep 29 2020 at 7:36PM

      WorkOS

      PythonSlackG Suite+17
      6
      3049
      What are some alternatives to Keycloak and OpenID Connect?
      Auth0
      A set of unified APIs and tools that instantly enables Single Sign On and user management to all your applications.
      Okta
      Connect all your apps in days, not months, with instant access to thousands of pre-built integrations - even add apps to the network yourself. Integrations are easy to set up, constantly monitored, proactively repaired and handle authentication and provisioning.
      FreeIPA
      FreeIPA is an integrated Identity and Authentication solution for Linux/UNIX networked environments. A FreeIPA server provides centralized authentication, authorization and account information by storing data about user, groups, hosts and other objects necessary to manage the security aspects of a network of computers.
      Dex
      Dex is a personal CRM that helps you build stronger relationships. Remember where you left off, keep in touch, and be more thoughtful -- all in one place.
      Vault
      Vault is a tool for securely accessing secrets. A secret is anything that you want to tightly control access to, such as API keys, passwords, certificates, and more. Vault provides a unified interface to any secret, while providing tight access control and recording a detailed audit log.
      See all alternatives