Understand Keycloak in depth with Large E-commerce Example
Most tutorials explain Keycloak poorly because they assume all applications share the same users. In reality, large enterprises often have different user types, and that's where Keycloak becomes…
Most tutorials explain Keycloak poorly because they assume all applications share the same users. In reality, large enterprises often have different user types, and that’s where Keycloak becomes even more useful.
Let’s take a real enterprise example.
Scenario: Large E-commerce Company
Applications:
- Customer Portal
- Admin Portal
- Vendor Portal
- Delivery App
- HR Portal
- Finance Portal
Users:
Customer Portal
--------------
Rahul
Priya
Amit
Admin Portal
------------
Admin1
Admin2
Vendor Portal
-------------
Samsung
Apple
Boat
HR Portal
---------
HR1
HR2
Finance Portal
--------------
Finance1
Finance2
At first glance, you might think:
“These are completely different users. Why do I need Keycloak?”
Fair question.
Without Keycloak
Every application manages users separately.
Customer Portal
|
customer_users table
Admin Portal
|
admin_users table
Vendor Portal
|
vendor_users table
HR Portal
|
hr_users table
Each team builds:
- Login page
- Forgot password
- Password reset
- MFA
- Session management
- JWT generation
- Role management
Again and again.
Problems Start Appearing
Problem 1: Duplicate Authentication Logic
Customer team writes:
/login
/register
/forgot-password
Admin team writes:
/login
/forgot-password
Vendor team writes:
/login
/forgot-password
HR team writes:
/login
/forgot-password
Now 10 teams maintain the same functionality.
Problem 2: Security Policies Become Inconsistent
Company says:
“From tomorrow all passwords must be 12 characters.”
Now every application must change.
Customer App
Admin App
Vendor App
HR App
Finance App
5 teams need changes.
With Keycloak:
Password Policy
|
Keycloak
One change.
Entire organization follows it.
Problem 3: MFA Requirement
Management says:
“Enable OTP for all employees.”
Without Keycloak:
Admin Portal
HR Portal
Finance Portal
Vendor Portal
Each application implements OTP separately.
With Keycloak:
Keycloak
|
OTP Enabled
Done once.
The Real Power: Centralized Identity
Let’s look at employees.
Employee John:
john@company.com
John needs access to:
Admin Portal
HR Portal
Finance Portal
Jira
Confluence
GitLab
Internal Tools
Without Keycloak:
Admin Portal -> user created
HR Portal -> user created
Finance Portal -> user created
GitLab -> user created
Same person exists 10 times.
With Keycloak:
John
|
Keycloak
|
----------------------------------
| | | | |
HR Admin Finance Jira GitLab
One identity.
Many applications.
This is called Identity Federation.
“But Customers and Vendors Are Different”
Correct.
Keycloak doesn’t force everyone into one user table.
You can separate them using:
Realms
Example:
Customer Realm
--------------
Customers only
Employee Realm
--------------
Employees only
Vendor Realm
------------
Vendors only
Or
Groups
CUSTOMER
EMPLOYEE
VENDOR
HR
FINANCE
ADMIN
One Keycloak server can manage all of them.
Single Sign-On (SSO)
Now let’s see the biggest benefit.
Without Keycloak:
Login HR Portal
Login Finance Portal
Login Jira
Login Confluence
Login GitLab
5 logins.
With Keycloak:
Login HR Portal
Keycloak Session Created
Now:
Open Finance Portal
Already logged in.
Open Jira
Already logged in.
Open Confluence
Already logged in.
This is SSO.
For employees, this is huge.
User Lifecycle Management
Imagine John resigns.
Without Keycloak:
Disable in HR Portal
Disable in Finance Portal
Disable in Jira
Disable in GitLab
Disable in Admin Portal
Someone might forget one.
Security risk.
With Keycloak:
Disable John
|
Keycloak
Access removed everywhere.
Instantly.
This alone saves enterprises enormous effort.
Social Login Example
Suppose Customer Portal wants:
Login with Google
Login with Facebook
Login with Apple
Without Keycloak:
Every application integrates separately.
With Keycloak:
Google
Facebook
Apple
|
Keycloak
|
Customer Portal
Configured once.
Microservices Perspective
For your e-commerce project:
Without Keycloak:
User Service
|
JWT Generation
|
Authentication Logic
You’ll write:
UserDetailsService
JwtUtil
JwtFilter
AuthController
RefreshTokenLogic
With Keycloak:
Keycloak
|
JWT
|
API Gateway
|
Microservices
Authentication is externalized.
Microservices focus only on business logic.
Why Big Companies Love Keycloak
Because authentication becomes a shared platform service.
Instead of 20 teams maintaining:
Login
Registration
OTP
Password Policies
MFA
Social Login
SSO
JWT
One team manages Keycloak.
Every application consumes it.
Think of Keycloak as:
“The authentication department of the company.”
Just like companies have:
- Central HR Department
- Central Finance Department
They also often have:
- Central Identity & Access Management (IAM)
And Keycloak is one popular tool used to implement that IAM layer.
That’s the real enterprise value—not simply JWT generation, but centralized identity, security policies, SSO, user lifecycle management, and OAuth/OIDC for dozens or hundreds of applications.