Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update keycloakVersion to v24 (major) #6

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 7, 2022

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
org.keycloak:keycloak-server-spi (source) 12.0.4 -> 24.0.4 age adoption passing confidence
org.keycloak:keycloak-server-spi-private (source) 12.0.4 -> 24.0.4 age adoption passing confidence
org.keycloak:keycloak-services (source) 12.0.4 -> 24.0.4 age adoption passing confidence
org.keycloak:keycloak-core (source) 12.0.4 -> 24.0.4 age adoption passing confidence

Release Notes

keycloak/keycloak (org.keycloak:keycloak-server-spi)

v24.0.4

Compare Source

v24.0.3

Compare Source

Upgrading

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

All resolved issues

Enhancements

  • #​26695 Keycloak and MSAD: enabling account in MSAD does not propagate to Keycloak ldap

Bugs

  • #​24201 Cannot disable LDAP-backed user if importEnabled=false ldap
  • #​28100 Failed authentication: java.lang.NullPointerException: Cannot invoke "org.keycloak.models.UserModel.getFederationLink()" because "this.delegate" is null identity-brokering
  • #​28248 Update user makes User ID changes when federationLink and LDAP_ID is not set properly admin/api
  • #​28335 The false option of the pkceMethod init parameter for the JavaScript adapter is ignored adapter/javascript
  • #​28638 Missing permission to read configmaps in `keycloak-operator-role` operator

v24.0.2

Compare Source

Upgrading

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

All resolved issues

Enhancements

  • #​25057 Inconsistent behaviour on getting user permissions using authorization authorization-services
  • #​27433 Clarify format of keys in `additionalOptions` field in the Keycloak CR docs
  • #​27481 Edit High Availability guide
  • #​27484 Edit 23.0 changes part of Upgrading Guide
  • #​27632 Integrate downstream Upgrading Guide changes into upstream
  • #​27696 Upgrade to Quarkus 3.8.2 dist/quarkus
  • #​27867 Corrections to Securing Apps Guide
  • #​27871 Upgrade to Infinispan 14.0.26 core
  • #​27953 Address feedback to Keycloak Server guide docs
  • #​27955 Address term Keycloak in Server Administration Guide docs
  • #​28009 Address edits to the Operator Guide
  • #​28033 Upgrade Infinispan to 14.0.27.Final
  • #​28084 Upgrade to Quarkus 3.8.3 dist/quarkus

