394 Commits
Author SHA1 Message Date
Angel-TorneroandMarek Posolda 577bddb8e5 Fix broken SAML 2.0 specification links in documentation
Closes #48611

Signed-off-by: Angel-Tornero <angeltornerohdez@gmail.com>
2026-05-25 14:42:22 +02:00
Thomas DELORGEandGitHub a988875ac4 docs(workflows): fix offboarding example revoke-role role list format
Closes #49140

The revoke-role step expects multivalued role names, not a
comma-separated string.

Signed-off-by: Thomas DELORGE <thomas.delorge@orbeet.io>
2026-05-20 23:31:45 +02:00
Giuseppe GrazianoandMarek Posolda a1405663f7 Token introspection now validates audience claim. UserInfo endpoint rejects lightweight access tokens.
Closes #49113

Signed-off-by: Giuseppe Graziano <g.graziano94@gmail.com>
2026-05-20 18:23:06 +02:00
vramikandPedro Igor 10d50847df Improve documentation for cases when migrating from FGAP:V1 to V2
Closes #48588

Signed-off-by: vramik <vramik@redhat.com>
2026-05-11 08:10:39 -03:00
Faseela KandGitHub 26c2a9e3ed pre-compute password denylist Bloom filter to speed up server startup
Fixes #47356

