Skip to main content

Keycloak Realm Management Helm Values Reference

This page documents all configurable values for the keycloak-realm-management chart. Each values file defines one Keycloak realm and the OIDC clients, identity providers, and user mappings it contains.

tip

For step-by-step setup, see the Getting Started guide. For real-world values examples, see the values/ directory and the ci/ directory in the chart repository.

Realm identity

KeyTypeDefaultDescription
realmIdstring""Required. The realm ID used in Keycloak's internal identifier and in OIDC issuer URLs (e.g. mia-platform, master). Must be unique within the Keycloak instance.
realmNamestring""Display name shown in the Keycloak Admin Console and login page (e.g. "Mia Platform").

Themes

KeyTypeDefaultDescription
themes.loginstring""Login page theme name. Set to mia-platform-keycloak-ui to use the custom Mia Platform login theme. Leave empty to use the Keycloak default.
themes.accountstring""Account management portal theme name. Leave empty to use the Keycloak default.

Identity provider redirector (identityProviderRedirector)

Configures the browser flow's identity-provider-redirector authenticator, which can automatically redirect users to a default identity provider instead of showing the Keycloak login form (e.g. for the master realm, always redirecting to the corporate IdP).

KeyTypeDefaultDescription
identityProviderRedirector.defaultAliasstring""Alias of the identity provider to redirect to by default. Must match an identityProviders[].alias entry. Leave empty to disable the default redirect and show the standard login form.

Products (products)

Controls which Mia Platform product OIDC clients are created in the realm. Setting a product to true renders the corresponding client and scope resources in the realm import. Enable only the products that are deployed in your installation.

KeyTypeDefaultDescription
products.consoleboolfalseCreate the OIDC client and scopes for Mia Platform Console (Homepage & RBAC included).
products.catalogboolfalseCreate the OIDC client and scopes for Context Catalog.
products.aiFoundryboolfalseCreate the OIDC client and scopes for AI Foundry.
products.flowboolfalseCreate the OIDC client and scopes for Mia Flow.
products.authzboolfalseCreate the OIDC client and scopes for the Authorization service.

When a product is enabled, the corresponding urls.* value must be set.

Product URLs (urls)

Base URLs used to compute OIDC redirect URIs, post-logout redirect URIs, and CORS allowed origins for each product's client. All values should include the scheme (e.g. https://...).

