+
Skip to content

Releases: keycloak/keycloak

nightly

27 Sep 02:22
Compare
Choose a tag to compare
nightly Pre-release
Pre-release
Selected client ID is a string and not an array

Closes #41080

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>

26.3.1

09 Jul 15:41
Compare
Choose a tag to compare

Upgrading

Before upgrading refer to the migration guide for a complete list of changes.

All resolved issues

Enhancements

  • #40851 Upgrade to Infinispan 15.0.16.Final
  • #40962 Update limitations of the preview feature rolling updates for patch releases infinispan

Bugs

  • #35932 Importing a realm takes more than 1 minute when multiple others exist. dist/quarkus
  • #40368 NPE during loading user groups with concurrent deletion storage
  • #40713 Unable to configure TLS reloading in Keycloak version 26.2.0 or later account/api
  • #40838 Mark options for additional datasources as preview dist/quarkus
  • #40890 Keycloak Operator 26.3.0 fails to update to 26.3.0 operator
  • #40930 Docs: server_development/topics/themes.adoc docs
  • #40954 Keycloak 26.3.0 Regression: Failed to login if web-authn is disabled core

26.3.0

02 Jul 12:26
Compare
Choose a tag to compare

Highlights

This release delivers advancements to optimize your system and improve the experience of users, developers and administrators:

  • Account recovery with 2FA recovery codes, protecting users from lockout.

  • Simplified experiences for application developers with streamlined WebAuthn/Passkey registration and simplified account linking to identity providers via application initiated actions.

  • Broader connectivity with the ability to broker with any OAuth 2.0 compliant authorization server, and enhanced trusted email verification for OpenID Connect providers.

  • Asynchronous logging for higher throughput and lower latency, ensuring more efficient deployments.

  • For administrators, experimental rolling updates for patch releases mean minimized downtime and smoother upgrades.

Read on to learn more about each new feature, and find additional details in the upgrading guide if you are upgrading from a previous release of Keycloak.

Recovering your account if you lose your 2FA credentials

When using for example a one-time-password (OTP) generators as a second factor for authenticating users (2FA), a user can get locked out of their account when they, for example, lose their phone that contains the OTP generator. To prepare for such a case, the recovery codes feature allows users to print a set of recovery codes as an additional second factor. If the recovery codes are then allowed as an alternative 2FA in the login flow, they can be used instead of the OTP generated passwords.

With this release, the recovery codes feature is promoted from preview to a supported feature. For newly created realms, the browser flow now includes the Recovery Authentication Code Form as Disabled, and it can be switched to Alternative by admins if they want to use this feature.

For more information about this 2FA method, see the Recovery Codes chapter in the Server Administration Guide.

Performance improvements to import, export and migration

The time it takes to run imports, exports or migrations involving a large number of realms has been improved. There is no longer a cumulative performance degradation for each additional realm processed.

Simplified registration for WebAuthn and Passkeys

Both WebAuthn Register actions (webauthn-register and webauthn-register-passwordless) which are also used for Passkeys now support a parameter skip_if_exists when initiated by the application (AIA).

This should make it more convenient to use the AIA in scenarios where a user has already set up WebAuthn or Passkeys. The parameter allows skipping the action if the user already has a credential of that type.

For more information, see the Registering WebAuthn credentials using AIA chapter in the Server Administration Guide.

Simplified linking of the user account to an identity provider

Client-initiated linking a user account to the identity provider is now based on application-initiated action (AIA) implementation. This functionality aligns configuring this functionality and simplifies the error handling the calling of the client application, making it more useful for a broader audience.

The custom protocol, which was previously used for client-initiated account linking, is now deprecated.

Brokering with OAuth v2 compliant authorization servers

In previous releases Keycloak already supported federation with other OpenID Connect and SAML providers, as well as with several Social Providers like GitHub and Google which are based on OAuth 2.0.

The new OAuth 2.0 broker now closes the gap to federate with any OAuth 2.0 provider. This then allows you to federate, for example, with Amazon or other providers. As this is a generic provider, you will need to specify the different claims and a user info endpoint in the provider’s configuration.

For more information, see the OAuth v2 identity providers chapter in the Server Administration Guide.

