IDM Europe 2018: WSO2 Identity Server vs. Keycloak (Dmitry Kann)

Dmitry Kann
29 Oct 201814:04

Summary

TLDRThe speaker from an American freelance full-stack developer company discusses identity servers, focusing on Keycloak and WSO2 Identity Server. They compare features like user management, single sign-on, identity federation, provisioning, and multi-step authentication. Keycloak is praised for its ease of use and cost-effectiveness, while WSO2 is recognized for its extensive functionality, suitable for complex application landscapes.

Takeaways

  • 😀 The speaker is an American freelance full-stack developer who operates a sole proprietorship company and has experience with identity solutions, particularly in the Netherlands.
  • 🔐 The concept of an identity server is introduced as a centralized way to manage users, roles, and permissions across multiple applications within an organization.
  • 📚 The script explains the necessity for identity servers to implement various protocols and comply with regulations such as GDPR for data privacy and security.
  • 🛠️ Two open-source identity server solutions are highlighted: Keycloak and WSO2 Identity Server, both widely adopted for enterprise identity management.
  • 📅 Keycloak was first released in 2014, while WSO2 Identity Server has been around since 2008, indicating a longer track record for WSO2.
  • 📜 Both Keycloak and WSO2 Identity Server are distributed under the Apache License 2.0, allowing for commercial use and redistribution.
  • 💻 Both solutions are written in Java and require middleware, with Keycloak using WildFly and WSO2 using WSO2 Carbon.
  • 💰 Commercial support for Keycloak is available through Red Hat's product called RH-SSO, starting at $8,000 per year, while WSO2 offers support for its identity server at approximately €20,000 per year.
  • 🐳 Keycloak can be easily tried out with a single Docker command, whereas WSO2 Identity Server requires downloading a binary package for installation.
  • 🔄 The script compares functionalities of both identity servers, such as user management, single sign-on support, attribute mapping, identity federation, and multi-factor authentication.
  • 🏆 The conclusion suggests that Keycloak is easier to configure with a more modern UI and cheaper commercial support, making it suitable for less complex application landscapes, whereas WSO2 offers more comprehensive functionality at a higher cost, suitable for diverse and complex environments.

Q & A

  • What is the speaker's profession and the nature of their current work?

    -The speaker is an American freelance full-stack developer who runs a sole proprietorship company called 'solutions' and is currently working in the Netherlands at Paul Way.

  • What is the speaker's experience with the product of WSO2?

    -The speaker has experience with WSO2 from a previous client, which was one of the Dutch ministries. The product was popular with the Dutch government.

  • What is the concept of an identity server according to the speaker?

    -An identity server is a system that allows for the centralized management of users and roles within an organization, handling authentication and login requests, and ideally managing permissions and role changes as people move within the organization.

  • What are the two major single sign-on protocols mentioned in the script?

    -The two major single sign-on protocols mentioned are SAML2 and OpenID Connect.

  • How does the speaker describe the compliance requirements for an identity server?

    -The speaker mentions that an identity server must comply with regulations such as GDPR in Europe and other local legislations, manage user consent regarding terms and conditions, and be auditable due to its role in granting access to critical infrastructure.

  • What are the two open-source projects for identity management mentioned by the speaker?

    -The two open-source projects mentioned are Keycloak and WSO2 Identity Server.

  • What are the basic differences between Keycloak and WSO2 Identity Server in terms of development and licensing?

    -Keycloak is developed by JBoss, a division of Red Hat, and was first released in 2014. WSO2 Identity Server is developed by WSO2 and was first released in 2008. Both are distributed under the Apache License 2.0, which is permissive and allows for commercial use.

  • What is the difference in commercial support options for Keycloak and WSO2 Identity Server?

    -Keycloak has a community version that does not get patches, with commercial support available for a paid Red Hat product called RH-SSO starting at $8,000 per year. WSO2 offers a product specifically for the identity server at about 20k euros per year, which includes updates and incident support, with the community version also not receiving patches.

  • How does the speaker compare the ease of installation and configuration between Keycloak and WSO2 Identity Server?

    -The speaker states that Keycloak is easier to install and configure, requiring only a single Docker command for trial. In contrast, WSO2 Identity Server does not have public Docker registries but can be downloaded and installed from a binary package, which is not as straightforward.

  • What is the speaker's recommendation based on the complexity of the application landscape?

    -The speaker recommends choosing WSO2 Identity Server for a diverse and complex application landscape due to its extensive functionality, while suggesting Keycloak for simpler scenarios due to its ease of use and lower cost of commercial support.

