20 lines
1.4 KiB
Markdown
20 lines
1.4 KiB
Markdown
# Keycloak extension for API key authentication
|
|
|
|
The extension contains providers for supporting API key authentication, and also other non related providers like a custom `EmailSenderProvider` (for demo purposes).
|
|
|
|
It also contains a customization of the account console (the user info page provided by Keycloak) showing the API key. The account console is accessible at `/auth/realms/{realm_name}/account` and requires the user to be already authenticated.
|
|
|
|
The master branch uses the new Keycloak distribution powered by Quarkus. For Legacy keycloak (versions < 17.0.0), you can switch to the `legacy` branch.
|
|
## How to run
|
|
|
|
you can run the project by running the following from a terminal: `mvn -f api-key-module package && mvn -f dashboard-service package && docker-compose up`
|
|
|
|
Note: You need to add `auth-server` to your hosts file (`/etc/hosts` for linux) and map it to localhost.
|
|
|
|
## Testing
|
|
|
|
1. Navigate to localhost:8180 in a browser, you will redirected to keycloak for authentication
|
|
2. you need register a new user, after which you will be redirected to the main dashboard page which will show your API key
|
|
3. copy the API key and use it to call the API: `curl -v -H "x-api-key: $THE_API_KEY" localhost:8280`, if you omit the API key, you will get 401 status
|
|
|
|
More explanations can be found in this blog [post](http://www.zakariaamine.com/2019-06-14/extending-keycloak)
|