Trusted email verification when brokering OpenID Connect Providers

Until now, the OpenID Connect broker did not support the standard email_verified claim available from the ID Tokens issued by OpenID Connect Providers.

Starting with this release, Keycloak supports this standard claim as defined by the OpenID Connect Core Specification for federation.

Whenever users are federated for the first time or re-authenticating and if the Trust email setting is enabled, Sync Mode is set to FORCE and the provider sends the email_verified claim, the user account will have their email marked according to the email_verified claim. If the provider does not send the claim, it defaults to the original behavior and sets the email as verified.

Asynchronous logging for higher throughput and lower latency

All available log handlers now support asynchronous logging capabilities. Asynchronous logging helps deployments that require high throughput and low latency.

For more details on this opt-in feature, see the Logging guide.

Rolling updates for patch releases for minimized downtime (preview)

In the previous release, the Keycloak Operator was enhanced to support performing rolling updates of the Keycloak image if both images contain the same version. This is useful, for example, when switching to an optimized image, changing a theme or a provider source code.

In this release, we extended this to perform rolling update when the new image contains a future patch release from the same major.minor release stream as a preview feature. This can reduce the service’s downtime even further, as downtime is only needed when upgrading from a different minor or major version.

Read more on how to enable this feature in update compatibility command.

Passkeys integrated in the default username forms

In this release Keycloak integrates Passkeys in the default authentications forms. A new switch Enable Passkeys is available in the configuration, AuthenticationPoliciesWebauthn Passwordless Policy, that seamlessly incorporates passkeys support to the realm. With just one click, Keycloak offers conditional and modal user interfaces in the default login forms to allow users to authenticate with a passkey.

The Passkeys feature is still in preview. Follow the Enabling and disabling features guide to enable it.

Upgrading

Before upgrading refer to the migration guide for a complete list of changes.

All resolved issues

New features

  • #21995 Configurable probes in the Operator operator
  • #29116 Add supported c...
Read more

26.2.5

28 May 06:49
Compare
Choose a tag to compare

Upgrading

Before upgrading refer to the migration guide for a complete list of changes.

All resolved issues

Enhancements

  • #39469 Fix Securing Apps links to adapters docs
  • #39486 Email server credentials can be harvested through host/port manipulation admin/api
  • #39541 Fix doc link to FGAP v1 docs
  • #39543 Apply edits to Operators Guide docs
  • #39572 Edit Observability Guide docs
  • #39590 Fix callouts in Operator guide docs
  • #39638 Sessions from Infinispan should be mapped lazily for the Admin UI
  • #39651 Speed up Infinispan list of all sessions be more eagerly remove old client sessions
  • #39665 When logging in, all client sessions are loaded which is slow oidc

Bugs

  • #39130 Authorization Code Flow Fails Scope Validation After Credential Definition Migration to Realm Level oid4vc
  • #39157 [quarkus-next] TestEngine with ID 'junit-jupiter' failed to discover tests dist/quarkus
  • #39264 [OID4VCI] Documentation Errors docs
  • #39358 Aggregated policy: Cannot select policies that do not appear in the drop-down list admin/ui
  • #39450 quarkus runtime options are treated as buildtime options dist/quarkus
  • #39496 [26.2.3/26.1.5] Regression: empty ClientList in UI for Custom UserStorageProvider admin/ui
  • #39499 UI does not show user's attributes after reentering the Attributes TAB admin/ui
  • #39502 Refreshed tokens are not persisted for IDP token exchange token-exchange
  • #39509 UI does not show organization's attributes after reentering the Attributes TAB account/ui
  • #39538 Autocomplete in Mapper type of user federation broken admin/ui
  • #39540 Forms IT tests breaks with Chrome 136.0.7103.59 ci
  • #39612 Unable to change the OTP hash algorithm admin/ui
  • #39614 Keycloak not using custom Infinispan config infinispan
  • #39663 Duplicate validation message “Please specify username.” shown on login form login/ui
  • #39693 Clicking on the jump links removes the localization of the UI admin/ui
  • #39697 Authorization documentation shows the wrong view authorization-services
  • #39710 Recreate update is not scaling down the statefulset to zero operator
  • #39724 Hibernate LazyInitializationException when deleting client with CompositeRoles core
  • #39753 POST realm API returns 400 on conflict instead of 409 in version 26.2.4 admin/api
  • #39798 Documentation has outdated link to the "latest" branch of quickstarts docs
  • #39800 [KEYCLOAK CI] - AuroraDB IT - Create EC2 runner instance ci

