Phần 1: Nền tảng Keycloak
Bài 1: Giới thiệu Keycloak - IAM và SSO trong Enterprise
Keycloak là gì? Lịch sử phát triển (từ JBoss đến CNCF Incubation)
Tại sao cần Identity and Access Management (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 (26.x)
So sánh Keycloak vs Auth0 vs Okta vs Azure AD
Các use cases: SSO, Social Login, LDAP Federation, MFA, API Security
Bài 2: Cài đặt Keycloak - Standalone, Docker và Kubernetes
Cài đặt Keycloak trên Ubuntu/CentOS (bare metal)
Chạy Keycloak với Docker và Docker Compose
Kubernetes Operator deployment
Cấu hình Database backend (PostgreSQL, MySQL, MariaDB)
HTTPS/TLS setup và hostname v2 configuration
Development mode vs Production mode
Bài 3: Admin Console và tạo Realm đầu tiên
Tạo Admin user đầu tiên (Admin Bootstrap & Recovery)
Tổng quan Admin Console UI
Tạo và cấu hình Realm (General, Login, Email, Themes, Keys)
Master Realm vs Custom Realms
Admin CLI (kcadm.sh) cơ bản
Admin REST API overview
Bài 4: Quản lý Users, Groups và User Profile
Tạo và quản lý Users, thiết lập credentials
User Profile: custom attributes, validators, annotations
Progressive Profiling
Groups và Sub-groups, group attributes, role mappings
User self-registration và Required Actions
Impersonation, account deletion, personal data
Bài 5: Roles, Permissions và Access Control
Realm Roles và Client Roles
Composite Roles và Default Roles
Role Mappings cho Users và Groups
Fine-grained Admin Permissions V2
Delegating Realm Administration
Dedicated Realm Admin Consoles
Phần 2: SSO Protocols - OpenID Connect và SAML
Bài 6: OpenID Connect Clients - Cấu hình từ A đến Z
Client types: Public, Confidential, Bearer-only
General Settings, Access Settings, Capability Config
OIDC Auth Flows: Authorization Code, Implicit, Client Credentials, Device Auth
PKCE (Proof Key for Code Exchange)
CIBA (Client Initiated Backchannel Authentication)
Tích hợp OIDC clients với React, Spring Boot, Node.js
Bài 7: SAML Clients và Protocol Mappers
Tạo SAML 2.0 Clients, SAML Bindings (POST, Redirect, Artifact)
SAML Assertions, XML Signature và Encryption
Entity Descriptor Import
OIDC Protocol Mappers: User Attribute, Session Note, Hardcoded, Script
SAML Protocol Mappers
Lightweight Access Tokens và Pairwise Subject Identifier
Bài 8: Client Scopes, Token Management và DPoP
Client Scopes: default vs optional, consent settings
Realm default client scopes, evaluating scopes
Access Token, ID Token, Refresh Token lifecycle
Session và Token timeout configuration
Offline Access, Token Revocation
DPoP (Demonstrating Proof-of-Possession)
Bài 9: Client Policies và Advanced Client Configuration
Client Policies architecture: Policies, Profiles, Conditions, Executors
FAPI 2.0 Security Profile và Message Signing
Client Secret Rotation
Service Accounts và Audience support
Token Exchange (Standard, JWT Authorization Grant RFC 7523)
Keycloak as Authorization Server cho MCP servers
Phần 3: Authentication, MFA và Identity Brokering
Bài 10: Authentication Flows - Tùy chỉnh luồng xác thực
Built-in flows: Browser, Direct Grant, Registration, Reset Credentials
Tạo custom Authentication Flows
Conditional Authenticators (sub-flow executed, client scope)
Step-up Authentication và ACR/LoA mapping
Session Limits (realm-level, client-level)
Dynamic Authentication Flow selection via Client Policies
Bài 11: Multi-Factor Authentication - OTP, WebAuthn và Passkeys
TOTP/HOTP setup với Google Authenticator, FreeOTP
OTP Policy configuration và Recovery Codes
WebAuthn (FIDO2 Security Keys) setup
Passkeys integration (conditional UI, modal UI)
Kerberos Authentication
X.509 Client Certificate Authentication
Bài 12: Identity Brokering và Social Login
Social Login: Google, Facebook, GitHub, Apple, Microsoft
OpenID Connect và SAML Identity Providers
OAuth v2 và Kubernetes Identity Providers
First Login Flow và Account Linking
Identity Provider Mappers và Sync Mode
Client-suggested IdP và IdP logout
Phần 4: User Federation, Organizations và Authorization
Bài 13: User Federation - LDAP và Active Directory
Cấu hình LDAP/AD federation (storage mode, edit mode)
Connection settings: SSL, connection pool, referrals
LDAP Mappers: User Attribute, Full Name, Group, Role
MSAD User Account Control mapper
SSSD/FreeIPA Integration và Kerberos bridge
Custom User Storage SPI
Bài 14: Organizations - Multi-tenancy và CIAM
Bật Organizations feature trong Keycloak
Tạo/quản lý Organizations, Domains, Attributes
Member Management: managed, unmanaged, invitations
Liên kết Identity Providers với Organizations
Identity-first login flow
Mapping Organization claims vào tokens
Bài 15: Authorization Services - Phân quyền chi tiết
Resource Server, Resources, Scopes, Permissions, Policies
Policy types: Role, User, Group, Client, Time, JS, Aggregated
UMA 2.0 và Permission API
Policy Enforcer và Claim Information Points
Tích hợp Authorization vào Spring Boot / Node.js
Evaluation API và troubleshooting permissions
Bài 16: Workflows - Tự động hóa quản trị với IGA
Keycloak Workflows engine (preview)
Workflow definitions và expression language
Defining conditions và steps
Joiner-Mover-Leaver (JML) processes
Automated onboarding/offboarding
Access reviews và common use cases
Phần 5: Themes, Events, Security và Vault
Bài 17: Custom Themes - Login, Account, Admin và Email
Theme system: Login, Account, Admin Console, Email themes
Tạo custom themes, Freemarker templates
Dark mode support, internationalization
PatternFly 5 components
Hot-deploy themes, theme resources
Account Console v3 customization
Bài 18: Event Auditing và Logging
User events và Admin events configuration
Event types và Event listeners
Custom Event Listener SPI
Event metrics cho monitoring
Logging: console, file, JSON, ECS format, syslog
Tích hợp với ELK Stack / Loki
Bài 19: Security Hardening và Brute Force Protection
SSL/HTTPS và Admin endpoint protection
Brute Force Protection (permanent, temporary, combined lockout)
Password Policies
Security Headers: CSP, X-Frame-Options, HSTS
reCAPTCHA setup (v2 và Enterprise)
Vault integration (file-based, Kubernetes Secrets)
Phần 6: Tích hợp ứng dụng thực tế
Bài 20: Tích hợp Keycloak với Spring Boot
Spring Security OAuth2 Resource Server
Spring Security OAuth2 Client
Authorization Client library
Role-based authorization với @PreAuthorize
Token relay và service-to-service communication
Multi-tenancy và testing strategies
Bài 21: Tích hợp Keycloak với React/Angular và Node.js
Keycloak JavaScript adapter (standalone library)
React integration (keycloak-js, react-oidc-context)
Angular integration (angular-auth-oidc-client)
Node.js backend (Passport.js, express-openid-connect)
Token management, silent SSO, protected routes
Best practices cho SPA authentication
Bài 22: Keycloak với Nginx, API Gateway và Microservices
Nginx reverse proxy với auth_request / OAuth2 Proxy
API Gateway: Kong, Traefik, APISIX với Keycloak OIDC
Microservices authentication patterns
Token introspection endpoint
Docker registry v2 authentication
Verifiable Credentials (OID4VCI) - experimental
Phần 7: Production, High Availability và Kubernetes
Bài 23: Keycloak Production Deployment và Database Tuning
Production readiness checklist
Build optimization (kc.sh build)
Database tuning: PostgreSQL, connection pool, additional datasources
Hostname v2, reverse proxy, HTTP/HTTPS settings
JVM tuning, Argon2 hashing, cache configuration
Import/Export realm data
Bài 24: High Availability, Clustering và Multi-site Deployment
Keycloak clustering với Infinispan, jdbc-ping transport
Zero-configuration secure cluster communication
Session replication và persistent user sessions
Multi-site active-passive deployments
Rolling updates và non-blocking health checks
CPU/Memory sizing guide
Bài 25: Kubernetes Operator, Monitoring và Admin CLI
Keycloak Operator: Keycloak CR, KeycloakRealmImport CR
Operator advanced configuration (scheduling, resources, NetworkPolicies)
OpenTelemetry: tracing, metrics, logging
Prometheus metrics và Grafana dashboards
Admin CLI (kcadm.sh) mastery
Backup/Restore strategies và troubleshooting
