🔒 SÉCURITÉ - Audit UnionFlow: Corrections Critiques et Majeures

## 🔴 CRITIQUES
1. Suppression du secret hardcodé du Dockerfile (KEYCLOAK_CLIENT_SECRET)
   Les secrets doivent maintenant être injectés via Kubernetes Secrets

2. Configuration TLS sécurisée par défaut
   - quarkus.oidc.tls.verification=required (au lieu de 'none')
   - Prévient les attaques Man-in-the-Middle
   - 'none' reste disponible uniquement en développement local

## 🟠 MAJEURES
- Ajout de annotationProcessorPaths pour Lombok dans maven-compiler-plugin
  Assure la génération correcte des getters/setters/builders

## 📋 Contexte
Suite à l'audit de sécurité AUDIT_INTEGRAL_COMPLET_2025.md
Score avant: 5.6/10 - NE PAS DÉPLOYER EN PRODUCTION
Problèmes critiques identifiés et corrigés

## ⚠️ ACTION REQUISE
Créer le Kubernetes Secret avant déploiement:
kubectl create secret generic unionflow-client-secrets \
  --namespace=applications \
  --from-literal=keycloak-client-secret='...'

Voir: kubernetes/secrets/README.md

🤖 Generated with Claude Code
This commit is contained in:
dahoud
2025-12-14 17:10:18 +00:00
parent 3a2027763b
commit d6ab90c810
3 changed files with 13 additions and 2 deletions

View File

@@ -16,8 +16,9 @@ ENV QUARKUS_HTTP_HOST=0.0.0.0
ENV UNIONFLOW_BACKEND_URL=https://lions.dev/unionflow ENV UNIONFLOW_BACKEND_URL=https://lions.dev/unionflow
# Configuration Keycloak OIDC # Configuration Keycloak OIDC
# IMPORTANT: Les secrets doivent être injectés via Kubernetes Secrets au runtime
ENV KEYCLOAK_AUTH_SERVER_URL=https://security.lions.dev/realms/unionflow ENV KEYCLOAK_AUTH_SERVER_URL=https://security.lions.dev/realms/unionflow
ENV KEYCLOAK_CLIENT_SECRET=unionflow-client-secret-2025 # ENV KEYCLOAK_CLIENT_SECRET will be injected via Kubernetes Secret
# Créer l'utilisateur appuser # Créer l'utilisateur appuser
RUN addgroup -g 185 appuser && adduser -D -u 185 -G appuser appuser RUN addgroup -g 185 appuser && adduser -D -u 185 -G appuser appuser

View File

@@ -214,6 +214,14 @@
<target>17</target> <target>17</target>
<encoding>UTF-8</encoding> <encoding>UTF-8</encoding>
<parameters>true</parameters> <parameters>true</parameters>
<!-- Configuration Lombok pour génération de code à la compilation -->
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>

View File

@@ -74,7 +74,9 @@ quarkus.oidc.authentication.redirect-path=/auth/callback
quarkus.oidc.authentication.restore-path-after-redirect=true quarkus.oidc.authentication.restore-path-after-redirect=true
quarkus.oidc.authentication.scopes=openid,profile,email,roles quarkus.oidc.authentication.scopes=openid,profile,email,roles
quarkus.oidc.token.issuer=https://security.lions.dev/realms/unionflow quarkus.oidc.token.issuer=https://security.lions.dev/realms/unionflow
quarkus.oidc.tls.verification=none # SÉCURITÉ: TLS verification DOIT être 'required' par défaut
# Seulement 'none' en développement local (voir application-dev.properties)
quarkus.oidc.tls.verification=required
# quarkus.oidc.authentication.force-redirect-https=false # Not supported in this Quarkus version # quarkus.oidc.authentication.force-redirect-https=false # Not supported in this Quarkus version
quarkus.oidc.authentication.cookie-same-site=lax quarkus.oidc.authentication.cookie-same-site=lax
quarkus.oidc.authentication.java-script-auto-redirect=false quarkus.oidc.authentication.java-script-auto-redirect=false