26.2.4

08 May 09:10
Compare
Choose a tag to compare

Upgrading

Before upgrading refer to the migration guide for a complete list of changes.

All resolved issues

Enhancements

  • #39418 Clarify when to use podman docs

Bugs

  • #35278 Double click on social provider link causes page has expired error login/ui
  • #38918 IPv6 support: Broker tests failing with proxy configuration ci
  • #39021 After migrating to newer Keycloak, token refreshes using inherited offline sessions return access tokens with invalid exp value oidc
  • #39023 Keycloak 26.2.0 UI Performance Degradation admin/ui
  • #39173 duplicate key value violates unique constraint "constraint_offl_cl_ses_pk3" infinispan
  • #39454 JGroups errors when running a containerized Keycloak in Strict FIPS mode and with Istio infinispan
  • #39500 Update Job Pod is listed in the keycloak discovery service operator

26.2.3

05 May 11:12
Compare
Choose a tag to compare

Upgrading

Before upgrading refer to the migration guide for a complete list of changes.

All resolved issues

New features

  • #38985 Possibility to log details and representation to the jboss-logging listener

Enhancements

  • #39080 Standardize introductory text in Keycloak guides

Bugs

  • #38104 Temporary failure in name resolution with nip.io ci
  • #38145 Unknown error on authentication-flow delete action admin/ui
  • #38482 SAML client certificate not persisted admin/ui
  • #38487 [Keycloak Operator CI] - Test remote (slow) - UpdateTest.testExplicitStrategy ci
  • #38660 Ldap federation seems to open and keep open a new thread/connection for each ldap request ldap
  • #38671 Duplicate Key Violation When Reauthenticating After Account Deletion via Google identity-brokering
  • #38703 Password Policy Changes get overwritten in the UI admin/ui
  • #38799 Kerberos principal attribute value "comes back" when cleared. admin/ui
  • #38873 Client Credentials tab : "Allow regex pattern comparison" toggle is always "On" on page load admin/ui
  • #38911 Filtering of user- and admin-events by dateTo always returns empty results admin/api
  • #38932 Home button always redirects to master realm when permission denied admin/ui
  • #38934 UI: Readonly/disabled profile form input fields are visually indistinguishable from active fields account/ui
  • #38964 [26.2.0/26.1.5] Regression: ClientList value is empty in UI for Custom UserStorageProviderFactory admin/ui
  • #38970 Authentication request can fail with `unknown_error` authentication
  • #39026 Fine-grained-permssion v2 Display problem admin/fine-grained-permissions
  • #39037 UserInfo request fails by using an access token obtained in Hybrid flow with offline_access scope oidc
  • #39046 Keycloak 26.2.0 can't authenticate to the H2 database after the upgrade core
  • #39055 After import of keys an export doesn't include these values admin/ui
  • #39065 Issue with SSL and `CertificatereloadManager` in Keycloak 26.2 when using Istio infinispan
  • #39085 Redirects to admin endpoint 404s on hostname-admin / request scheme mismatch core
  • #39124 [Operator CI] - Test remote (slow) ci
  • #39180 Groups view: Filter/search bar disappears and groups not shown after clearing empty search results admin/ui
  • #39182 Oracle driver problems in keycloak 26.2.1 dependencies
  • #39187 Account console: defaultLocale item in select locale field account/ui
  • #39206 Wrong UDP jgroups metric name docs
  • #39219 Serverinfo response grows over time admin/api
  • #39237 Deletion of a role is slow when when there are a lot of roles in the database core
  • #39246 Duplicate user entries when searching custom attributes core
  • #39274 Aurora DB should not update automatically to the latest minor version ci
  • #39296 Inconsistent "grant_types" vs "grantTypes" Naming Causes GrantTypeCondition to Always Fail core
  • #39312 SLO measurement should mention a month as a period docs