Bugs

  • #​14501 Getting failed to initialize js message if consent is rejected by user account/ui
  • #​15403 No email send on TOTP/Authenticator app removal core
  • #​20637 Reset password flow fails with "Page has expired" error when Kerberos authentication is enabled in the browser flow authentication
  • #​22644 Flaky test: org.keycloak.testsuite.forms.BrowserFlowTest#testAlternativeNonInteractiveExecutorInSubflow core
  • #​23701 Attribute search does not work with federated users with ldap. admin/ui
  • #​23980 Keycloak Operator fails to install realm authentication flow because "flow is null" import-export
  • #​25490 Partial export/import is not mentioned in Keycloak's Server Administration Guide docs
  • #​25687 A java.lang.NullPointerException occurs when sending a Multipart/form-data request to any file upload interface. admin/api
  • #​26396 How do you update a custom user storage provider jar that includes a version number? dist/quarkus
  • #​27117 user sessions not accessible in all cluster nodes infinispan
  • #​27180 Grant type "urn:ietf:params:oauth:grant-type:uma-ticket" openid-connect/token service endpoint is returning refresh token with invalid Expiration authorization-services
  • #​27228 Lowercased "terms_and_conditions" is not migrated in fed_user_required_action table core
  • #​27245 Account console does not correctly treat link / unlink account account/ui
  • #​27269 mvnw clean install -Pdistribution on Windows deletes necessary files during clean of org.keycloak:keycloak-admin-ui admin/ui
  • #​27275 Invalidating offline token is not working from client sessions tab authentication
  • #​27366 Social login - test failures with unexpected status code testsuite
  • #​27483 Authz-client AuthorizationResource.getPermissions() ClassCastException authorization-services
  • #​27504 Cpu and memory sizing typo docs
  • #​27529 LegacyUserCredentialManager class not found storage
  • #​27540 URL change for liquibase docs docs
  • #​27548 Custom Browser Flow not working anymore admin/ui
  • #​27573 Release notes from 24.0.0 miss that multi-site active-passive deployments are supported docs
  • #​27597 dropping KC_PROXY=edge causes startup error core
  • #​27611 Cannot modify realm email settings since keycloak 24 user-profile
  • #​27653 Admin tests: Flaky realm_settings_user_profile_enabled test admin/ui
  • #​27701 MTLS Cache options should be runtime options, not build time options dist/quarkus
  • #​27719 Wrong Welcome page image in the documentation docs
  • #​27745 Registration template in login2 is broken login/ui
  • #​27761 Snyk workflow failure ci
  • #​27779 Broken Migration "MigrateTo24_0_0" core
  • #​27780 Fixing downstream documentation build docs
  • #​27797 User profile fields cannot be set empty once they have a non-empty value (in Login Theme) user-profile
  • #​27820 Account console confusing with WebAuthn account/ui
  • #​27841 ES translation causes FreeMarker rendering issues translations
  • #​27852 VerifyUserProfile invalidates user cache on every login core
  • #​27878 Error when executing refresh grant, with scope param, without offline_access scope specified oidc
  • #​27882 Incorrect version of bctls-fips in the docs docs
  • #​27892 Truststore handling for the Operator is not documented operator
  • #​27894 Multi datasource configuration does not work in Keycloak 24.0.1 dist/quarkus
  • #​27900 Performance impact in changed hashing measured wrong authentication
  • #​27925 Keycloak docs state that there are http metrics, but they are disabled docs
  • #​27954 Hibernate Dialect detection does not work anymore for Oracle DBs storage
  • #​27966 🍺 instead of dot: Attributes in account UI are not loaded user-profile
  • #​27967 ORA-01450 when updating keycloak 23 -> 24 storage
  • #​27981 User Profile: Inconsistent ordering of attributes between account and login themes user-profile
  • #​28001 MySQL connector artifact should be ignored dist/quarkus
  • #​28012 Keycloak CR Truststore should not have a name operator
  • #​28113 WebAuthN registration broken after upgrading to 24.0.1 authentication/webauthn

v24.0.1

Compare Source

Highlights

Operator deploys nightly build instead of 24.0.0

Due to an issue in the release process when deploying Keycloak using the Operator it installed the nightly container instead of 24.0.0.

As a quick fix to the issue, the 24.0.0 container was tagged with nightly, and the nightly releases was temporarily disabled.

If you installed or upgraded to 24.0.0 using the Operator before 5pm CET yesterday the database may have been updated with the wrong versions. To check if you are affected connect to your database and run the following SQL command:

SELECT * from migration_model WHERE version = '999.0.0';

If the above returns a matching row you will need to take some actions, otherwise database migrations will not run for future releases. To resolve this run the following SQL command:

UPDATE migration_model SET version = '24.0.0' WHERE version = '999.0.0';

Upgrading

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

v24.0.0

Compare Source

Highlights

Supported user profile and progressive profiling

The user profile preview feature is promoted to be fully supported and user profile is enabled by default.

In the past months, the Keycloak team spent a huge amount of effort in polishing the user profile feature to make it fully supported. In this release, we continued the effort. Lots of improvements, fixes and polishing were done based on the thorough testing and feedback from our awesome community.