KeyTypeDefaultDescription
urls.keycloakstring""Required. Public URL of the Keycloak instance. Used to build issuer URLs in the realm configuration.
urls.consolestring""Console URL. Required when products.console: true.
urls.consoleCmsstring""Console CMS URL (e.g. https://cms.console.example.com). Required when products.console: true.
urls.catalogstring""Catalog URL. Required when products.catalog: true.
urls.aiFoundrystring""AI Foundry URL. Required when products.aiFoundry: true.
urls.flowstring""Mia Flow URL. Required when products.flow: true.
urls.authzstring""Authorization service URL. Required when products.authz: true.

Platform options (options)

KeyTypeDefaultDescription
options.isPaaSboolfalseEnables PaaS-specific configuration. Adjusts certain product client settings for the Mia Platform SaaS topology (different redirect URI patterns, additional org-routing attributes). Do not set for on-premises installations.
options.cimdboolfalseEnables CIMD (Continuous Integration & Monitoring Delivery) integration.

Identity Providers (identityProviders)

A list of external IdP configurations. Each entry is a full Keycloak identityProvider object passed through to the realm import. Supported protocols include OIDC, SAML, and any provider supported by Keycloak.

KeyDescription
identityProviders[].aliasRequired. Unique alias for the IdP within the realm. Used in redirect URIs and mappers.
identityProviders[].displayNameHuman-readable name shown on the login page.
identityProviders[].providerIdProvider type, e.g. oidc or saml.
identityProviders[].enabledWhether the IdP is active.
identityProviders[].trustEmailIf true, the email from the IdP is considered verified without a separate email verification flow.
identityProviders[].config.issuerOIDC issuer URL of the upstream IdP.
identityProviders[].config.authorizationUrlIdP authorization endpoint.
identityProviders[].config.tokenUrlIdP token endpoint.
identityProviders[].config.userInfoUrlIdP userinfo endpoint.
identityProviders[].config.jwksUrlIdP JWKS endpoint for token signature verification.
identityProviders[].config.clientIdClient ID registered on the upstream IdP for the Mia Keycloak broker.
identityProviders[].config.clientAuthMethodClient authentication method. private_key_jwt is strongly recommended: no shared secrets.
identityProviders[].config.defaultScopeOIDC scopes to request (e.g. openid email profile).
identityProviders[].config.pkceEnabledEnable PKCE on the broker flow ("true" / "false" as strings).
identityProviders[].config.pkceMethodPKCE method: S256.
identityProviders[].config.syncModeUser attribute sync mode: FORCE (overwrite on every login) or IMPORT (set on first login only).

Example: corporate OIDC IdP with private_key_jwt:

identityProviders:
- alias: corporate-sso
displayName: Corporate SSO
enabled: true
providerId: oidc
trustEmail: true
config:
issuer: https://idp.example.com
authorizationUrl: https://idp.example.com/oauth2/authorize
tokenUrl: https://idp.example.com/oauth2/token
userInfoUrl: https://idp.example.com/oauth2/userinfo
jwksUrl: https://idp.example.com/oauth2/jwks
clientId: mia-platform-broker
clientAuthMethod: private_key_jwt
defaultScope: openid email profile
pkceEnabled: "true"
pkceMethod: S256
syncMode: FORCE
useJwksUrl: "true"
disableUserInfo: "false"
isAccessTokenJWT: "true"

For organization-based routing (Keycloak kc.org.* attributes), add the relevant config keys to each IdP entry. See the ci/paas-dev-products-values.yaml file in the chart repository for a complete example.

Identity Provider Mappers (identityProviderMappers)

A list of claim/role mappers applied after the IdP authentication. Each entry is a full Keycloak identityProviderMapper object.

KeyDescription
identityProviderMappers[].nameUnique name for the mapper.
identityProviderMappers[].identityProviderAliasAlias of the IdP this mapper belongs to.
identityProviderMappers[].identityProviderMapperMapper type, e.g. oidc-user-attribute-idp-mapper, oidc-role-idp-mapper, oidc-hardcoded-role-idp-mapper.
identityProviderMappers[].configMapper-specific configuration (depends on identityProviderMapper type).
identityProviderMappers:
- name: "map-uid-to-provider-sub"
identityProviderAlias: "corporate-sso"
identityProviderMapper: oidc-user-attribute-idp-mapper
config:
claim: uid
user.attribute: provider_sub
syncMode: IMPORT
- name: "hardcode-reporter-role"
identityProviderAlias: "corporate-sso"
identityProviderMapper: oidc-hardcoded-role-idp-mapper
config:
role: realm/reporter
syncMode: IMPORT

Organizations (organizations)

A list of Keycloak organizations to create in the realm (requires Keycloak ≥ 25.0.0, organizationsEnabled). Each organization owns one or more verified email domains and can be linked to one or more identity providers, enabling automatic IdP routing based on the email domain entered at login.

KeyDescription
organizations[].aliasRequired. Unique identifier for the organization.
organizations[].nameRequired. Human-readable name of the organization.
organizations[].descriptionDescription of the organization.
organizations[].domains[].nameRequired. Domain name associated with the organization (e.g. mia-platform.eu).
organizations[].identityProviders[].aliasAlias of an identity provider linked to this organization. Must match an identityProviders[].alias entry.
organizations:
- alias: mia-platform
name: Mia Platform
description: Mia Platform organization
domains:
- name: mia-platform.eu
identityProviders:
- alias: corporate-sso

SMTP server (smtpServer)

Configure an SMTP server for Keycloak to send email notifications (password reset, email verification, etc.).

KeyTypeDefaultDescription
smtpServer.enabledboolfalseEnable SMTP configuration.
smtpServer.config.hoststring-SMTP host.
smtpServer.config.portstring"587"SMTP port.
smtpServer.config.fromstring-Sender email address.
smtpServer.config.fromDisplayNamestring-Display name shown as the email sender (e.g. "Mia Platform").
smtpServer.config.starttlsboolfalseEnable STARTTLS.
smtpServer.config.authboolfalseEnable SMTP authentication.
smtpServer.config.userstring-SMTP username (when auth: true).
smtpServer.config.passwordstring-SMTP password (when auth: true).

smtpServer.config accepts any additional Keycloak smtpServer field as a pass-through.

IdP settings (idpSettings)

Controls creation of the Mia Platform Identity Provider client used to federate the mia-extensions realm (and other extensibility realms) with mia-platform for organization-based routing.

KeyTypeDefaultDescription
idpSettings.enabledboolfalseCreate the Mia Platform Identity Provider client.
idpSettings.redirectUrislist[]Allowed redirect URIs for the Mia Platform Identity Provider client.
idpSettings.postLogoutRedirectUrislist[]Allowed post-logout redirect URIs for the Mia Platform Identity Provider client.
idpSettings.clientSecretstring""Client secret for the Mia Platform Identity Provider client. Should be injected via a vault placeholder (e.g. ${vault.mia-platform-identity-provider-client-secret}), not hardcoded.

Custom clients (customClients)

Pass-through list of additional OIDC client definitions not covered by the products.* flags. Each entry is a full Keycloak client object.

customClients:
- clientId: "my-custom-service"
name: "My Custom Service"
publicClient: false
serviceAccountsEnabled: true
standardFlowEnabled: false
redirectUris:
- "https://my-service.example.com/callback"

Custom users (customUsers)

Pass-through list of initial users to create in the realm. Each entry is a full Keycloak user object.

customUsers:
- username: "service-admin"
email: "service-admin@example.com"
enabled: true
realmRoles:
- admin
warning

Custom users with sensitive credentials should not be defined in plain-text values files. Use this field only for non-sensitive technical accounts or during initial bootstrapping.

Complete example

# mia-platform-values.yaml
realmId: mia-platform
realmName: Mia Platform

urls:
keycloak: https://keycloak.example.com
console: https://console.example.com
catalog: https://catalog.example.com
aiFoundry: https://ai-foundry.example.com

products:
console: true
catalog: true
aiFoundry: true

themes:
login: my-custom-theme

identityProviders:
- alias: corporate-sso
displayName: Corporate SSO
enabled: true
providerId: oidc
trustEmail: true
config:
issuer: https://idp.example.com
authorizationUrl: https://idp.example.com/oauth2/authorize
tokenUrl: https://idp.example.com/oauth2/token
userInfoUrl: https://idp.example.com/oauth2/userinfo
jwksUrl: https://idp.example.com/oauth2/jwks
clientId: mia-platform-broker
clientAuthMethod: private_key_jwt
defaultScope: openid email profile
pkceEnabled: "true"
pkceMethod: S256
syncMode: FORCE
useJwksUrl: "true"
disableUserInfo: "false"
isAccessTokenJWT: "true"

identityProviderMappers:
- name: assign-reporter-role
identityProviderAlias: corporate-sso
identityProviderMapper: oidc-hardcoded-role-idp-mapper
config:
role: realm/reporter
syncMode: IMPORT

organizations:
- alias: corporate
name: Corporate
description: Corporate organization
domains:
- name: example.com
identityProviders:
- alias: corporate-sso

smtpServer:
enabled: true
config:
host: smtp.example.com
port: "587"
from: noreply@example.com
fromDisplayName: "Mia Platform"
starttls: true
auth: true
user: smtp-user
password: smtp-password