26.2.2

30 Apr 06:14
Compare
Choose a tag to compare

Upgrading

Before upgrading refer to the migration guide for a complete list of changes.

All resolved issues

Enhancements

  • #39142 Make distribution startup timeout configurable testsuite

Bugs

26.2.1

23 Apr 12:17
Compare
Choose a tag to compare

Upgrading

Before upgrading refer to the migration guide for a complete list of changes.

All resolved issues

Enhancements

  • #38956 Clarify upgrade instructions
  • #39057 Change the title for Grafana dashboards guide to plural docs
  • #39059 Document operator `Auto` update strategy when used with `podTemplate`

Bugs

  • #38458 [FGAP] [UI] Permission search doesn't execute correct consequent search request admin/fine-grained-permissions
  • #38692 Test coverage for count menthods when filtering admin/fine-grained-permissions
  • #38767 Make group required when selecting a specific group creating a premission admin/ui
  • #38812 Test failures in CI in Chrome tests ci
  • #38846 StatefulSet reconciliation infinitely looping operator
  • #38913 [FGAP] AvailableRoleMappings do not consider all-clients permissions admin/fine-grained-permissions
  • #38920 Downstream docs have duplicate ID on sampling docs
  • #38925 Blocking issue with increasing JVM thread count after migrating from 26.0.8 to 26.1.4 infinispan
  • #38929 Permission details sometimes don't show the name of the client admin/fine-grained-permissions
  • #38930 [Docs] Broken link in ExternalLinksTest for importmap docs
  • #38937 Liquibase checksum mismatch when upgrading from Keycloak ≤ 22.0.4 directly to 26.2.x storage
  • #38982 JpaRealmProvider getGroupByName return group duplicate due to change of comparison (like vs equal) ldap
  • #39015 Keycloak operator with update strategy to Auto: missing imagePullSecrets operator
  • #39096 Release note 26.2.0 has broken link docs

26.2.0

11 Apr 12:48
Compare
Choose a tag to compare

Highlights

Supported Standard Token Exchange

In this release, we added support for the Standard token exchange! The token exchange feature was in preview for a long time, so we are glad to finally support the standard token exchange. For now, this is limited to exchanging the Internal token to internal token compliant with the Token exchange specification. It does not yet cover use cases related to identity brokering or subject impersonation. We hope to support even more token exchange use cases in subsequent releases.

For more details, see the Standard token exchange.

For information on how to upgrade from the legacy token exchange used in previous Keycloak versions, see the Upgrading Guide.

Fine-grained admin permissions supported

This release introduces support for a new version of fine-grained admin permissions. Version 2 (V2) provides enhanced flexibility and control over administrative access within realms. With this feature, administrators can define permissions for administering users, groups, clients, and roles without relying on broad administrative roles. V2 offers the same level of access control over realm resources as the previous version, with plans to extend its capabilities in future versions. Some key points follow:

  • Centralized Admin Console Management - New Permissions section was introduced to allow management from a single place without having to navigate to different places in the Admin Console.

  • Improved manageability - Administrators can more easily search and evaluate permissions when building a permission model for realm resources.

  • Resource-Specific and Global Permissions – Permissions can be defined for individual resources (such as specific users or groups), or entire resource types (such as all users or all groups).

  • Explicit Operation Scoping – Permissions are now independent, removing hidden dependencies between operations. Administrators must assign each scope explicitly, making it easier to see what is granted without needing prior knowledge of implicit relationships.

  • Per-Realm Enablement – Fine-Grained Admin Permissions can be enabled on a per-realm basis, allowing greater control over adoption and configuration.

For more details, see fine-grained admin permissions.

For more information about migration, see the Upgrading Guide.

Guides for metrics and Grafana dashboards

In addition to the list of useful metric names the Observability guides category now also contains a guide on how to display these metrics in Grafana. The guide contains two dashboards.

  • Keycloak troubleshooting dashboard - showing metrics related to service level indicators and troubleshooting.

  • Keycloak capacity planning dashboard - showing metrics related to estimating the load handled by Keycloak.

Zero-configuration secure cluster communication

