KeyCloak Administration
Overview
Provides systematic KeyCloak administration guidance covering installation, configuration, realm management, security hardening, and operational best practices. Supports both standalone and clustered deployments for secure, scalable identity and access management (IAM) solutions.
Quick Start Guide
Choose your task and load the appropriate reference:
- New Installation → Continue to Installation & Setup
- Realm & User Management → Load realm-management.md
- Client Configuration → Load client-configuration.md
- Authentication & SSO → Load authentication-sso.md
- Authorization & RBAC → Load authorization-rbac.md
- User Federation (LDAP/AD) → Load user-federation.md
- Security Hardening → Load security-hardening.md
- High Availability & Scaling → Load ha-scalability.md
- Troubleshooting → Load troubleshooting.md
- Integration Examples → Load integration-examples.md
Installation & Setup
Deployment Options
1. Standalone Mode (Development/Testing)
# Download and start KeyCloak
wget https://github.com/keycloak/keycloak/releases/download/[VERSION]/keycloak-[VERSION].tar.gz
tar -xvzf keycloak-[VERSION].tar.gz
cd keycloak-[VERSION]
bin/kc.sh start-dev
# Access: http://localhost:8080
# Create initial admin user on first access
2. Production Mode with Database
# Configure and build
bin/kc.sh build --db=postgres
# Set environment variables
export KC_DB=postgres
export KC_DB_URL=jdbc:postgresql://localhost/keycloak
export KC_DB_USERNAME=keycloak
export KC_DB_PASSWORD=password
export KC_HOSTNAME=keycloak.example.com
# Start production mode
bin/kc.sh start --optimized
3. Docker Deployment
docker run -d \
--name keycloak \
-p 8080:8080 \
-e KEYCLOAK_ADMIN=admin \
-e KEYCLOAK_ADMIN_PASSWORD=admin \
quay.io/keycloak/keycloak:latest \
start-dev
4. Kubernetes - Use KeyCloak Operator or Helm charts
Initial Configuration Steps
- Admin Account: Create on first access with strong password (12+ chars)
- Hostname: Configure
KC_HOSTNAME for production
- SSL/TLS: Set up certificates (required for production)
- Database: Configure PostgreSQL connection
- Email: Configure SMTP for notifications
# Email settings
KC_SMTP_HOST=smtp.example.com
KC_SMTP_PORT=587
KC_SMTP_FROM=noreply@example.com
KC_SMTP_STARTTLS=true
Core Concepts
Realms
- Master realm: Administrative realm (don't use for apps)
- Application realms: Separate realms per app/environment
- Create: Admin Console → Create Realm
Users & Groups
- Users: Individual accounts with credentials
- Groups: Organize users hierarchically
- Attributes: Custom key-value pairs
- Federation: Sync from LDAP/AD (see user-federation.md)
Clients
- OIDC clients: Modern OAuth 2.0/OIDC applications
- SAML clients: Legacy enterprise applications
- Types: Confidential (server-side) or Public (SPA/mobile)
- Details: See client-configuration.md
Roles & Permissions
- Realm roles: Global across all clients
- Client roles: Specific to one client
- Composite roles: Inherit multiple roles
- Details: See authorization-rbac.md
Common Tasks
Configure SSO for Applications
Create OIDC client for your application
Set redirect URIs (exact URLs, no wildcards)
Configure client type:
- Confidential: Server-side apps (need client secret)
- Public: SPAs/mobile apps (use PKCE)
Obtain configuration from realm endpoint:
https://keycloak.example.com/realms/{realm}/.well-known/openid-configuration
Integrate with your app (see integration-examples.md)
Enable Multi-Factor Authentication
- Authentication → Flows
- Duplicate Browser flow
- Add OTP or WebAuthn authenticator
- Set as Required or Conditional
- Bind to realm
- Users configure MFA on next login
Details: See authentication-sso.md
Connect to LDAP/Active Directory
- User Federation → Add LDAP Provider
- Configure connection (URL, bind DN, credentials)
- Set search base:
ou=users,dc=example,dc=com
- Configure mappers for attributes
- Test connection and sync users
Details: See user-federation.md
Secure Production Deployment
Essential security measures:
- SSL/TLS: Required for all production traffic
- Password policy: 12+ chars, complexity requirements
- Brute force protection: Enable with lockout
- Token lifespans: Short access tokens (5-15 min)
- Admin MFA: Enable for all admin accounts
- Event logging: Monitor authentication events
Complete checklist: See security-hardening.md
Set Up High Availability
- Shared database: PostgreSQL/MySQL for all nodes
- Distributed caching: Configure Infinispan
- Load balancer: HAProxy/NGINX with sticky sessions
- Health checks: Use
/health/ready and /health/live
- Monitoring: Prometheus metrics at
/metrics
Details: See ha-scalability.md
Troubleshooting Quick Reference
Users Can't Login
- Check user enabled status
- Verify redirect URIs match exactly
- Review required actions
- Check Events → Login Events
Token Validation Fails
- Verify realm public key
- Check token expiration
- Validate issuer URL
- Confirm audience claim
LDAP Sync Issues
- Test LDAP connection
- Verify bind credentials
- Check user DN path
- Run manual sync
Full troubleshooting guide: See troubleshooting.md
Essential Commands
# Start modes
bin/kc.sh start-dev # Development
bin/kc.sh start --optimized # Production
# Build for database
bin/kc.sh build --db=postgres
# Export/Import realm
bin/kc.sh export --dir /backup --realm my-realm
bin/kc.sh import --dir /backup
# Admin CLI
bin/kcadm.sh config credentials --server http://localhost:8080 --realm master --user admin
bin/kcadm.sh create realms -s realm=my-realm -s enabled=true
bin/kcadm.sh create users -r my-realm -s username=john -s enabled=true
bin/kcadm.sh set-password -r my-realm --username john --new-password secret
Best Practices Summary
Architecture
- Separate realms per application/environment
- Use groups for structure, roles for permissions
- Plan token lifespans based on security needs
- Enable session replication in clusters
Security
- Always use SSL/TLS in production
- Enable MFA for privileged accounts
- Implement brute force protection
- Regular security audits
- Principle of least privilege
Operations
- Automate backups and test restores
- Monitor metrics and set alerts
- Document configurations
- Regular updates and patching
- Capacity planning
Development
- Use PKCE for public clients
- Implement proper token refresh
- Handle token expiration gracefully
- Validate tokens correctly
- Use appropriate grant types
Reference Documentation
For detailed guidance, load the appropriate reference file:
- realm-management.md - Realm configuration, users, groups
- client-configuration.md - OIDC/SAML clients, scopes, mappers
- authentication-sso.md - Auth flows, MFA, social login, IdP
- authorization-rbac.md - Roles, permissions, fine-grained auth
- user-federation.md - LDAP/AD integration, custom providers
- security-hardening.md - Security policies, monitoring, auditing
- ha-scalability.md - Clustering, performance, backup, DR
- troubleshooting.md - Common issues, logging, diagnostics
- integration-examples.md - Spring Boot, Node.js, React, Python, Docker, K8s
Additional Resources
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: keycloak-administration3description: Provides comprehensive KeyCloak administration guidance including realm management, user/group administration, client configuration, authentication flows, identity brokering, authorization policies, security hardening, and troubleshooting. Covers SSO configuration, SAML/OIDC setup, role-based access control (RBAC), user federation (LDAP/AD), social login integration, multi-factor authentication (MFA), and high availability deployments. Use when configuring KeyCloak, setting up SSO, managing realms and clients, troubleshooting authentication issues, implementing RBAC, or when users mention "KeyCloak", "SSO", "OIDC", "SAML", "identity provider", "IAM", "authentication flow", "user federation", "realm configuration", or "access management".4---56# KeyCloak Administration78## Overview910Provides systematic KeyCloak administration guidance covering installation, configuration, realm management, security hardening, and operational best practices. Supports both standalone and clustered deployments for secure, scalable identity and access management (IAM) solutions.1112## Quick Start Guide1314Choose your task and load the appropriate reference:15161. **New Installation** → Continue to Installation & Setup172. **Realm & User Management** → Load [realm-management.md](references/realm-management.md)183. **Client Configuration** → Load [client-configuration.md](references/client-configuration.md)194. **Authentication & SSO** → Load [authentication-sso.md](references/authentication-sso.md)205. **Authorization & RBAC** → Load [authorization-rbac.md](references/authorization-rbac.md)216. **User Federation (LDAP/AD)** → Load [user-federation.md](references/user-federation.md)227. **Security Hardening** → Load [security-hardening.md](references/security-hardening.md)238. **High Availability & Scaling** → Load [ha-scalability.md](references/ha-scalability.md)249. **Troubleshooting** → Load [troubleshooting.md](references/troubleshooting.md)2510. **Integration Examples** → Load [integration-examples.md](references/integration-examples.md)2627## Installation & Setup2829## Deployment Options3031**1. Standalone Mode (Development/Testing)**3233```bash34# Download and start KeyCloak35wget https://github.com/keycloak/keycloak/releases/download/[VERSION]/keycloak-[VERSION].tar.gz36tar -xvzf keycloak-[VERSION].tar.gz37cd keycloak-[VERSION]38bin/kc.sh start-dev3940# Access: http://localhost:808041# Create initial admin user on first access42```4344**2. Production Mode with Database**4546```bash47# Configure and build48bin/kc.sh build --db=postgres4950# Set environment variables51export KC_DB=postgres52export KC_DB_URL=jdbc:postgresql://localhost/keycloak53export KC_DB_USERNAME=keycloak54export KC_DB_PASSWORD=password55export KC_HOSTNAME=keycloak.example.com5657# Start production mode58bin/kc.sh start --optimized59```6061**3. Docker Deployment**6263```bash64docker run -d \65 --name keycloak \66 -p 8080:8080 \67 -e KEYCLOAK_ADMIN=admin \68 -e KEYCLOAK_ADMIN_PASSWORD=admin \69 quay.io/keycloak/keycloak:latest \70 start-dev71```7273**4. Kubernetes** - Use KeyCloak Operator or Helm charts7475### Initial Configuration Steps76771. **Admin Account**: Create on first access with strong password (12+ chars)782. **Hostname**: Configure `KC_HOSTNAME` for production793. **SSL/TLS**: Set up certificates (required for production)804. **Database**: Configure PostgreSQL connection815. **Email**: Configure SMTP for notifications8283```properties84# Email settings85KC_SMTP_HOST=smtp.example.com86KC_SMTP_PORT=58787KC_SMTP_FROM=noreply@example.com88KC_SMTP_STARTTLS=true89```9091## Core Concepts9293### Realms9495- **Master realm**: Administrative realm (don't use for apps)96- **Application realms**: Separate realms per app/environment97- Create: Admin Console → Create Realm9899### Users & Groups100101- **Users**: Individual accounts with credentials102- **Groups**: Organize users hierarchically103- **Attributes**: Custom key-value pairs104- **Federation**: Sync from LDAP/AD (see [user-federation.md](references/user-federation.md))105106### Clients107108- **OIDC clients**: Modern OAuth 2.0/OIDC applications109- **SAML clients**: Legacy enterprise applications110- **Types**: Confidential (server-side) or Public (SPA/mobile)111- Details: See [client-configuration.md](references/client-configuration.md)112113### Roles & Permissions114115- **Realm roles**: Global across all clients116- **Client roles**: Specific to one client117- **Composite roles**: Inherit multiple roles118- Details: See [authorization-rbac.md](references/authorization-rbac.md)119120## Common Tasks121122### Configure SSO for Applications1231241. **Create OIDC client** for your application1252. **Set redirect URIs** (exact URLs, no wildcards)1263. **Configure client type**:127 - Confidential: Server-side apps (need client secret)128 - Public: SPAs/mobile apps (use PKCE)1294. **Obtain configuration** from realm endpoint:130131 ```132 https://keycloak.example.com/realms/{realm}/.well-known/openid-configuration133 ```1341355. **Integrate** with your app (see [integration-examples.md](references/integration-examples.md))136137### Enable Multi-Factor Authentication1381391. Authentication → Flows1402. Duplicate Browser flow1413. Add OTP or WebAuthn authenticator1424. Set as Required or Conditional1435. Bind to realm1446. Users configure MFA on next login145146Details: See [authentication-sso.md](references/authentication-sso.md)147148### Connect to LDAP/Active Directory1491501. User Federation → Add LDAP Provider1512. Configure connection (URL, bind DN, credentials)1523. Set search base: `ou=users,dc=example,dc=com`1534. Configure mappers for attributes1545. Test connection and sync users155156Details: See [user-federation.md](references/user-federation.md)157158### Secure Production Deployment159160Essential security measures:161162- **SSL/TLS**: Required for all production traffic163- **Password policy**: 12+ chars, complexity requirements164- **Brute force protection**: Enable with lockout165- **Token lifespans**: Short access tokens (5-15 min)166- **Admin MFA**: Enable for all admin accounts167- **Event logging**: Monitor authentication events168169Complete checklist: See [security-hardening.md](references/security-hardening.md)170171### Set Up High Availability1721731. **Shared database**: PostgreSQL/MySQL for all nodes1742. **Distributed caching**: Configure Infinispan1753. **Load balancer**: HAProxy/NGINX with sticky sessions1764. **Health checks**: Use `/health/ready` and `/health/live`1775. **Monitoring**: Prometheus metrics at `/metrics`178179Details: See [ha-scalability.md](references/ha-scalability.md)180181## Troubleshooting Quick Reference182183### Users Can't Login184185- Check user enabled status186- Verify redirect URIs match exactly187- Review required actions188- Check Events → Login Events189190### Token Validation Fails191192- Verify realm public key193- Check token expiration194- Validate issuer URL195- Confirm audience claim196197### LDAP Sync Issues198199- Test LDAP connection200- Verify bind credentials201- Check user DN path202- Run manual sync203204Full troubleshooting guide: See [troubleshooting.md](references/troubleshooting.md)205206## Essential Commands207208```bash209# Start modes210bin/kc.sh start-dev # Development211bin/kc.sh start --optimized # Production212213# Build for database214bin/kc.sh build --db=postgres215216# Export/Import realm217bin/kc.sh export --dir /backup --realm my-realm218bin/kc.sh import --dir /backup219220# Admin CLI221bin/kcadm.sh config credentials --server http://localhost:8080 --realm master --user admin222bin/kcadm.sh create realms -s realm=my-realm -s enabled=true223bin/kcadm.sh create users -r my-realm -s username=john -s enabled=true224bin/kcadm.sh set-password -r my-realm --username john --new-password secret225```226227## Best Practices Summary228229### Architecture230231- Separate realms per application/environment232- Use groups for structure, roles for permissions233- Plan token lifespans based on security needs234- Enable session replication in clusters235236### Security237238- Always use SSL/TLS in production239- Enable MFA for privileged accounts240- Implement brute force protection241- Regular security audits242- Principle of least privilege243244### Operations245246- Automate backups and test restores247- Monitor metrics and set alerts248- Document configurations249- Regular updates and patching250- Capacity planning251252### Development253254- Use PKCE for public clients255- Implement proper token refresh256- Handle token expiration gracefully257- Validate tokens correctly258- Use appropriate grant types259260## Reference Documentation261262For detailed guidance, load the appropriate reference file:263264- **[realm-management.md](references/realm-management.md)** - Realm configuration, users, groups265- **[client-configuration.md](references/client-configuration.md)** - OIDC/SAML clients, scopes, mappers266- **[authentication-sso.md](references/authentication-sso.md)** - Auth flows, MFA, social login, IdP267- **[authorization-rbac.md](references/authorization-rbac.md)** - Roles, permissions, fine-grained auth268- **[user-federation.md](references/user-federation.md)** - LDAP/AD integration, custom providers269- **[security-hardening.md](references/security-hardening.md)** - Security policies, monitoring, auditing270- **[ha-scalability.md](references/ha-scalability.md)** - Clustering, performance, backup, DR271- **[troubleshooting.md](references/troubleshooting.md)** - Common issues, logging, diagnostics272- **[integration-examples.md](references/integration-examples.md)** - Spring Boot, Node.js, React, Python, Docker, K8s273274## Additional Resources275276- Official documentation: <https://www.keycloak.org/documentation>277- Admin CLI reference for automation278- Client adapter docs for frameworks279- Community forums for support280281---282> Converted and distributed by [TomeVault](https://tomevault.io/claim/dauquangthanh) — claim your Tome and manage your conversions.283<!-- tomevault:4.0:skill_md:2026-04-11 -->