No description
Find a file
Alex Szczuczko 610e3044ad Minimize the RPM content of the Quarkus container
Even though we use `ubi8-minimal` as the parent of our container, it
still has many RPMs installed that aren't necessary to run the Keycloak
server. Also, since the JDK RPM (that we install on top of
`ubi8-minimal`) is designed for general use, it pulls in more dependency
RPMs than it strictly needs to, like cups and avahi. Keycloak will never
need to access a printer itself!

Trimming down these excess RPMs will improve our CVE statistics with
automated scanners, and therefore let us perform fewer CVE rebuilds.

`ubi8-null.sh` uses the low-level `rpm` command to identify and forcibly
remove dependencies and operating system files that are not required to
boot our Quarkus-based server. This includes `microdnf` and `rpm`
itself! I have preserved bash however, so it's still possible to debug
the container from a shell.

I've created an initial set of allow/disallow lists, that seems to pass
a smoke test (server boots, admin console works). This leaves 37
packages installed, with 96 removed relative to `ubi8-minimal`. We could
go more minimal than this, or less minimal if required. Trial and error
is required.

Closes #16902
2023-02-09 11:20:09 +01:00
.github Bump github/codeql-action from 2.1.39 to 2.2.1 2023-02-06 16:04:13 -03:00
.mvn/wrapper Update mvnw to 3.8.6 (#12492) 2022-06-14 10:28:40 +02:00
adapters ElytronSessionTokenStore#logoutHttpSessions() does not work as expected due to UNDERTOW-2159 (#16501) 2023-01-19 19:52:29 +01:00
authz Authz client not updated with the way of encoding the basic header 2022-10-24 08:45:30 +02:00
boms Update jboss-parent for boms (#16363) 2023-01-10 15:13:07 +01:00
common Remove old admin console feature (#16861) 2023-02-07 12:59:35 +01:00
core BCFIPS approved mode: Some tests failing due the short secret for client-secret-jwt client authentication 2023-01-30 08:40:46 +01:00
crypto Make sure PBKDF2 providers are using the expect size for derived keys (#16798) 2023-02-03 15:31:25 +01:00
dependencies Exclude commons-text from liquibase-core dependency 2022-12-12 10:38:54 -03:00
distribution Update JavaDoc generation to be JDK11 compatible (#15569) 2022-11-21 08:44:17 +01:00
docs Move getting started and migration guides to main repo (#16675) 2023-02-09 10:29:41 +01:00
examples Removing references to request and response from Resteasy 2022-12-01 08:38:24 -03:00
federation Added KERBEROS feature. Disable it when running tests on FIPS 2023-01-25 18:38:46 +01:00
integration Make Keycloak FIPS working with OpenJDK 17 on FIPS enabled RHEL 2022-12-20 21:03:55 +01:00
js Bump @types/node from 18.11.18 to 18.11.19 in /js (#16867) 2023-02-06 15:44:10 +00:00
misc Remove Red Hat Single Sign-On product profile from upstream (#14697) 2022-10-18 14:43:04 +02:00
model Leverage HotRod client provided transaction 2023-02-08 10:26:30 +01:00
operator Minimize the RPM content of the Quarkus container 2023-02-09 11:20:09 +01:00
quarkus Minimize the RPM content of the Quarkus container 2023-02-09 11:20:09 +01:00
rest fixed fine grain permissions (#16668) 2023-01-28 10:13:53 -05:00
saml-core Fix linebreaks in XML / SAML signatures 2023-01-23 15:39:10 +01:00
saml-core-api Ensure that only JDK 8 APIs are used where JDK 8 is still required. 2022-06-20 14:44:33 -03:00
server-spi Pre-authorization hook for client policies 2023-02-08 15:06:32 +01:00
server-spi-private Leverage HotRod client provided transaction 2023-02-08 10:26:30 +01:00
services Pre-authorization hook for client policies 2023-02-08 15:06:32 +01:00
testsuite Removing references to old admin console test artifacts 2023-02-08 17:22:45 -03:00
themes Remove common resources no longer needed after old admin console is removed (#16908) 2023-02-08 11:56:55 +01:00
util Fixing UserFederationLdapConnectionTest,LDAPUserLoginTest to work with FIPS (#15299) 2022-11-03 16:35:57 +01:00
.gitattributes Use lf as line-ending for sh files 2022-07-19 08:57:57 +02:00
.gitignore Keycloak CI workflow refactoring (#15968) 2022-12-14 16:12:23 +01:00
.gitleaks.toml Removing testsuite/performance from main Keycloak repository (#15950) 2022-12-15 14:43:24 +01:00
ADOPTERS.md Add CERN to Adopters 2022-11-24 11:30:57 +01:00
CONTRIBUTING.md Update commit message and issue linking sections in contributors guide (#9391) 2022-01-11 11:19:31 +01:00
get-version.sh Added get-version script 2019-03-05 08:42:14 +01:00
GOVERNANCE.md Updated list of Keycloak repositories in GOVERNANCE.md (#16447) 2023-01-18 13:03:03 +01:00
LICENSE.txt Added text version of ASL2 license 2019-11-08 12:43:10 +01:00
MAINTAINERS.md Update MAINTAINERS.md (#14461) 2022-09-16 15:08:09 +02:00
maven-settings.xml [KEYCLOAK-11764] Upgrade to Wildfly 19 2020-04-24 08:19:43 -03:00
mvnw Add Maven Wrapper (#11031) 2022-04-22 15:24:39 +02:00
mvnw.cmd Add Maven Wrapper (#11031) 2022-04-22 15:24:39 +02:00
pom.xml File store basis 2023-02-07 14:59:23 +01:00
PR-CHECKLIST.md Introduce CODEOWNERS (#16637) 2023-01-30 13:05:45 +01:00
prod-arguments.json [KEYCLOAK-16723] Upgrade to Wildfly 22 2021-04-29 12:36:03 +02:00
README.md Grammar mistakes in the README file 2022-07-13 11:04:49 -03:00
release.sh Include Admin UI as a regular dependency (#11281) 2022-04-21 11:39:00 +02:00
set-version.sh Include Admin UI as a regular dependency (#11281) 2022-04-21 11:39:00 +02:00

Keycloak

Keycloak is an Open Source Identity and Access Management solution for modern Applications and Services.

This repository contains the source code for the Keycloak Server, Java adapters and the JavaScript adapter.

Help and Documentation

Reporting Security Vulnerabilities

If you've 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.

Other Keycloak Projects

License