The following are a few highlights of this feature;

  • Fine-grained control over the attributes that users and administrators can manage so that you can prevent unexpected attributes and values from being set.

  • Ability to specify what user attributes are managed and should be displayed on the forms to regular users or administrators.

  • Dynamic forms - Previously, the forms where users created or updated their profiles, contain four basic attributes like username, email, first name and last name. The addition of any attributes (or removing some default attributes) required you to create a custom theme. Now custom themes may not be needed because users see exactly the requested attributes based on the requirement of the particular deployment.

  • Validations - Ability to specify validators for the user attributes including built-in validators that you can use to specify a maximum or minimum length, a specific regex, or limiting a particular attribute to be a URL or number.

  • Annotations - Ability to specify that particular attribute should be rendered for instance as a text area, an HTML select with specified options, or calendar or many other options. You can also bind JavaScript code to a specific field to change how an attribute is rendered and customize its behavior.

  • Progressive profiling - Ability to specify that some fields are required or available on the forms just for particular values of scope parameter. This effectively allow progressive profiling. You no longer need to ask the user for twenty attributes during registration; you can instead ask the user to fill in attributes incrementally according to the requirements of the individual client applications that are used by the user.

  • Migration from previous versions - The user profile is now always enabled, but it operates as before for those who did not use this feature. You can benefit from the user profile capabilities, but you are not required to use them. For migration instructions, see the Upgrading Guide.

The first release of the user profile as a supported feature is just the starting point and the baseline for delivering many more capabilities around identity management.

We would like to give huge thanks to the awesome Keycloak community as lots of ideas, requirements and contributions came from the community! Special thanks to:

For more details about user profile capabilities, see the Server Administration Guide.

Breaking changes to the User Profile SPI

In this release, changes to the User Profile SPI might impact existing implementations based on this SPI. For more details, see the Upgrading Guide.

Changes to Freemarker templates to render pages based on the user profile and realm

In this release, the following templates were updated to make it possible to dynamically render attributes based on the user profile configuration set to a realm:

  • login-update-profile.ftl

  • register.ftl

  • update-email.ftl

For more details, see the Upgrading Guide.

New Freemarker template for the update profile page at first login through a broker

In this release, the server renders the update profile page when the user is authenticating through a broker for the first time using the idp-review-user-profile.ftl template.

For more details, see the Upgrading Guide.

Java adapter deprecation and removal

Back in 2022 we announced the deprecation of Keycloak adapters in Keycloak 19. To give the community more time to adopt this was delayed.

With that in mind, this will be the last major release of Keycloak to include OpenID Connect and SAML adapters. As Jetty 9.x has not been supported since 2022 the Jetty adapter has been removed already in this release.

The generic Authorization Client library will continue to be supported, and aims to be used in combination with any other OAuth 2.0 or OpenID Connect libraries.

The only adapter we will continue to deliver is the SAML adapter for latest releases of WildFly and EAP 8.x. Reasoning for continuing to support this is down to the fact that the majority of the SAML codebase in Keycloak was a contribution from WildFly. As part of this contribution we agreed to maintain SAML adapters for WildFly and EAP in the long run.

Jetty adapter removed

Jetty 9.4 has not been supported in the community for a long time, and reached end-of-life in 2022. At the same time the adapter has not been updated or tested with more recent versions of Jetty. For these reasons the Jetty adapter has been removed from this release.

New Welcome Page

The 'welcome' page that appears at the first use of Keycloak is redesigned. It provides a better setup experience and conforms to the latest version of PatternFly. The simplified page layout includes only a form to register the first administrative user. After completing the registration, the user is sent directly to the Admin Console.

If you use a custom theme, you may need to update it to support the new welcome page. For details, see the Upgrading Guide.

New Account Console now the default

We introduced version 3 of the Account Console in Keycloak 22 as a preview feature. In this release, we are making it the default version, and deprecating version 2 in the process, which will be removed in a subsequent release.

This new version has built-in support for the user profile feature, which allows administrators to configure which attributes are available to users in the Account Console, and lands a user directly on their personal account page after logging in.

If you are using or extending the customization features of this theme, you may need to perform additional migrations. For more details, see the Upgrading Guide.

Keycloak JS

Using exports field in package.json

The Keycloak JS adapter now uses the exports field in its package.json. This change improves support for more modern bundlers like Webpack 5 and Vite, but comes with some unavoidable breaking changes. See the Upgrading Guide for more details.

PKCE enabled by default

