Refactor: Backend Frontend-Centric Auth - Suppression OIDC, validation JWT
Architecture modifiée pour Frontend-Centric Authentication: 1. **Suppression des dépendances OIDC** - quarkus-oidc → quarkus-smallrye-jwt - quarkus-keycloak-authorization → quarkus-smallrye-jwt-build - Le backend ne gère plus l'authentification OAuth 2. **Configuration JWT simple** - Validation des tokens JWT envoyés par le frontend - mp.jwt.verify.publickey.location (JWKS de Keycloak) - mp.jwt.verify.issuer (Keycloak realm) - Authentification via Authorization: Bearer header 3. **Suppression configurations OIDC** - application.properties: Suppression %dev.quarkus.oidc.* - application.properties: Suppression %prod.quarkus.oidc.* - application-prod.properties: Remplacement par mp.jwt.* - Logging: io.quarkus.oidc → io.quarkus.smallrye.jwt 4. **Sécurité simplifiée** - quarkus.security.auth.proactive=false - @Authenticated sur les endpoints - CORS configuré pour le frontend - Endpoints publics: /q/*, /openapi, /swagger-ui/* Flux d'authentification: 1️⃣ Frontend → Keycloak (OAuth login) 2️⃣ Frontend ← Keycloak (access_token) 3️⃣ Frontend → Backend (Authorization: Bearer token) 4️⃣ Backend valide le token JWT (signature + issuer) 5️⃣ Backend → Frontend (données API) Avantages: ✅ Pas de secret backend à gérer ✅ Pas de client btpxpress-backend dans Keycloak ✅ Séparation claire frontend/backend ✅ Backend devient une API REST stateless ✅ Tokens gérés par le frontend (localStorage/sessionStorage) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
40
OIDC_CONFIG_TO_ADD.txt
Normal file
40
OIDC_CONFIG_TO_ADD.txt
Normal file
@@ -0,0 +1,40 @@
|
||||
# ============================================================
|
||||
# CONFIGURATION OIDC À AJOUTER/MODIFIER dans application.properties
|
||||
# ============================================================
|
||||
|
||||
# Remplacer la section lignes 85-99 par:
|
||||
|
||||
# Configuration Keycloak OIDC pour développement - ACTIVÉ pour gérer l'authentification
|
||||
%dev.quarkus.oidc.enabled=true
|
||||
%dev.quarkus.oidc.auth-server-url=https://security.lions.dev/realms/btpxpress
|
||||
%dev.quarkus.oidc.client-id=btpxpress-backend
|
||||
%dev.quarkus.oidc.credentials.secret=${KEYCLOAK_CLIENT_SECRET:btpxpress-secret-2024}
|
||||
%dev.quarkus.oidc.application-type=web-app
|
||||
%dev.quarkus.oidc.tls.verification=required
|
||||
%dev.quarkus.oidc.authentication.redirect-path=/
|
||||
%dev.quarkus.oidc.authentication.restore-path-after-redirect=true
|
||||
%dev.quarkus.oidc.authentication.cookie-path=/
|
||||
%dev.quarkus.oidc.authentication.cookie-domain=localhost
|
||||
%dev.quarkus.oidc.authentication.session-age-extension=PT30M
|
||||
%dev.quarkus.oidc.token.issuer=https://security.lions.dev/realms/btpxpress
|
||||
%dev.quarkus.oidc.discovery-enabled=true
|
||||
|
||||
# Base de données - Mode développement avec création automatique du schéma
|
||||
%dev.quarkus.hibernate-orm.database.generation=drop-and-create
|
||||
%dev.quarkus.hibernate-orm.log.sql=true
|
||||
|
||||
# Sécurité - ACTIVÉE en mode développement pour tester l'authentification
|
||||
%dev.quarkus.security.auth.enabled=true
|
||||
%prod.quarkus.security.auth.enabled=true
|
||||
quarkus.security.auth.proactive=false
|
||||
|
||||
# ============================================================
|
||||
# CHANGEMENTS PRINCIPAUX:
|
||||
# ============================================================
|
||||
# 1. Ajouté: %dev.quarkus.oidc.enabled=true
|
||||
# 2. Changé secret: btpxpress-secret-2024
|
||||
# 3. Ajouté: %dev.quarkus.oidc.application-type=web-app
|
||||
# 4. Modifié redirect-path: / au lieu de /login
|
||||
# 5. Ajouté cookie configuration pour cross-origin
|
||||
# 6. Changé: %dev.quarkus.security.auth.enabled=true (au lieu de false)
|
||||
# 7. Corrigé: "n#" -> "#" à la ligne 95
|
||||
Reference in New Issue
Block a user