For clustering multiple nodes, Keycloak uses distributed caches. Starting with this release for all TCP-based transport stacks, the communication between the nodes is encrypted with TLS and secured with automatically generated ephemeral keys and certificates.

This strengthens a secure-by-default setup and minimizes the configuration steps of new setups.

For more information, check the Securing Transport Stacks in the distributed caches guide.

Rolling updates for optimized and customized images

When using an optimized or customized image, the Keycloak Operator can now perform a rolling update for a new image if the old and the new image contain the same version of Keycloak. This is helpful when you want to roll out, for example, an updated theme or provider without downtime.

To use the functionality in the Operator, enable the Auto update strategy and the Keycloak Operator will on image change briefly start up the old and the new image to determine if a rolling update without downtime is possible. Read the section Managing Rolling Updates in the Keycloak Operator Advanced Configuration guide for more details on this functionality.

The checks to determine if a rolling update is possible are also available on the Keycloak command line so you can use them in your deployment pipeline. Continue reading in the Update Compatibility Tool guide for more information about the functionality available on the command line.

Additional query parameters in Admin Events API

The Admin Events API now supports filtering for events based on Epoc timestamps in addition to the previous yyyy-MM-dd format. This provides more fine-grained control of the window of events to retrieve.

A direction query parameter was also added, allowing controlling the order of returned items as asc or desc. In the past the events where always returned in desc order (most recent events first).

Finally, the returned event representations now also include the id, which provides a unique identifier for an event.

Logs support ECS format

All available log handlers now support ECS (Elastic Common Schema) JSON format. It helps to improve Keycloak’s observability story and centralized logging.

For more details, see the Logging guide.

New cache for CRLs loaded for the X.509 authenticator

Now the Certificate Revocation Lists (CRL), that are used to validate certificates in the X.509 authenticator, are cached inside a new infinispan cache called crl. Caching improves the validation performance and decreases the memory consumption because just one CRL is maintained per source.

Check the crl-storage section in the All provider configuration guide to know the options for the new cache provider.

Operator creates NetworkPolicies to restrict traffic

The Keycloak Operator now creates by default a NetworkPolicy to restrict traffic to internal ports used for Keycloak’s distributed caches.

This strengthens a secure-by-default setup and minimizes the configuration steps of new setups.

You can restrict the access to the management and HTTP endpoints further using the Kubernetes NetworkPolicies rule syntax.

Read more about this in the Operator Advanced configuration.

Option to reload trust and key material for the management interface

The https-management-certificates-reload-period option can be set to define the reloading period of key store, trust store, and certificate files referenced by https-management-* options for the management interface. Use -1 to disable reloading. Defaults to https-certificates-reload-period, which defaults to 1h (one hour).

For more information, check the Configuring the Management Interface guide.

Read more

26.1.5

11 Apr 07:58
Compare
Choose a tag to compare

Upgrading

Before upgrading refer to the migration guide for a complete list of changes.

All resolved issues

Enhancements

  • #38409 Upgrade to Quarkus 3.15.4 dist/quarkus
  • #38764 OTel: Unable to disable sampling at runtime; tracing-sampler-ratio validation prevents setting 0.0 dist/quarkus

Bugs

  • #36482 The root cause of error is suppressed in KC 26 at building dependencies
  • #37792 Save Button Not Enabled When Switching OTP Type from "Time Based" to "Counter Based" admin/ui
  • #37869 ConditionalOtpFormAuthenticator fails to set CONFIGURE_TOTP required action for LDAP read-only users
  • #38041 [Keycloak CI] - WebAuthn tests ci
  • #38063 Issue in clearing offline sessions internally using ClearExpiredUserSessions Scheduled task
  • #38152 Broken guides link on reverseproxy page docs
  • #38353 Keycloak email message ID contains the local host name or IP address core
  • #38454 Keycloak account console is missing the Keycloak logo account/ui
  • #38576 Define a max expiration window for Signed JWT client authentication oidc
  • #38607 Recaptcha secret key configuration lost when migrating from 24.0.5 to 26.1.4 authentication
  • #38740 OTelHttpClientFactory not configured properly when tracing enabled dist/quarkus
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载