45 releases

0.0.51 Apr 9, 2025
0.0.50 Mar 24, 2025
0.0.49 Feb 26, 2025
0.0.39 Nov 25, 2024
0.0.13 Mar 28, 2024

#837 in Authentication

Download history 136/week @ 2025-01-01 331/week @ 2025-01-08 14/week @ 2025-01-15 113/week @ 2025-01-22 183/week @ 2025-01-29 256/week @ 2025-02-05 104/week @ 2025-02-12 196/week @ 2025-02-19 256/week @ 2025-02-26 30/week @ 2025-03-05 56/week @ 2025-03-12 170/week @ 2025-03-19 59/week @ 2025-03-26 67/week @ 2025-04-02 223/week @ 2025-04-09

535 downloads per month
Used in 3 crates

MIT license

185KB
4.5K SLoC

Quick Microservices Keycloak - qm-keycloak

utilities to work with a Keycloak server and managing authentication and authorization


GitHub repositoryCargo packageDocs

github.com - quick-microservice-rs crates.io - qm-keycloak
github.com - workflow - build


Description

With this crate it is easy to get a Keycloak configuration with the most common settings. It also provides token management and session handling as well as Keycloak configuration validation.

Usage

let keycloak_config = qm::keycloak::KeycloakConfig::new()?;

The Config is populated with environment variables. By default, all variables with the prefix KEYCLOAK_ are considered.

The prefix can be changed by using a builder pattern.

let example_config = qm::keycloak::KeycloakConfig::builder().with_prefix("EXAMPLE_").build()?;

Variables and Defaults

These variables are available and are set with the following defaults.

variable struct field default
KEYCLOAK_REALM realm "rmp"
KEYCLOAK_USERNAME username "admin"
KEYCLOAK_PASSWORD password "admin"
KEYCLOAK_THEME theme "qm"
KEYCLOAK_EMAIL_THEME email_theme "qm"
KEYCLOAK_REALM_ADMIN_EMAIL realm_admin_email "admin@test.local"
KEYCLOAK_REALM_ADMIN_USERNAME realm_admin_username "admin"
KEYCLOAK_REALM_ADMIN_PASSWORD realm_admin_password "Admin123!"
KEYCLOAK_PORT port 42210
KEYCLOAK_HOST host "127.0.0.1"
KEYCLOAK_ADDRESS address http://{host}:{port}/
KEYCLOAK_PUBLIC_URL public_url "http://127.0.0.1:80"
KEYCLOAK_SMTP_REPLY_TO_DISPLAY_NAME smtp_reply_to_display_name
KEYCLOAK_SMTP_STARTTLS smtp_starttls false
KEYCLOAK_SMTP_PORT smtp_port 1025
KEYCLOAK_SMTP_HOST smtp_host "smtp"
KEYCLOAK_SMTP_REPLY_TO smtp_reply_to
KEYCLOAK_SMTP_FROM smtp_from "noreply@test.local"
KEYCLOAK_SMTP_FROM_DISPLAY_NAME smtp_from_display_name
KEYCLOAK_SMTP_SSL smtp_ssl false
KEYCLOAK_BROWSER_FLOW browser_flow "browser"
KEYCLOAK_AUTHENTICATOR_EMAIL_SUBJECT authenticator_email_subject "Temporary Authentication Code"

Dependencies

~28–49MB
~825K SLoC