* Authorize receiver-driven SSF subject adds per subject Any SSF receiver with ssf.manage could subscribe to security events for every user in the realm, since subjects/add only verified stream ownership. Receiver adds are now gated by ssf.receiverSubjectAddPolicy (AUTHENTICATED by default, ANY, NONE), and can no longer override a subject an administrator explicitly ignored. Fixes #53695 Signed-off-by: Stan Silvert <ssilvert@redhat.com> Assisted-by: Claude Opus 5.5 * Ignore expired sessions in the SSF AUTHENTICATED add check Session streams can return user and client sessions past their idle or max lifespan, so an expired relationship still let a receiver add the user. Require the same session validity checks as token refresh. Also restore the default add policy in test cleanup by blanking the attribute: a client update keeps attributes omitted from the representation, so ANY/NONE leaked into later tests. Fixes #53695 Signed-off-by: Stan Silvert <ssilvert@redhat.com> Assisted-by: Claude Opus 5.5 --------- Signed-off-by: Stan Silvert <ssilvert@redhat.com>
Open Source Identity and Access Management
Add authentication to applications and secure services with minimum effort. No need to deal with storing users or authenticating users.
Keycloak provides user federation, strong authentication, user management, fine-grained authorization, and more.
Help and Documentation
- Documentation
- User Mailing List - Mailing list for help and general questions about Keycloak
- Join #keycloak for general questions, or #keycloak-dev on Slack for design and development discussions, by creating an account at https://slack.cncf.io/.
Reporting Security Vulnerabilities
If you have found a security vulnerability, please look at the instructions on how to properly report it.
Reporting an issue
If you believe you have discovered a defect in Keycloak, please open an issue. Please remember to provide a good summary, description as well as steps to reproduce the issue.
Getting started
To run Keycloak, download the distribution from our website. Unzip and run:
bin/kc.[sh|bat] start-dev
Alternatively, you can use the Docker image by running:
docker run quay.io/keycloak/keycloak start-dev
For more details refer to the Keycloak Documentation.
Building from Source
To build from source, refer to the building and working with the code base guide.
Testing
To run tests, refer to the running tests guide.
Writing Tests
To write tests, refer to the writing tests guide.
Contributing
Before contributing to Keycloak, please read our contributing guidelines. Participation in the Keycloak project is governed by the CNCF Code of Conduct.
Joining a community meeting is a great way to get involved and help shape the future of Keycloak.
Code of Conduct
We are committed to providing a safe, welcoming, and constructive environment for all Keycloak contributors and users.
To protect this space, we actively enforce our Code of Conduct.
If you wish to report an incident or appeal a moderation decision, please email keycloak-coc@googlegroups.com.
Other Keycloak Projects
- Keycloak - Keycloak Server and Java adapters
- Keycloak Client - Keycloak client libraries
- Keycloak QuickStarts - QuickStarts for getting started with Keycloak
- Keycloak Node.js Connect - Node.js adapter for Keycloak