The Keycloak JS adapter now sets the pkceMethod option to S256 by default. This change enables Proof Key Code Exchange (PKCE) for all applications using the adapter. If you use the adapter on a system that does not support PKCE, you can set the pkceMethod option to false to disable it.

Changes to Password Hashing

In this release, we adapted the password hashing defaults to match the OWASP recommendations for Password Storage.

As part of this change, the default password hashing provider has changed from pbkdf2-sha256 to pbkdf2-sha512. Also, the number of default hash iterations for pbkdf2 based password hashing algorithms changed. This change means better security aligned with latest recommendations, but it has impact on performance. It is possible to stick to the old behaviour by adding password policies hashAlgorithm and hashIterations to your realm. For more details, see the Upgrading Guide.

Lightweight access tokens support

This release contains support for Lightweight access tokens. As a result, you can have smaller access tokens for specified clients. These tokens have only a few claims, which is why they are smaller. Note that lightweight access token is still JWT signed by the realm key by default and still contains some very basic claims.

This release introduces an Add to lightweight access token flag that is available on some OIDC protocol mappers. Use this flag to specify if a particular claim should be added to a lightweight access token. It is OFF by default, which means that most claims are not added.

Also, a client policy executor exists. Use it to specify if a particular client request should use lightweight access tokens or regular access tokens. An alternative to the executor is to use an Always use lightweight access token flag on client advanced settings, which causes that client to always use lightweight access tokens. An executor can be an alternative if you need more flexibility. For instance, you may choose to use lightweight access tokens by default but use regular tokens only for the specified scope parameter.

A previous release added an Add to token introspection switch. You use it to add claims that are not present in the access token into the introspection endpoint response.

Thanks to Shigeyuki Kabano for the contribution and Thanks to Takashi Norimatsu for a help and review of this feature.

OAuth 2.1 support

This release contains optional OAuth 2.1 support. New client policy profiles were introduced in this release, which administrators can use to make sure that clients and particular client requests comply with the OAuth 2.1 specification. A dedicated client profile exists for confidential clients and a dedicated profile for public clients. Thanks to Takashi Norimatsu and Shigeyuki Kabano for the contribution.

Scope parameter supported in the refresh token flow

Starting with this release, the scope parameter in the OAuth2/OIDC endpoint for token refresh is supported. Use this parameter to request access tokens with a smaller amount of scopes than originally granted, which means you cannot increase access token scope. This scope limitation does not affect the scope of the refreshed refresh token. This function works as described in the OAuth2 specification. Thanks to Konstantinos Georgilakis for the contribution.

Client policy executor for secure redirect URIs

A new client policy executor secure-redirect-uris-enforcer is introduced. Use it to restrict which redirect URIs can be used by the clients. For instance, you can specify that client redirect URIs cannot have wildcards, should be just from specific domain, must be OAuth 2.1 compliant, and so on. Thanks to Lex Cao and Takashi Norimatsu for the contribution.

Client policy executor for enforcing DPoP

A new client policy executor dpop-bind-enforcer is introduced. You can use it to enforce DPoP for a particular client if dpop preview is enabled. Thanks to Takashi Norimatsu for the contribution.

Supporting EdDSA

You can create EdDSA realm keys and use them as signature algorithms for various clients. For instance, you can use these keys to sign tokens or for client authentication with signed JWT. This feature includes identity brokering where Keycloak itself signs client assertions that are used for private_key_jwt authentication to third party identity providers. Thanks to Takashi Norimatsu and Muhammad Zakwan Bin Mohd Zahid for the contribution.

EC Keys supported by JavaKeystore provider

The provider JavaKeystoreProvider for providing realm keys now supports EC keys in addition to previously supported RSA keys. Thanks to Stefan Wiedemann for the contribution.

Option to add X509 thumbprint to JWT when using private_key_jwt authentication for identity providers

OIDC identity providers now have the Add X.509 Headers to the JWT option for the situation when client authentication with JWT signed by private key is used. This option can be useful for interoperability with some identity providers such as Azure AD, which require the thumbprint to be present on the JWT. Thanks to MT for the contribution.

OAuth Grant Type SPI