Outlines

00:00

😀 Introduction to Identity Management and Identity Server Concepts

The speaker, an American freelance full-stack developer, introduces the concept of identity management within organizations, explaining the complexities of managing users, roles, and permissions across multiple applications. They highlight the utility of an identity server in centralizing these management tasks and mention their experience with such a product in the Dutch government. The paragraph also outlines the technical protocols and compliance issues that an identity server must handle, such as single sign-on, multi-step authentication, GDPR, and user consent management. The speaker sets the stage for a comparison between two open-source identity management solutions: Keycloak and WSO2 Identity Server.

05:02

📚 Comparing Keycloak and WSO2: Basics and Support Options

This paragraph delves into the basic differences between Keycloak and WSO2 Identity Server, including their development backgrounds, release years, and licensing. Keycloak, developed by JBoss (a division of Red Hat), and WSO2 Identity Server, both offer community and commercial support options, with Keycloak requiring a paid subscription for support and WSO2 offering a more costly annual subscription that includes updates and incident support. The speaker also discusses the ease of trying out these solutions, with Keycloak being more accessible through a Docker command, while WSO2 requires downloading and installing a binary package.

10:05

🔑 Detailed Feature Comparison: User Management, SSO, and More

The speaker provides a detailed comparison of Keycloak and WSO2 Identity Server features. They cover user and role management, user stores, single sign-on capabilities, attribute mapping, identity federation, and user provisioning. Both solutions support essential identity management features, but WSO2 offers more flexibility in certain areas, such as configuring external identity providers and user provisioning. The paragraph also touches on multi-tenancy support, one-time passwords, and multi-step authentication, noting that while both support time-based passwords, WSO2 provides additional options like sending passwords via SMS or email and has more complex but flexible multi-step authentication flows.

🏆 Conclusion: Choosing Between Keycloak and WSO2

In the conclusion, the speaker summarizes the comparison and offers guidance on choosing between Keycloak and WSO2 Identity Server. They suggest that Keycloak is easier to configure with a more user-friendly interface and is cheaper in terms of commercial support, making it suitable for less complex application landscapes. On the other hand, WSO2 is recommended for more diverse and complex environments due to its extensive functionality, despite its higher cost and complexity. The speaker thanks the audience for their attention, wrapping up the presentation.

Mindmap

Keywords

💡Freelance Developer

A freelance developer is an independent contractor who is self-employed and offers programming services to clients on a project-by-project basis. In the script, the speaker identifies themselves as a 'freelance, full-stack developer,' indicating they have a broad range of skills across various aspects of software development and work for multiple clients or projects independently.

💡Identity Server

An identity server is a system that centralizes the management of digital identities and provides a single point of access for authentication and authorization to various applications. The script discusses the role of an identity server in managing users, roles, and permissions within an organization, emphasizing its importance in linking multiple applications and managing user access centrally.

💡Role Management

Role management refers to the process of defining, assigning, and managing user roles within a system. In the context of the video, role management is a key feature of an identity server, allowing organizations to control what each user can do within the system by assigning them specific roles that grant certain permissions.

💡Single Sign-On (SSO)

Single Sign-On is an authentication process that allows a user to access multiple applications with one set of login credentials. The script mentions SSO as a major benefit of using an identity server, as it simplifies the user experience by reducing the need to remember multiple passwords and login details.

💡OpenID Connect

OpenID Connect is an authentication protocol that operates on top of the OAuth 2.0 protocol and allows clients to verify the identity of an end-user based on the authentication performed by an authorization server. The script identifies OpenID Connect as one of the two major SSO protocols supported by the identity servers discussed.

💡GDPR

GDPR stands for General Data Protection Regulation, a regulation in EU law that focuses on data protection and privacy for individuals within the European Union. The script mentions GDPR as one of the compliance requirements that identity servers must meet, highlighting the importance of adhering to data protection laws in the design of such systems.

