- Documentation configuration OIDC, démarrage, diagnostic - Scripts batch pour démarrage backend et client - Script shell pour configuration Keycloak frontend
81 lines
3.0 KiB
Markdown
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**.
|
|
|