The Keycloak codebase includes an internal update to introduce the OAuth Grant Type SPI. This update allows additional flexibility when introducing custom grant types supported by the Keycloak OAuth 2 token endpoint. Thanks to Dmitry Telegin for the contribution.

CORS improvements

The CORS related Keycloak functionality was extracted into the SPI, which can allow additional flexibility. Note that CorsSPI is internal and may change at a future release. Thanks to Dmitry Telegin for the contribution.

Truststore improvements

Keycloak introduces improved truststores configuration options. The Keycloak truststore is now used across the server, including outgoing connections, mTLS, and database drivers. You no longer need to configure separate truststores for individual areas. To configure the truststore, you can put your truststores files or certificates in the default conf/truststores, or use the new truststore-paths config option. For details refer to the relevant guide.

Versioned Features

Features now support versioning. To preserve backward compatibility, all existing features (including account2 and account3) are marked as version 1. Newly introduced features will use versioning, which means that users can select between different implementations of desired features.

For details refer to the features guide.

Keycloak CR Truststores

You may also take advantage of the new server-side handling of truststores by using the Keycloak CR, for example:

spec:
  truststores:
    mystore:
      secret:
        name: mystore-secret
    myotherstore:
      secret:
        name: myotherstore-secret

Currently only Secrets are supported.

Trust Kubernetes CA

The cert for the Kubernetes CA is added automatically to your Keycloak Pods managed by the Operator.

Automatic certificate management for SAML identity providers

The SAML identity providers can now be configured to automatically download the signing certificates from the IDP entity metadata descriptor endpoint. In order to use the new feature, configure the Metadata descriptor URL option in the provider (the URL where the IDP metadata information with the certificates is published) and set Use metadata descriptor URL to ON. The certificates are automatically downloaded and cached in the public-key-storage SPI from that URL. The certificates can also be reloaded or imported from the Admin Console, using the action combo in the provider page.

See the documentation for more details about the new options.

Non-blocking health check for load balancers

A new health check endpoint available at /lb-check was added. The execution is running in the event loop, which means this check is responsive also in overloaded situations when Keycloak needs to handle many requests waiting in request queue. This behavior is useful, for example, in multi-site deployment to avoid failing over to another site that is under heavy load. The endpoint is currently checking availability of the embedded and external Infinispan caches. Other checks may be added later.

This endpoint is not available by default. To enable it, run Keyloak with the multi-site feature. For more details, see Enabling and disabling features.

Keycloak CR Optimized Field

The Keycloak CR now includes an startOptimized field, which may be used to override the default assumption about whether to use the --optimized flag for the start command. As a result, you can use the CR to configure build time options also when a custom Keycloak image is used.

Enhanced reverse proxy settings

It is now possible to separately enable parsing of either Forwarded or X-Forwarded-* headers by using the new --proxy-headers option. For details, see the Reverse Proxy Guide. The original --proxy option is now deprecated and will be removed in a future release. For migration instructions, see the Upgrading Guide.

Changes to the user representation in both Admin API and Account contexts

In this release, we are encapsulating the root user attributes (such as username, email, firstName, lastName, and locale) by moving them to a base/abstract class in order to align how these attributes are marshalled and unmarshalled when using both Admin and Account REST APIs.

This strategy provides consistency in how attributes are managed by clients and makes sure they conform to the user profile configuration set to a realm.

For more details, see the Upgrading Guide.

Sequential loading of offline sessions and remote sessions

Starting with this release, the first member of a Keycloak cluster will load remote sessions sequentially instead of in parallel. If offline session preloading is enabled, those will be loaded sequentially as well.

For more details, see the Upgrading Guide.

Performing actions on behalf of another already authenticated user is not longer possible

In this release, you can no longer perform actions such as email verification if the user is already authenticated and the action is bound to another user. For instance, a user can not complete the verification email flow if the email link is bound to a different account.

Changes to the email verification flow

In this release, if a user tries to follow the link to verify the email and the email was previously verified, a proper message will be shown.