💡Keycloak

Keycloak is an open-source identity and access management solution that provides various features, including authentication and authorization. The script compares Keycloak with WSO2 as two options for identity server solutions, noting Keycloak's ease of configuration and user-friendly interface.

💡WSO2

WSO2 is a company that offers a range of middleware products for identity and access management, among other services. The script discusses WSO2 Identity Server as a comprehensive solution with a wide range of features, but also notes its complexity and higher cost compared to Keycloak.

💡User Store

A user store is a component within an identity server that is responsible for persisting user and role information. The script explains that both Keycloak and WSO2 are initially configured to use an embedded H2 database for user storage, but this is not recommended for production environments.

💡Multi-Tenancy

Multi-tenancy is an architecture where a single instance of software runs on a server and serves multiple tenants (groups of users). The script mentions multi-tenancy as a feature supported by both Keycloak and WSO2, which allows for cost-effective implementation by serving multiple groups within the same server instance.

💡Multi-Step Authentication

Multi-step authentication, also known as multi-factor authentication, is a security process in which two or more pieces of evidence are required to sign in. The script discusses multi-step authentication as a feature for enhancing security or enforcing specific user actions post-login, noting the differences in flexibility between Keycloak and WSO2's implementations.

Highlights

Introduction of the speaker's background as an American freelance full-stack developer.

Experience with a product popular with the Dutch government using identity management.

Explanation of the concept of an identity server and its importance in managing users and roles centrally.

Identity server's role in handling authentication and login requests.

Technical requirements for identity servers, including implementing various protocols.

Compliance with regulations like GDPR and local legislation for identity management.

Importance of auditability in identity management for security and infrastructure access.

Overview of two open-source identity management solutions: Keycloak and WSO2.

Comparison of Keycloak and WSO2 in terms of development, licensing, and support.

Ease of setup for Keycloak using a single Docker command.

WSO2's more complex installation process and lack of public Docker registries.

Comparison of user and role management capabilities in Keycloak and WSO2.

Discussion on user stores and persistence options in both identity servers.

Single sign-on support and terminology differences between Keycloak and WSO2.

Attribute mapping for diverse applications in identity management.

Identity Federation and support for external identity providers in both solutions.

Identity provisioning options and support for inbound and outbound provisioning in WSO2.

Multi-tenancy support and its role in implementing cost-effective identity server setups.

One-time password support and security enhancements in both identity servers.

Multi-step authentication flexibility and complexity in WSO2 compared to Keycloak.

Summary and recommendation on choosing between Keycloak for simpler needs and WSO2 for complex application landscapes.

Transcripts

play00:05

ladies and gentlemen American freelance

play00:09

full-stack developer into solutions is

play00:13

basically my sole proprietorship company

play00:16

and currently working at Netherlands

play00:18

Paul way which is natural ways I have

play00:25

quite some experience with the product

play00:28

of W as Oh - from my previous client

play00:33

which was one of Dutch ministries and

play00:36

this product is popular with Dutch

play00:40

government so yeah let's first start

play00:45

with the concept of an identity so a

play00:50

girl who is here familiar with this term

play00:54

okay so not much yeah

play00:58

for the rest I would explain it in a

play01:01

very deep in the Annika way it's

play01:05

imaginary of a bunch of users in the

play01:09

organization and you have multitude of

play01:12

applications most of which you didn't

play01:14

develop and you need to link ones to the

play01:18

others and well you can imagine that it

play01:23

involves a lot of things like role

play01:26

management permission management people

play01:28

moving in and out of your organisation

play01:30

people move into different department

play01:33

which also imposes their permissions and

play01:37

you want ideally to manage this all

play01:41

centrally so this is exactly when an

play01:45

identity server comes in handy

play01:51

well that's exactly the thing that

play01:53

allows you to manage the list of people

play01:59

users and roles in a centralized way it

play02:03

also takes over authentication requests

play02:04

and login request so providing some kind

play02:06

of user interface for logging in and for

play02:10

other things which we all see you later

play02:12

and well I can assure that it entails a

play02:17

lot of things so you can expect that

play02:21

such a component would need to implement

play02:25

a bunch of protocols on a technical side

play02:28

