Chuyển đến nội dung chính

Bài 1: Giới thiệu Keycloak - IAM và SSO trong Enterprise

Tìm hiểu Keycloak là gì, tại sao cần IAM, các khái niệm cốt lõi (Realms, Clients, Users, Roles, Groups, Sessions), kiến trúc Keycloak trên Quarkus, so sánh với Auth0/Okta/Azure AD, và các use cases thực tế trong doanh nghiệp. Tổng quan phiên bản Keycloak 26.x.

1. Keycloak là gì?

Keycloak là một giải pháp Identity and Access Management (IAM) mã nguồn mở, được phát triển ban đầu bởi Red Hat và hiện là dự án CNCF Incubation (Cloud Native Computing Foundation). Keycloak cung cấp Single Sign-On (SSO), quản lý danh tính, và bảo mật ứng dụng cho các hệ thống web và RESTful web services.

Mục tiêu của Keycloak là làm cho bảo mật trở nên đơn giản — các tính năng bảo mật mà developer thường phải tự viết được cung cấp sẵn và có thể tùy chỉnh theo yêu cầu tổ chức.

Lịch sử phát triển

  • 2014: Keycloak ra đời như một dự án của JBoss/Red Hat

  • 2018: Keycloak 4.0 — hỗ trợ Authorization Services, UMA 2.0

  • 2020: Keycloak.X (Quarkus-based) preview

  • 2022: Keycloak 20 — WildFly distribution bị loại bỏ, chính thức chuyển sang Quarkus

  • 2024: Keycloak trở thành CNCF Incubation project

  • 2026: Keycloak 26.5.x — phiên bản hiện tại với Workflows, Passkeys, MCP support

2. Tại sao cần Identity and Access Management?

Trong hệ thống enterprise hiện đại, việc quản lý danh tính và quyền truy cập trở nên phức tạp khi:

  • Nhiều ứng dụng cần xác thực chung (SSO)

  • Yêu cầu tích hợp với các Identity Provider bên ngoài (Google, Azure AD, LDAP)

  • Cần Multi-Factor Authentication (MFA) cho bảo mật cao

  • Quản lý phân quyền phức tạp (RBAC, ABAC, fine-grained permissions)

  • Tuân thủ các tiêu chuẩn bảo mật (OAuth 2.0, OIDC, SAML 2.0, FAPI 2.0)

  • Multi-tenancy cho SaaS applications

Keycloak IAM/SSO Overview

Tổng quan Keycloak IAM/SSO: Ứng dụng → Keycloak → Identity Providers

3. Các tính năng chính của Keycloak

  • Single Sign-On (SSO) và Single Sign-Out cho browser applications

  • OpenID Connect và OAuth 2.0 support

  • SAML 2.0 support

  • Identity Brokering — xác thực qua external OIDC hoặc SAML Identity Providers

  • Social Login — đăng nhập bằng Google, GitHub, Facebook, Apple, Microsoft

  • User Federation — đồng bộ users từ LDAP và Active Directory

  • Kerberos bridge — tự động xác thực users đã login vào Kerberos server

  • Admin Console — quản lý tập trung users, roles, clients, configuration

  • Account Console — cho phép users tự quản lý tài khoản

  • Theme support — tùy chỉnh giao diện login, account, admin, email

  • Two-factor Authentication — TOTP/HOTP, WebAuthn, Passkeys

  • Authorization Services — phân quyền chi tiết với policies và permissions

  • Organizations — multi-tenancy cho CIAM (B2B, B2B2C)

  • Workflows — tự động hóa quản trị (IGA)

  • Token Mappers — tùy chỉnh claims trong tokens

  • Events & Auditing — audit logging và event listeners

4. Các khái niệm cốt lõi

Realms

Realm quản lý một tập hợp users, credentials, roles và groups. Mỗi user thuộc về và đăng nhập vào một realm. Các realms được cô lập với nhau — chỉ có thể quản lý và xác thực users thuộc realm đó.

Clients