In addition to that, a new error (EMAIL_ALREADY_VERIFIED) event will be fired to indicate an attempt to verify an already verified email. You can use this event to track possible attempts to hijack user accounts in case the link has leaked or to alert users if they do not recognize the action.

Deprecated offline session preloading

The default behavior of Keycloak is to load offline sessions on demand. The old behavior to preload them at startup is now deprecated, as pre-loading them at startup does not scale well with a growing number of sessions, and increases Keycloak memory usage. The old behavior will be removed in a future release.

For more details, see the Upgrading Guide.

Configuration option for offline session lifespan override in memory

To reduce memory requirements, we introduced a configuration option to shorten lifespan for offline sessions imported into the Infinispan caches. Currently, the offline session lifespan override is disabled by default.

For more details, see the Server Administration Guide.

Infinispan metrics use labels for cache manager and cache names

When enabling metrics for Keycloak&#​8217;s embedded caches, the metrics now use labels for the cache manager and the cache names.

For more details, see the Upgrading Guide.

User attribute value length extension

As of this release, Keycloak supports storing and searching by user attribute values longer than 255 characters, which was previously a limitation.

For more details, see the Upgrading Guide.

Brute Force Protection changes

There have been a couple of enhancements to the Brute Protection:

  1. When an attempt to authenticate with an OTP or Recovery Code fails due to Brute Force Protection the active Authentication Session is invalidated. Any further attempts to authenticate with that session will fail.

  2. In previous versions of Keycloak, the administrator had to choose between disabling users temporarily or permanently due to a Brute Force attack on their accounts. The administrator can now permanently disable a user after a given number of temporary lockouts.

  3. The property failedLoginNotBefore has been added to the brute-force/users/{userId} endpoint

Authorization Policy

In previous versions of Keycloak, when the last member of a User, Group or Client policy was deleted then that policy would also be deleted. Unfortunately this could lead to an escalation of privileges if the policy was used in an aggregate policy. To avoid privilege escalation the effect policies are no longer deleted and an administrator will need to update those policies.

Keycloak CR cache-config-file option

The Keycloak CR now allows for specifying the cache-config-file option by using the cache spec configMapFile field, for example:

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  name: example-kc
spec:
  ...
  cache:
    configMapFile:
      name: my-configmap
      key: config.xml

Keycloak CR resources options

The Keycloak CR now allows for specifying the resources options for managing compute resources for the Keycloak container. It provides the ability to request and limit resources independently for the main Keycloak deployment via the Keycloak CR, and for the realm import Job via the Realm Import CR.

When no values are specified, the default requests memory is set to 1700MiB, and the limits memory is set to 2GiB.

You can specify your custom values based on your requirements as follows:

apiVersion: k8s.keycloak.org/v2alpha1
kind: Keycloak
metadata:
  name: example-kc
spec:
  ...
  resources:
    requests:
      cpu: 1200m
      memory: 896Mi
    limits:
      cpu: 6
      memory: 3Gi

For more details, see the Operator Advanced configuration.

Temporary lockout log replaced with event

There is now a new event USER_DISABLED_BY_TEMPORARY_LOCKOUT when a user is temporarily locked out by the brute force protector. The log with ID KC-SERVICES0053 has been removed as the new event offers the information in a structured form.

For more details, see the Upgrading Guide.

Updates to cookies

Cookie handling code has been refactored and improved, including a new Cookie Provider. This provides better consistency for cookies handled by Keycloak, and the ability to introduce configuration options around cookies if needed.

SAML User Attribute Mapper For NameID now suggests only valid NameID formats

User Attribute Mapper For NameID allowed setting Name ID Format option to the following values:

  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName

  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName

  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos

  • urn:oasis:names:tc:SAML:2.0:nameid-format:entity

However, Keycloak does not support receiving AuthnRequest document with one of these NameIDPolicy, therefore these mappers would never be used. The supported options were updated to only include the following Name ID Formats:

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

Different JVM memory settings when running in container

Instead of specifying hardcoded values for the initial and maximum heap size, Keycloak uses relative values to the total memory of a container. The JVM options -Xms, and -Xmx were replaced by -XX:InitialRAMPercentage, and -XX:MaxRAMPercentage.

