# 🔐 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) 1. **AccĂ©der Ă  Keycloak Admin Console** : `http://localhost:8180/admin` 2. **Se connecter** avec `admin` / `admin` 3. **SĂ©lectionner le Realm** : `lions-user-manager` (ou le realm que vous utilisez) 4. **Aller dans** : `Clients` → `lions-user-manager-client` 5. **Onglet** : `Credentials` (ou `Settings` → `Credentials`) 6. **Copier** : Le `Client Secret` (ou `Secret`) ### Exemple de configuration ```properties # 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= quarkus.oidc.token-state-manager.encryption-secret= ``` ## 🔑 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Ă© : ```properties 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 : ```bash # 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 1. **Le secret de chiffrement n'est PAS le Client Secret de Keycloak** 2. **C'est une clĂ© que vous gĂ©nĂ©rez vous-mĂȘme** pour chiffrer les cookies 3. **Elle doit ĂȘtre la mĂȘme** pour tous les nƓuds d'un cluster (en production) 4. **Ne la commitez PAS** dans le dĂ©pĂŽt Git si elle contient des informations sensibles ## 🎯 Configuration actuelle - **Client Secret Keycloak** : `NTuaQpk5E6qiMqAWTFrCOcIkOABzZzKO` (dans `application-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**.