all the things on the left you have two

play02:32

major single sign-on protocols like some

play02:34

o2 and open ID connect you have things

play02:39

like one-time passwords multi step

play02:42

authentication you need to integrate

play02:45

probably with other identity providers

play02:47

but at the same time you also need to

play02:50

comply with the things on the right

play02:53

so the infamous GPS gdpr which came into

play02:57

effect recently in Europe in other

play02:59

territories you need to comply with

play03:01

local legislation as well you need to

play03:05

manage user concerns to things like

play03:06

terms and conditions and this whole

play03:09

thing needs to be auditable as well

play03:11

because what we are giving people access

play03:13

to some critical parts of your

play03:15

infrastructure and that's not all

play03:19

because he also needs to implement some

play03:22

useful functionality for users like

play03:25

resetting forgotten passwords periodic

play03:29

password change account administration

play03:32

so on

play03:34

so yeah if you think of it as an

play03:36

enormous task but there's good news you

play03:43

have two options for just reusing which

play03:49

again you can choose from just pick it

play03:51

up and two open source projects which

play03:56

key clock and W so two identity server

play03:59

widely adopted Enterprise great Identity

play04:02

Management solutions so let's have a

play04:05

closer look at them let's start off with

play04:10

some basic information about these two

play04:11

products

play04:12

key clocks currently being developed by

play04:14

JBoss which is a division of Red Hat and

play04:17

W so2

play04:20

a dentist or is being developed by well

play04:22

W so to both our American corporations

play04:27

key clock is first release of 2014 which

play04:32

is bit younger than W so - from 2008

play04:36

that's at least the information I

play04:38

managed we both are redistributed under

play04:42

the terms of apache license 2.0 which

play04:45

has pitted unrestrictive and allows for

play04:47

commercial use both are written in java

play04:50

and both run on some middleware which is

play04:53

wild fly in case of key clock or that

play04:55

was to carbon case of the aryan - server

play05:01

if you plan to use software for a

play05:04

business you will definitely consider

play05:06

the commercial support option and well

play05:11

the thing is a geek lock is as a

play05:13

community version of a paid Red Hat

play05:16

product called our age SSO and you can

play05:21

only get commercial support for that one

play05:22

the prices start at eight thousand

play05:24

dollars per year and the community

play05:28

version never gets patched

play05:30

unfortunately for wso - you can buy

play05:34

product just for the identity server but

play05:36

it is a bit more costly about 20k per

play05:40

year euros which I give updates and

play05:43

incident support otherwise the community

play05:47

version doesn't get patches either and

play05:53

if you're interested in trying these

play05:54

things out it's extremely easy in terms

play05:57

of if you want to try key clock out you

play06:01

just need a single docker command which

play06:03

is from the screen for w so -

play06:08

unfortunately you don't find public

play06:11

docker registries but you can download

play06:13

the binary package and install it which

play06:16

is not that difficult either so the rest

play06:22

of my presentation will be comparing

play06:24

functionality one by one on the

play06:28

topics displayed here that's the one

play06:30

that I picked that yeah just just the

play06:33

very basics of it and let's start these

play06:37

users and drones it's a fundamental

play06:39

concept to identify and obviously it's

play06:42

well supported by both of them key clock

play06:45

also has the notion of groups which

play06:51

allow you to assign attributes to

play06:55

multiple users next one up is user

play06:59

stores a user store is a component that

play07:04

allows you to persist users and roles

play07:07

and both servers out-of-the-box

play07:13

configured to use the embedded h2

play07:16

database but they both discourage you

play07:22

from using that in production key cloak

play07:25

offers only one persistence option and a

play07:27

single data source wso to allows you to

play07:31

configure as many data sources as you

play07:33

like and you can mix and match basically

play07:36

various units such as LDAP or even

play07:39

another identity server for persistence

play07:44

mmm single sign-on that's one of the

play07:47

main reasons probably you want an

play07:49

identity server because it allows user

play07:52

to authenticate only once and get access

play07:54

to multiple applications relying on it's

play07:56

over both SSL protocols are well

play08:00

supported by these two products however

play08:04

does some terminology difference key

play08:09

cloak cause they're lying

play08:12

applications clients and wso to cause

play08:15