Signed-off-by: Faseela K <faseela.k@est.tech>
2026-05-07 16:01:12 +02:00
SarandGitHub 263d44be88 Changes to address Org subdomain matching (#45190)
Signed-off-by: sar <sar.haidar@gmail.com>
2026-05-05 08:53:15 +02:00
Sven-Torben JanusandGitHub 67ef87bd21 Make OrganizationGroupMembershipMapper claim name configurable (#47852)
* Make OrganizationGroupMembershipMapper claim name configurable

The OrganizationGroupMembershipMapper introduced in 26.6.0 hardcoded
the token claim name to "organization", unlike OrganizationMembershipMapper
which already exposes the claim name as a configurable property.

- Add TOKEN_CLAIM_NAME config property to OrganizationGroupMembershipMapper
  via OIDCAttributeMapperHelper.addTokenClaimNameConfig()
- Override getEffectiveModel() to default the claim name to
  OAuth2Constants.ORGANIZATION when not set, preserving backward
  compatibility for existing mapper configurations
- Set TOKEN_CLAIM_NAME default in the static create() factory method
- Refactor OIDCAttributeMapperHelper.getOrInitializeOrganizationClaimAsMap()
  to accept a ProtocolMapperModel instead of a raw String, delegating
  to mapClaim() for correct claim placement (including nested path support)

Closes #47851

Signed-off-by: Sven-Torben Janus <sven-torben.janus@conciso.de>

* Fix nested claim path read and add custom claim name tests

The read side of getOrInitializeOrganizationClaimAsMap was doing a flat
Map.get() on the dotted claim name, while the write side (mapClaim) already
creates a nested structure by splitting on dots. This caused the group mapper
to find nothing when the claim name contained a dot, overwriting the
membership data written by OrganizationMembershipMapper.

Fix by splitting the claim path via splitClaimPath() and traversing the
nested map with a new private getNestedClaimValue() helper in
OIDCAttributeMapperHelper. The helper belongs there rather than in JsonUtils
because it operates on Map<String,Object>, not JsonNode.

Also add integration tests covering:
- Custom flat claim name ("my_orgs") for both OrganizationMembershipMapper
  and OrganizationGroupMembershipMapper, verifying the claim appears at the
  configured name and not at "organization"
- Dotted claim name ("custom.org") for OrganizationGroupMembershipMapper,
  verifying the token contains nested otherClaims["custom"]["org"] and that
  group composition is preserved

Signed-off-by: Sven-Torben Janus <sven-torben.janus@conciso.de>

---------

Signed-off-by: Sven-Torben Janus <sven-torben.janus@conciso.de>
2026-05-04 16:30:59 +02:00
Alexander SchwartzandGitHub afe94e5ae3 Adding blank lines at the beginning to render content correctly (#48531)
Closes #48529

Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
2026-04-30 07:21:42 +02:00
Thomas DarimontandPedro Igor 8b357d610a Generalize user search prefix lookups via UserSearchPrefix enum (#26602)
- Introduce UserSearchPrefix enum in SearchQueryUtils pairing each prefix
(id:, username:, email:) with its UserProvider lookup,
plus a splitTerms helper backed by a precompiled "\\s+" pattern
- Collapse duplicate prefix branches in UsersResource#getUsers,
UsersResource#getUsersCount and BruteForceUsersResource#searchUser
- BruteForceUsersResource: support multi-term lookups (e.g. "username:foo bar"),
aligning with UsersResource
- Tests: add searchByUsernameSearch / searchByEmailSearch covering
single-term, multi-term and whitespace-tolerant variants
- Docs: add "Search by fields" section to proc-searching-user.adoc

Fixes #26602

Signed-off-by: Thomas Darimont <thomas.darimont@googlemail.com>
2026-04-29 15:12:53 -03:00
vramikandPedro Igor e1329516d5 Introduce ORGANIZATIONS resource type in Fine-Grained Admin Permissions
Closes #47284

Signed-off-by: vramik <vramik@redhat.com>
2026-04-29 11:10:05 -03:00
Martin BartošandGitHub 46069e23ec Conditional modal for passkeys platform authenticator
Closes #29558

Signed-off-by: Martin Bartoš <mabartos@redhat.com>
2026-04-28 19:57:28 +02:00
rmartincandPedro Igor 3ba245c39c Make acceptable AAGUID ckeck in WebAuthn stricter
Closes #48388

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-04-27 08:52:24 -03:00
Niko KöblerandGitHub e5ca2a6709 Enable to set mediation property for WebAuthn passwordless authentication (#46960)
possible values: conditional, optional, required, silent
conditional remains the default to not break the current behavior

when optional or required and the user dismissed the modal, it will stay hidden for this auth-session, can still be opened by button

adjusted all related resources, like JS files (also consolidated duplicated logic), Java classes and freemarker template

tests extended

passkey documentation extended/updated

closes #46959

Signed-off-by: Niko Köbler <niko@n-k.de>
2026-04-27 10:07:09 +02:00
foliengrillerandGitHub 7c1a226823 Update SAML documentation with default cache TTL (#48373)
Added default cache TTL for SAML metadata to documentation.

Signed-off-by: foliengriller <info@simpelwebservice.de>
2026-04-23 17:23:36 +02:00
f03cdca35b Add documentation changes for verifying the keycloak email for user
Closes #45856

Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
Co-authored-by: Alexander Schwartz <alexander.schwartz@ibm.com>
2026-04-21 21:18:38 +02:00
vramikandPedro Igor 13560136cf Introduce manage-organizations, view-organizations admin roles for Organization management
Closes #45497
Closes #31641

Signed-off-by: vramik <vramik@redhat.com>
2026-04-21 11:45:35 -03:00
Alexander SchwartzandGitHub 57917d982c Remove preview feature sections from Kubernetes docs
Closes #48259

Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
2026-04-20 13:01:49 +02:00
Marek PosoldaandGitHub 72e0c26a35 Update password after email verification during registration of users (#47538)
closes #45568

Signed-off-by: mposolda <mposolda@gmail.com>
2026-04-17 15:15:48 +02:00
08432969a4 Add info note to the X.509 Canonical DN representation enabled option
Closes #48123

Signed-off-by: rmartinc <rmartinc@redhat.com>
Co-authored-by: Martin Bartoš <mabartos@redhat.com>
2026-04-17 14:33:29 +02:00
Oluwatobi MustaphaandGitHub cb0709694f Allow organization IdPs for members linked to another broker
Closes #47431
2026-04-15 08:57:38 -03:00
Alexander SchwartzandPedro Igor 16d72a5980 Fixing explicit docs anchor for organizations
Closes #48015

Signed-off-by: Alexander Schwartz <alexander.schwartz@ibm.com>
2026-04-14 09:19:29 -03:00
9130641970 Rename 'Pre-Authorized Code Lifespan' to 'Credential Offer Lifespan' (#47563)
Closes #47274



Signed-off-by: Asish Kumar <officialasishkumar@gmail.com>
Signed-off-by: Marek Posolda <mposolda@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: Marek Posolda <mposolda@gmail.com>
2026-04-10 17:10:14 +02:00
vramikandPedro Igor de81c0a421 Fix requesting tokens with multiple organization scopes
Fixes #45900

Signed-off-by: vramik <vramik@redhat.com>
2026-04-09 07:55:28 -03:00
Thomas RiccardiandGitHub 3d2ab9cec7 fix typo extraneous $ template in doc (#47861)
Closes #47867

`${project_name}` is rendered `$Keycloak`, cf https://www.keycloak.org/docs/26.6.0/server_admin/#_identity_broker_kubernetes

Signed-off-by: Thomas Riccardi <thomas@deepomatic.com>
2026-04-08 20:05:10 +02:00
forkimenjeckayangandGitHub f9e1879d4b [OID4VCI] Fix OID4VCI token typ defaults by credential format (#47779)
closes #45420


Signed-off-by: forkimenjeckayang <forkimenjeckayang@gmail.com>
2026-04-08 16:49:44 +02:00
Stefan GuilhenandGitHub 7e8eb64a52 Add troubleshooting section to workflows documentation
- also add workflows as supported in release notes

Closes #47692

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-04-02 00:05:04 +02:00
Stefan GuilhenandPedro Igor 031b6604a2 Ensure all workflow steps are described in the documentation.
- also change name of add/remove required action providers to better align with other step providers.

Closes #47655

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-04-01 09:10:59 -03:00
Giuseppe GrazianoandMarek Posolda 46d1c4fa5a Sender constrained tokens for token exchange
Closes #46092

Signed-off-by: Giuseppe Graziano <g.graziano94@gmail.com>
2026-04-01 10:23:51 +02:00
Stefan GuilhenandPedro Igor d24d2697aa Add SPI option to setup the start time of the workflows step runner task
Closes #47540

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-03-27 16:30:15 -03:00
mposolda 02be20e9fa Inaccuracies in client federation documentation and tooltips
closes #47444

Signed-off-by: mposolda <mposolda@gmail.com>
2026-03-26 10:01:29 +01:00
Stian ThorgersenandGitHub 763bade3bf Fix link to Facebook docs (#47422)
Signed-off-by: stianst <stianst@gmail.com>
2026-03-25 08:57:44 +01:00
mposolda 3f1567c7af Update authentication section in the Server Admin Guide Features section
closes #47393

Signed-off-by: mposolda <mposolda@gmail.com>
2026-03-24 19:26:50 +01:00
Tero SaarniandGitHub 50517cf933 Reload password blacklist file on change without restart
Fixes #47163

Signed-off-by: Tero Saarni <tero.saarni@est.tech>
2026-03-21 20:07:00 +01:00
d11136f671 Separate password and OTP brute force protection to prevent OTP bypass attacks by default
Closes #46164

Signed-off-by: Peter Skopek <peter.skopek@ibm.com>

Update model/infinispan/src/main/java/org/keycloak/models/sessions/infinispan/changes/remote/updater/loginfailures/LoginFailuresUpdater.java

Co-authored-by: Pedro Ruivo <pruivo@users.noreply.github.com>
Signed-off-by: Peter Skopek <peter.skopek@ibm.com>

Add recovery codes to the list of brute force checked authenticators.

Closes #46164
Signed-off-by: Peter Skopek <peter.skopek@ibm.com>
2026-03-17 18:57:37 +01:00
Martin KanisandPedro Igor db9a9d0de4 Fix organizations group docs to not include parent group in token claims
Closes #45516

Signed-off-by: Martin Kanis <mkanis@redhat.com>
2026-03-11 09:30:33 -03:00
vramikandPedro Igor 367f9e2cc8 Organization Groups Documentation
Closes #45516

Signed-off-by: vramik <vramik@redhat.com>
2026-03-10 10:31:50 -03:00
Oluwatobi MustaphaandGitHub 24a819eabc Fix FGAP deny evaluation for manage-group-membership
Add the missing Users FGAP scope alias from manage-group-membership to Groups manage-membership so deny permissions on group members apply during user membership updates.

Add a regression test covering a protected group member, an unrelated user, and the no-mutation postcondition after a forbidden request.

Closes keycloak#46693
2026-03-09 12:01:17 -03:00
Ricardo MartinandGitHub 9a28dc31d4 Set custom audiences per client in the jwt audience executor (#46532)
Closes #46525

Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-03-03 11:42:18 +01:00
Giuseppe GrazianoandGitHub ebfc294c85 Executor for client uris pattern validation (#46300)
Closes #45645

Signed-off-by: Giuseppe Graziano <g.graziano94@gmail.com>
2026-02-24 16:26:00 +01:00
Ricardo MartinandGitHub 2bd386842a Step up authentication for saml - preview (#44185)
Closes #10155


Signed-off-by: rmartinc <rmartinc@redhat.com>
2026-02-23 19:57:00 +01:00
Peter SkopekandMarek Posolda 248c635fda Rename Docker Registry to Distribution Registry
Closes #45163

Signed-off-by: Peter Skopek <peter.skopek@ibm.com>
2026-02-20 13:57:30 +01:00
Tero SaarniandGitHub 128384ca15 Implement forced password change for LDAP federated user (password policy control) (#15253)
* Add limited support for LDAP password policy control

Signed-off-by: Tero Saarni <tero.saarni@est.tech>
2026-02-20 09:15:51 -03:00
Michal VavříkandGitHub 8e816f749c feat: Update container images to use OpenJDK 25 (#46386)
This PR is mostly based on https://github.com/vmuzikar/keycloak/commit/303446b465f2896b269df42388a685ec69b22560.
Additionally, I made few tweaks to documentation and introduce a doc variable for the recommended Java version so limit required changing when migrating the recommended JDK version.

* Closes: https://github.com/keycloak/keycloak/issues/45830

Signed-off-by: Michal Vavřík <michal.vavrik@aol.com>
2026-02-17 15:35:46 +01:00
Stefan GuilhenandPedro Igor aeda5c4f01 Increase workflow executor timeout to 5 seconds by default
Closes #46332

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-02-13 14:33:31 -03:00
Stefan GuilhenandPedro Igor c17d9d0d0c Add section about handling failures to the workflows documentation
Closes #45175

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-02-13 12:01:00 -03:00
Pedro IgorandGitHub 8df79202a0 Fixing organization members docs to mention they can join multiple organizations
Closes #46040

Signed-off-by: Pedro Igor <pigor.craveiro@gmail.com>
2026-02-13 14:54:10 +01:00
Hugo Hakim DamerandGitHub 292a177b10 [OID4VCI] Add support for nested claims in OID4VCI user attribute mapper (#45751)
Closes #45748


Signed-off-by: Hugo Hakim Damer <HugoHakim.Damer@governikus.de>
2026-02-06 10:57:12 +01:00
Aggelos SachtourisandPedro Igor 28bb0b2cd9 Create documentation for unlink user workflow step
Signed-off-by: Aggelos Sachtouris <aggelos_sachtouris@hotmail.com>
2026-02-05 12:22:37 -03:00
Stefan GuilhenandPedro Igor 63d9a19982 Allow step-runner-task-timeout to be specified using ISO-8601 format
Closes #45987

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-02-03 14:53:19 -03:00
Stefan GuilhenandPedro Igor c379192bf8 Adjust event names in workflows documentation to match the new event provider names
Closes #45968

Signed-off-by: Stefan Guilhen <sguilhen@redhat.com>
2026-02-03 14:47:41 -03:00