Working on new technologies can be hard for any developer and when I saw an opportunity to improve the Keycloak project, I started to spend my spare time on creating a generic Keycloak SDK based on Docker.
I have just published on my GitHub account the first version of the Keycloak Docker Quickstart published under Apache License 2.0.
Keycloak is an Open Source Identity Access Management platform provided by the JBoss Community and fully supported by Red Hat. If you have a requirement for building your own IAM / SSO platform and you also need to create your own authenticators, Keycloak will help you on developing because it is a very flexible framework.
Another good point here is that Keycloak includes several connectors implemented and ready to use such as OpenID and Social Login adapters.
The current Keycloak Quickstarts requires some manual steps to deploy and test your extensions. Then I decided to improve it creating a generic project that can help developers to implement customizations on Keycloak adding a mechanism also to execute tests on the fly.
Keycloak Docker Quickstart
The Keycloak Docker Quickstart consists of a Maven multi module project that allows you to manage your extensions using a fully Mavenized lifecycle for compiling, building, testing and packaging your custom IAM platform.
This project will create your deployment package for you: in the case of using Docker it creates your custom Docker image with all the overlay structures ready to use; otherwise you can use the standard package in a compressed archive.
The Keycloak Docker Quickstart SDK consists of the following initial components:
I hope that this list can be improved with new elements soon, considering for example to bring a porting of all or some of the Keycloak Quickstarts modules.
This component is a standard Maven assembly module for packaging your extensions when you need to deploy it without using Docker. It practically creates a package using overlays that you can release to your customer with a practical installation guide.
Keycloak Identity Providers
This component contains all your identity providers and authenticators as sub Maven modules. Actually a custom authenticator is provided, it was taken from the Secret Question sample directly from the Keycloak project.
Keycloak Integration Tests
This modules contains the configuration for starting and stopping the Docker platform and it also provides a mechanism to configure the Docker overlays depending on your specific components.
This is the theme module for adding your own themes.
There are also other supported and interesting features to consider:
The Dockerfile is dynamically generated from Maven
Custom Docker image generation, deployment and saving
The docker.keepRunning parameter will help you on testing on the fly
You can easily switch the Keycloak version using the version parameter in the pom.xml
I hope that this project can help others on developing extensions on Keycloak and I would like find new contributors that can improve it in the right way. Hope this helps :)
If you are searching for enterprise support on developing your own Keycloak project, TAI Solutions is Advanced Partner of Red Hat and we can help you on any delivery needs.