For more details, see the Running Keycloak in a container guide.

GELF log handler has been deprecated

With sunsetting of the underlying library providing integration with GELF, Keycloak will no longer support the GELF log handler out-of-the-box. This feature will be removed in a future release. If you require an external log management, consider using file log parsing.

Support for multi-site active-passive deployments

Deploying Keycloak to multiple independent sites is essential for some environments to provide high availability and a speedy recovery from failures. This release supports active-passive deployments for Keycloak.

To get started, use the High Availability Guide which also includes a comprehensive blueprint to deploy a highly available Keycloak to a cloud environment.

Upgrading

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

All resolved issues

New features

  • #​15190 RestAPI endpoint "send-verify-email" sending execute actions email template. admin/api
  • #​19586 @​keycloak/keycloak-admin-client doesn't provide an ability to use optional client scope for access token admin/client-js
  • #​23539 User profile attributes should only accept a single value unless configured otherwise user-profile
  • #​25167 Implement POST logout in Keycloak JS adapter/javascript
  • #​25446 CORS SPI oidc
  • #​25676 Introduce new CLI config options for Infinispan remote store dist/quarkus
  • #​25702 Encrypt network communication in JGroups dist/quarkus
  • #​25733 Update Route53 HA guide to be compatible with ROSA and Openshift 4.14.x
  • #​25903 Create new landing page for admin console
  • #​25941 Issue Verifiable Credentials in the JWT-VC format core
  • #​26028 Remove conditional statements about Windows / Linux from the docs docs
  • #​26250 OAuth 2.0 Grant Type SPI oidc
  • #​26455 Supported option to specify maximum threads used to handle HTTP requests dist/quarkus
  • #​26456 Supported option to specify resource management for pods in Keycloak CR dist/quarkus
  • #​26458 Support custom Infinispan configuration file in Keycloak CR operator
  • #​26460 Supported option to specify site name for multi-site deployments dist/quarkus
  • #​26500 Cookie Provider
  • #​26936 Support EC Key-Imports for the JavaKeystoreKeyProvider
  • #​27186 Meta description of admin-ui and account-ui cannot be changed in theme.properties