Clients là các entities (ứng dụng, services) yêu cầu Keycloak xác thực user. Clients có thể là web apps, mobile apps, REST APIs, hoặc services cần token để gọi các service khác.

Users

Users là các entities có thể đăng nhập vào hệ thống. Users có attributes (email, username, phone, etc.), thuộc groups và được gán roles.

Roles

Roles xác định loại hoặc category của user (Admin, User, Manager). Ứng dụng gán quyền truy cập dựa trên roles thay vì từng user riêng lẻ.

Groups

Groups quản lý nhóm users. Groups có attributes và role mappings. Users kế thừa attributes và role mappings từ group.

Sessions

Khi user đăng nhập, một session được tạo để quản lý login session, bao gồm thông tin về thời gian đăng nhập và các ứng dụng đã tham gia SSO.

5. Kiến trúc Keycloak trên Quarkus

Từ phiên bản 20+, Keycloak chạy hoàn toàn trên Quarkus framework, mang lại:

  • Startup time cực nhanh — phù hợp container và serverless

  • Memory footprint nhỏ — tối ưu cho cloud-native deployments

  • Build-time optimization — cấu hình được compile trước

  • Native image support — khả năng chạy GraalVM native

Keycloak Architecture on Quarkus

Kiến trúc Keycloak: Quarkus Runtime, Infinispan Cache, Hibernate ORM, Admin/Account Console

Component Mô tả
Quarkus Runtime Application server (thay thế WildFly)
Infinispan Distributed cache cho sessions, tokens
Hibernate ORM ORM layer cho database persistence
Database PostgreSQL (recommended), MySQL, MariaDB, Oracle, MSSQL
Admin Console React-based SPA (PatternFly 5)
Account Console React-based SPA cho user self-service

6. So sánh Keycloak vs Auth0 vs Okta vs Azure AD

Tiêu chí Keycloak Auth0 Okta Azure AD
License Apache 2.0 (FOSS) Commercial Commercial Commercial
Deployment Self-hosted Cloud SaaS Cloud SaaS Cloud SaaS
Chi phí Miễn phí (tự vận hành) Từ $35/tháng Từ $2/user/tháng Từ $6/user/tháng
Customization Rất cao (open source) Trung bình Trung bình Thấp
OIDC/OAuth2 Đầy đủ Đầy đủ Đầy đủ Đầy đủ
SAML Đầy đủ Có Đầy đủ Đầy đủ
LDAP/AD Đầy đủ Enterprise Đầy đủ Native
MFA TOTP, WebAuthn, Passkeys Đầy đủ Đầy đủ Đầy đủ

7. Các use cases thực tế

  • Enterprise SSO: Đăng nhập một lần cho tất cả ứng dụng nội bộ

  • Customer IAM (CIAM): Quản lý danh tính khách hàng với Organizations

  • API Security: Bảo vệ REST APIs với OAuth 2.0 tokens

  • Microservices Authentication: Service-to-service authentication với client credentials

  • Social Login: Cho phép users đăng nhập bằng Google, Facebook, GitHub

  • LDAP/AD Federation: Tích hợp hệ thống directory hiện có

  • MFA cho Compliance: Đáp ứng yêu cầu PCI-DSS, HIPAA, SOC 2

8. Tổng quan khóa học

Khóa học gồm 25 bài học chia thành 7 phần, bao phủ toàn bộ các module của Keycloak 26.x:

  • Phần 1: Nền tảng (Realms, Users, Groups, Roles, Permissions)

  • Phần 2: SSO Protocols (OIDC, SAML, Client Scopes, Tokens, DPoP)

  • Phần 3: Authentication & MFA (Flows, OTP, WebAuthn, Passkeys, Identity Brokering)

  • Phần 4: Federation & Authorization (LDAP/AD, Organizations, Authorization Services, Workflows)

  • Phần 5: Security & Customization (Themes, Events, Hardening, Vault)

  • Phần 6: Tích hợp thực tế (Spring Boot, React/Angular, Node.js, API Gateway)

  • Phần 7: Production Operations (Deployment, HA, Kubernetes, Monitoring)