- Documentation configuration OIDC, démarrage, diagnostic - Scripts batch pour démarrage backend et client - Script shell pour configuration Keycloak frontend
3.0 KiB
3.0 KiB
🔐 Configuration OIDC - Encryption Secret
❓ Qu'est-ce que quarkus.oidc.token-state-manager.encryption-secret ?
Cette propriété est requise lorsque OIDC est activé dans Quarkus. Elle sert à chiffrer les cookies d'état utilisés lors du flux d'authentification OIDC.
⚠️ Exigences
- Longueur minimale : 16 caractères
- Recommandé : 32 caractères ou plus pour une meilleure sécurité
- Type : Chaîne de caractères aléatoire
📍 Où trouver le secret dans Keycloak ?
Pour le Client (lions-user-manager-client)
- Accéder à Keycloak Admin Console :
http://localhost:8180/admin - Se connecter avec
admin/admin - Sélectionner le Realm :
lions-user-manager(ou le realm que vous utilisez) - Aller dans :
Clients→lions-user-manager-client - Onglet :
Credentials(ouSettings→Credentials) - Copier : Le
Client Secret(ouSecret)
Exemple de configuration
# Dans application-dev.properties (CLIENT)
quarkus.oidc.auth-server-url=http://localhost:8180/realms/lions-user-manager
quarkus.oidc.client-id=lions-user-manager-client
quarkus.oidc.credentials.secret=<SECRET_COPIÉ_DE_KEYCLOAK>
quarkus.oidc.token-state-manager.encryption-secret=<CLÉ_DE_CHIFFREMENT_16_CHARS_MIN>
🔑 Différence entre les deux secrets
1. quarkus.oidc.credentials.secret
- Source : Keycloak (Client Secret)
- Usage : Authentification du client auprès de Keycloak
- Où le trouver : Keycloak Admin Console → Clients → [votre-client] → Credentials → Secret
2. quarkus.oidc.token-state-manager.encryption-secret
- Source : Vous (générez vous-même)
- Usage : Chiffrement des cookies d'état OIDC
- Génération : Chaîne aléatoire d'au moins 16 caractères
✅ Solution actuelle
Dans application-dev.properties du client, j'ai ajouté :
quarkus.oidc.token-state-manager.encryption-secret=client-secret-lions-2025-encryption-key-min-16-chars
Cette clé fait 48 caractères et est suffisante pour le développement.
🔒 Pour la production
En production, utilisez une clé générée de manière sécurisée :
# Générer une clé aléatoire de 32 caractères
openssl rand -base64 32
Ou utilisez un outil en ligne pour générer une clé aléatoire.
📝 Notes importantes
- Le secret de chiffrement n'est PAS le Client Secret de Keycloak
- C'est une clé que vous générez vous-même pour chiffrer les cookies
- Elle doit être la même pour tous les nœuds d'un cluster (en production)
- Ne la commitez PAS dans le dépôt Git si elle contient des informations sensibles
🎯 Configuration actuelle
- Client Secret Keycloak :
NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO(dansapplication-dev.properties) - Encryption Secret :
client-secret-lions-2025-encryption-key-min-16-chars(ajouté)
Ces deux valeurs sont différentes et servent à des usages différents.