Enhancements

  • #​9508 Rename "Resident key" to "Discoverable Credential" docs
  • #​9758 User attributes with a text more than 255 characters storage
  • #​9784 Add truststore options to Keycloak CR operator
  • #​10794 Support importing Kubernetes CA operator
  • #​12009 Support for scope parameter in the refresh flow oidc
  • #​12352 Align Operator config naming with Quarkus distribution operator
  • #​12946 Add X509 thumbprint to JWT when using private_key_jwt oidc
  • #​13250 --verbose option doesn't work in Quarkus distribution dist/quarkus
  • #​15000 Add EdDSA/Ed25519 to WebAuthn Signature algorithms authentication/webauthn
  • #​15714 Supporting EdDSA oidc
  • #​16629 Increase the default iterations for Pbdkdf2-256/512 to match the updated OWASP recommendations authenti

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from deb4d3e to c8c5068 Compare January 26, 2022 08:44
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from c8c5068 to 94aac76 Compare February 11, 2022 21:02
@renovate renovate bot changed the title Update keycloakVersion to v16 (major) Update keycloakVersion to v17 (major) Feb 11, 2022
@renovate renovate bot changed the title Update keycloakVersion to v17 (major) Update keycloakVersion (major) Feb 12, 2022
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 94aac76 to c33628b Compare February 12, 2022 02:25
@renovate renovate bot changed the title Update keycloakVersion (major) Update keycloakVersion to v16 (major) Feb 12, 2022
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from c33628b to 8a018a8 Compare February 12, 2022 08:51
@renovate renovate bot changed the title Update keycloakVersion to v16 (major) Update keycloakVersion (major) Feb 12, 2022
@renovate renovate bot changed the title Update keycloakVersion (major) Update keycloakVersion to v17 (major) Feb 12, 2022
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 8a018a8 to 987abfa Compare March 23, 2022 08:53
@renovate renovate bot changed the title Update keycloakVersion to v17 (major) Update keycloakVersion (major) Mar 23, 2022
@renovate renovate bot changed the title Update keycloakVersion (major) Update keycloakVersion to v17 (major) Mar 24, 2022
@renovate renovate bot changed the title Update keycloakVersion to v17 (major) Update keycloakVersion to v18 (major) Apr 24, 2022
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 987abfa to 1a75921 Compare April 24, 2022 20:15
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 1a75921 to 48e0738 Compare June 18, 2022 15:56
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 48e0738 to ecadea2 Compare September 25, 2022 14:37
@renovate renovate bot changed the title Update keycloakVersion to v18 (major) Update keycloakVersion to v19 (major) Sep 25, 2022
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from ecadea2 to 5467bef Compare November 20, 2022 13:52
@renovate renovate bot changed the title Update keycloakVersion to v19 (major) Update keycloakVersion to v20 (major) Nov 20, 2022
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 5467bef to 3da4289 Compare March 16, 2023 17:49
@renovate renovate bot changed the title Update keycloakVersion to v20 (major) Update keycloakVersion to v21 (major) Mar 16, 2023
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 3da4289 to 499db4c Compare March 30, 2023 17:18
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 499db4c to 3d49f35 Compare May 28, 2023 10:23
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 3d49f35 to d9452da Compare June 28, 2023 09:01
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from d9452da to b66babf Compare July 11, 2023 21:47
@renovate renovate bot changed the title Update keycloakVersion to v21 (major) Update keycloakVersion to v22 (major) Jul 11, 2023
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from b66babf to c17c5c4 Compare July 18, 2023 23:05
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch 3 times, most recently from 0067f7c to 0116c74 Compare September 12, 2023 22:02
@renovate renovate bot changed the title Update keycloakVersion to v22 (major) Update keycloakVersion to v22 (major) - autoclosed Oct 3, 2023
@renovate renovate bot closed this Oct 3, 2023
@renovate renovate bot deleted the renovate/major-keycloakversion branch October 3, 2023 06:25
@renovate renovate bot changed the title Update keycloakVersion to v22 (major) - autoclosed Update keycloakVersion to v22 (major) Oct 3, 2023
@renovate renovate bot reopened this Oct 3, 2023
@renovate renovate bot restored the renovate/major-keycloakversion branch October 3, 2023 11:11
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch 2 times, most recently from 9f47f55 to 80b7a0c Compare October 4, 2023 12:41
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 80b7a0c to 4226e38 Compare October 24, 2023 13:09
@renovate renovate bot changed the title Update keycloakVersion to v22 (major) Update keycloakVersion (major) Nov 23, 2023
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 4226e38 to b802c0f Compare November 24, 2023 01:20
@renovate renovate bot changed the title Update keycloakVersion (major) Update keycloakVersion to v23 (major) Nov 24, 2023
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from b802c0f to d2ac974 Compare November 29, 2023 14:53
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch 2 times, most recently from 9e1b132 to 15925c9 Compare December 16, 2023 02:36
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 15925c9 to a37ccd3 Compare January 8, 2024 14:43
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch 2 times, most recently from d5575ca to 9508d77 Compare February 2, 2024 16:05
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from 9508d77 to eaf6244 Compare February 22, 2024 19:53
@renovate renovate bot changed the title Update keycloakVersion to v23 (major) Update keycloakVersion (major) Mar 4, 2024
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from eaf6244 to e01cf07 Compare March 4, 2024 16:31
@renovate renovate bot changed the title Update keycloakVersion (major) Update keycloakVersion to v24 (major) Mar 4, 2024
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from e01cf07 to ce0f48b Compare March 5, 2024 16:30
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from ce0f48b to e9cf99b Compare March 25, 2024 05:20
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from e9cf99b to bf92673 Compare April 17, 2024 04:41
@renovate renovate bot force-pushed the renovate/major-keycloakversion branch from bf92673 to 5983105 Compare May 8, 2024 17:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

0 participants