keycloak-administration
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".
What this skill does
# 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: 1. **New Installation** → Continue to Installation & Setup 2. **Realm & User Management** → Load [realm-management.md](references/realm-management.md) 3. **Client Configuration** → Load [client-configuration.md](references/client-configuration.md) 4. **Authentication & SSO** → Load [authentication-sso.md](references/authentication-sso.md) 5. **Authorization & RBAC** → Load [authorization-rbac.md](references/authorization-rbac.md) 6. **User Federation (LDAP/AD)** → Load [user-federation.md](references/user-federation.md) 7. **Security Hardening** → Load [security-hardening.md](references/security-hardening.md) 8. **High Availability & Scaling** → Load [ha-scalability.md](references/ha-scalability.md) 9. **Troubleshooting** → Load [troubleshooting.md](references/troubleshooting.md) 10. **Integration Examples** → Load [integration-examples.md](references/integration-examples.md) ## Installation & Setup ## Deployment Options **1. Standalone Mode (Development/Testing)** ```bash # 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** ```bash # 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** ```bash 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 1. **Admin Account**: Create on first access with strong password (12+ chars) 2. **Hostname**: Configure `KC_HOSTNAME` for production 3. **SSL/TLS**: Set up certificates (required for production) 4. **Database**: Configure PostgreSQL connection 5. **Email**: Configure SMTP for notifications ```properties # Email settings KC_SMTP_HOST=smtp.example.com KC_SMTP_PORT=587 [email protected] 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](references/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](references/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](references/authorization-rbac.md) ## Common Tasks ### Configure SSO for Applications 1. **Create OIDC client** for your application 2. **Set redirect URIs** (exact URLs, no wildcards) 3. **Configure client type**: - Confidential: Server-side apps (need client secret) - Public: SPAs/mobile apps (use PKCE) 4. **Obtain configuration** from realm endpoint: ``` https://keycloak.example.com/realms/{realm}/.well-known/openid-configuration ``` 5. **Integrate** with your app (see [integration-examples.md](references/integration-examples.md)) ### Enable Multi-Factor Authentication 1. Authentication → Flows 2. Duplicate Browser flow 3. Add OTP or WebAuthn authenticator 4. Set as Required or Conditional 5. Bind to realm 6. Users configure MFA on next login Details: See [authentication-sso.md](references/authentication-sso.md) ### Connect to LDAP/Active Directory 1. User Federation → Add LDAP Provider 2. Configure connection (URL, bind DN, credentials) 3. Set search base: `ou=users,dc=example,dc=com` 4. Configure mappers for attributes 5. Test connection and sync users Details: See [user-federation.md](references/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](references/security-hardening.md) ### Set Up High Availability 1. **Shared database**: PostgreSQL/MySQL for all nodes 2. **Distributed caching**: Configure Infinispan 3. **Load balancer**: HAProxy/NGINX with sticky sessions 4. **Health checks**: Use `/health/ready` and `/health/live` 5. **Monitoring**: Prometheus metrics at `/metrics` Details: See [ha-scalability.md](references/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](references/troubleshooting.md) ## Essential Commands ```bash # 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](references/realm-management.md)** - Realm configuration, users, groups - **[client-configuration.md](references/client-configuration.md)** - OIDC/SAML clients, scopes, mappers - **[authentication-sso.md](references/authentication-sso.md)** - Auth flows, MFA, social login, IdP - **[authorization-rbac.md](references/authorization-rbac.md)** - Roles
Related in Ads & Marketing
ads
IncludedMulti-platform paid advertising audit and optimization skill. Analyzes Google, Meta, YouTube, LinkedIn, TikTok, Microsoft, and Apple Ads. 250+ checks with scoring, parallel agents, industry templates, and AI creative generation.
banana
IncludedAI image generation Creative Director powered by Google Gemini Nano Banana models. Use this skill for ANY request involving image creation, editing, visual asset production, or creative direction. Triggers on: generate an image, create a photo, edit this picture, design a logo, make a banner, visual for my anything, and all /banana commands. Handles text-to-image, image editing, multi-turn creative sessions, batch workflows, and brand presets.
rpg-migration-analyzer
IncludedAnalyzes legacy RPG (Report Program Generator) programs from AS/400 and IBM i systems for migration to modern Java applications. Extracts business logic from RPG III/IV/ILE source code, identifies data structures (D-specs), file operations (F-specs), program dependencies (CALLB/CALLP), and converts RPG constructs to Java equivalents. Generates migration reports, complexity estimates, and Java implementation strategies with POJO classes, JPA entities, and service methods. Use when modernizing AS/400 or IBM i legacy systems, analyzing RPG source files (.rpg, .rpgle, .RPGLE), converting RPG to Java, mapping data specifications to Java classes, planning legacy system migration, or when user mentions RPG analysis, Report Program Generator, RPG III/IV/ILE, AS/400 modernization, IBM i migration, packed decimal conversion, or mainframe application rewrite.
brand-library-architect
IncludedBuild a complete brand library for a product — visual asset render pipeline, brand documentation set (BRAND, COPY, MANIFESTO, BIOS, FAQ, GLOSSARY, TONE, PRICING), open-source convention files (README, CONTRIBUTING, SECURITY, CODE_OF_CONDUCT), and a self-contained press kit. This skill should be used when the user asks to "build a brand library / brand kit / press kit / brand assets" for a product, "set up a brand library workflow," "create a positioning manifesto plus visual identity," or any combination of brand documentation + visual asset pipeline. Apply phase-by-phase or run end-to-end. Templates are product-agnostic and use {{TOKEN}} placeholders the skill prompts the user to fill.
writing-tech-post
IncludedAuthors engineering blog posts end-to-end: launch deep-dives, incident postmortems, architecture migrations, performance case studies, tutorials, AI/agent system writeups, security disclosures, and research-to-product translations. Picks the correct archetype, plans the abstraction ladder, enforces an evidence cadence (diagrams, benchmarks, profiles, traces, code, ablations), tunes voice against publisher house styles (Datadog, Vercel, GitHub, AWS, Meta, Cloudflare, Jane Street), and runs a pre-publish gate for narrative momentum and disclosure ethics. Use when drafting a new engineering post, restructuring a draft that feels flat, deciding which evidence form belongs where, validating that depth and product context are balanced, or preparing a postmortem, migration, or performance narrative for external publication. Do not use for API reference documentation, README authoring, marketing copy, release notes, generic SEO content, ghost-written executive thought leadership, or non-engineering long-form essays.
blog-google
IncludedGoogle API integration for blog performance: PageSpeed Insights, CrUX Core Web Vitals with 25-week history, Search Console performance, URL Inspection, Indexing API, GA4 organic traffic, NLP entity analysis for E-E-A-T, YouTube video search for embedding, and Google Ads Keyword Planner. Progressive feature availability based on credential tier (API key, OAuth/service account, GA4, Ads). Shares config with claude-seo at ~/.config/claude-seo/google-api.json. Use when user says "google data", "page speed", "core web vitals", "search console", "indexation", "GA4", "keyword research", "nlp entities", "blog performance", "youtube search", "google api setup".