them service providers that's

play08:16

essentially the same thing attribute

play08:22

mapping that is something that you would

play08:25

need if you have diverse applications

play08:28

because different applications call the

play08:31

same things differently like last name

play08:34

surname so for that purpose you might

play08:37

want to map some user attributes

play08:39

two different entities and it's all

play08:43

supported by both of them identity

play08:48

Federation is a slightly more complex

play08:51

topic

play08:52

it means relying on another identity

play08:55

provider for for example another

play08:58

identity server for authenticating

play09:01

your users so we are all familiar with

play09:05

things like social logging via Facebook

play09:08

or Twitter that's exactly and they had

play09:10

into Federation both service do support

play09:15

external Venki providers including

play09:18

social ones but wso - allows you to

play09:23

configure them in a slightly more

play09:25

flexible way per application identity

play09:33

provisioning next one up in simple terms

play09:37

that into provision means creating users

play09:39

on the fly as they are authenticated and

play09:42

it comes in two flavors it's either in

play09:45

both outbound inbound meaning you create

play09:48

users locally after they're

play09:50

authenticated externally outbound

play09:52

meaning you create users elsewhere after

play09:58

they're authenticated locally

play10:01

Kiko only supports the first flavor and

play10:04

double so two supports both variants of

play10:10

user provisioning you can configure this

play10:14

per application and it also has support

play10:18

for the scheme protocol which is a

play10:20

system for cross domain identity

play10:22

management multi-tenancy multi-tenancy

play10:30

is a bit controversial way of creating

play10:32

virtual identity servers within a single

play10:35

server instance while the main reason

play10:38

why you would want to have such setup is

play10:42

cheaper implementation both servers do

play10:45

support this mechanism although key

play10:48

cloak cost Amri arms and

play10:51

there was a to call some tenants he clog

play10:57

also allows you to bit more easily

play11:01

manage your different tenants because

play11:04

with wz2 you need to log in a standard

play11:08

element every time you need to make

play11:09

changes to that talents next one up is

play11:16

one-time passwords it's a well-known

play11:19

security enhancement that you can

play11:21

implement and it's often a part of a

play11:23

multi step authentication flow which I

play11:26

will show in the next slide both servers

play11:30

support time based passwords

play11:34

however w2 does not support counter

play11:37

based passwords both support Google

play11:40

Authenticator which is basically a

play11:44

standard time based password

play11:46

implementation and the w2 also allows

play11:50

you to send the generated passwords via

play11:52

SMS or email and the next building block

play11:59

the last building block basically that's

play12:01

multi step authentication multi step

play12:05

authentication is used for two purposes

play12:08

it's either enhancing security just like

play12:13

the one-time passwords as I just

play12:15

mentioned or you can impose specific

play12:18

actions on the user such as password

play12:20

update after the after the user logs in

play12:24

so the multi notation of key clock is a

play12:26

bit limited the only security

play12:28

enforcement here is one-time password

play12:30

and the rest is just a set of some

play12:35

predefined actions that you can mandate

play12:37

the user to execute and the flows in W

play12:41

so to are extremely flexible so you can

play12:44

basically cook up any imaginable

play12:46

sequence of steps but it comes at the

play12:51

price of some complexity

play12:55

so yeah let's summarize what we've seen

play12:59

so far my conclusion says that key clock

play13:02

is a bit easier to configure it's a bit

play13:07

more user friendly and has more modern

play13:11

UI it's also cheaper in terms of

play13:15

commercial support wso 2 is much more

play13:19

involved in terms of installation and

play13:21

configuration requires much more

play13:23

knowledge to be able to do things

play13:26

properly it's quite pricey and well I

play13:31

believe it can offer just about anything

play13:34

in terms of functionality so if your

play13:39

application landscape is very diverse in

play13:41

complex I would choose the wso 2 product

play13:45

and otherwise I was just go with key

play13:48

clog yeah so that's about it thank you

play13:54

for attention

play14:00

you

Rate This

5.0 / 5 (0 votes)

相关标签
Identity ServerKeycloakWSO2User ManagementRole ManagementAuthenticationSingle Sign-OnSecurity ProtocolsComplianceEnterprise Solutions
您是否需要英文摘要?