This repository has been archived on 2026-01-03. You can view files and clone it, but cannot push or open issues or pull requests.
Files
lions-user-manager/OIDC_ENCRYPTION_SECRET.md
lionsdev 4cd23c03ad docs: Ajout documentation et scripts de démarrage
- Documentation configuration OIDC, démarrage, diagnostic
- Scripts batch pour démarrage backend et client
- Script shell pour configuration Keycloak frontend
2025-12-05 16:23:57 +00:00

81 lines
3.0 KiB
Markdown

# 🔐 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=<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é :
```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**.