In the following short article we will try to give you a brief overview of what Identity and Access Management (IAM) solutions are, focusing on the open source tool called Keycloak.

What is Identity and Access Management?

IAM is a security framework and strategy for managing and controlling digital identities and access rights within an organisation. This approach simplifies user access management, improves security and ensures compliance with various regulations. So you could say that it's critical to modern business operations where data security and access control are paramount.

Is IAM really necessary?

In today's fast-paced world, IAM is no longer a choice, but a necessity. Setting up an IAM system requires significant investment and manpower, but it's undeniable that the benefits are substantial. The company significantly improves its chances of avoiding fines, not to mention enabling faster delivery of services/tasks leading to increased revenue. Therefore, the use of an IAM system is a worthwhile investment for any company that wants to stay in the race.

What should companies be aware of when implementing/using an IAM system?

Like any solution, IAM has its pros and cons, which should be weighed up before implementation.

An IAM system has many benefits, some of the most important are listed below.
1. It provides a secure solution to data and identity issues.
With the rise of digitalisation, it has never been more important to ensure that our identity and sensitive data are secure. This is even more true for businesses.

2. It helps with compliance
By using segregation of duties and the principle of least privilege, we can ensure that data sensitivity is maintained and identity theft is prevented.

3. It improves the user experience
With an IAM system, we can also streamline the user experience by using a single user account for multiple applications. This is called Single Sign-On (SSO).

4. Reduces the burden on IT
An IAM solution also reduces the burden on IT departments by providing a central point for managing all user profiles and rights.

However, we shouldn't overlook the dangers associated with implementing an IAM system. Some of the risks are, as always, caused by human error, which can have a significant impact on the business, and below we have listed some of the most common errors/mistakes to watch out for.

1. Failure to define roles and responsibilities
The responsibilities of each role need to be clearly defined and documented so that the right permissions are assigned to a role. If you don't, you run the risk of giving too much access to the wrong person.

2. Single point of failure
If the system is not well designed or implemented, it can cause a lot of problems for an organisation. A single point of failure could help individuals gain access to the system, which could lead to a breach and access to both sensitive and non-sensitive data.

3. Lack of user awareness
This point can be linked to the previous one. In many cases, users may not be aware of the risks associated with their accounts. To mitigate this, it is necessary to educate employees (what are phishing scams and how to avoid them, the initiative to report suspicious activity, etc.) and the use of security best practices (such as strong passwords, multi-factor authentication, etc.).

4. Complexity of implementation
As IAM systems require experience and expertise in different areas (like security, access restrictions, data and identity management) it can be challenging to set up and maintain them. As a result, there is a greater chance of errors and misconfigurations, leading to security risks and data breaches.

There is a solution to mitigate the risk of an IAM implementation and that is to conduct frequent audits. Regular audits can identify gaps from previous integrations and configurations. Human error is also almost always detected immediately. This is not perfect, of curse, but it is as close to best practice as we can get.

What is Keycloak?

Keycloak is an open source identity and access management (IAM) tool, based on Quarkus and developed by Red Hat, that streamlines the authentication process for applications and IT services. In addition to being open source, customers can easily opt for a managed instance of the tool from Red Hat itself.

Keycloak features:
- As a product used by many organisations, security issues and solutions are constantly being pushed, tested and implemented.

- Keycloak adapts very quickly to changes.

- Multi-protocol support (OpenID Connect, OAuth 2.0 and SAML 2.0)

- SSO (Single Sign-On and Single Sign-Out)- Admin Console (A web-based GUI for all the configurations your instance needs to run)

- User Identity and Access (Keycloak is the standalone Identity and Access Management tool that allows you to create custom roles and groups for your users. These can then be used for authentication and authorisation purposes).

- Identity Brokering (It can integrate with external identity providers.)

- Social Identity Providers (It has built-in support for various endpoints such as Facebook, Google, Twitter and Stack Overflow. These must be configured manually)

- Page customisation (Its GUI can be customised using classic HTML markup and CSS styles. Custom JS scripts can also be used for these tasks)

- Backend access via REST API (Its REST API allows us to do everything we could do via the GUI interface itself).

 

Why should companies choose Keycloak over other IAM systems?

The first point would be that it's free as it's based on the Apache License 2.0, which also guarantees that there is no vendor lock-in with the tool.

It supports the three authentication protocols mentioned above, which makes it ideal for an IAM tool. This means that we can choose the authentication protocol based on the needs of the application(s).

It has a huge community support, which means that it already has a lot of practical examples and troubleshooting guides, as well as many ready-made extensions created by the community.

Existing databases such as LDAP or Active Directory can also be integrated almost seamlessly with Keycloak, as it has a built-in mechanism for synchronising with such identity providers.

It's well documented REST API endpoint makes the administration and configuration of Keycloak itself much quicker and more accessible.

One of Keycloak's biggest selling points would be that it's cloud-ready, so it can be seamlessly deployed in cloud environments such as Kubernetes.

 

Keycloak provides security


Keycloak is a great IAM option as it helps organisations to optimise costs and provide top-notch security. It's also adaptable, scalable and, thanks to the community, constantly updated with new features.

I hope this short article has helped you understand Keycloak and how it can benefit your organisation.

If you wanna start away, there is a step by step guide to Keycloak at hand.

For first applications with keycloak and docker, check out "Leveraging Docker Multistage Builds for Custom Keycloak SPIs".