Aller au contenu principal

ADR-011 : Sélection du mode de sécurité API — mTLS / OAuth2 / Hybride

Métadonnées

ChampValeur
Statut✅ Accepté
Date11 janvier 2026
LinearCAB-410

Contexte

STOA Gateway doit prendre en charge plusieurs modes de sécurité API selon les contextes d'utilisation. Plutôt que de laisser les équipes deviner, nous formalisons un arbre de décision qui recommande automatiquement le bon mode.

Options envisagées

OptionDescriptionVerdict
mTLS uniquementAuthentification par certificat client✅ Pour les API CORE internes
OAuth2 uniquementTokens JWT avec scopes✅ Pour les API SELF-SERVICE
mTLS + OAuth2Double authentification✅ Pour les API critiques exposées
Clé API uniquementSecret statique⚠️ Niveau community seulement

Décision

Implémenter un arbre de décision automatisé pour recommander le mode de sécurité API optimal.

Arbre de décision

                    ┌─────────────────────┐
│ Type de consommateur│
└──────────┬──────────┘

┌────────────────┴────────────────┐
│ │
[Interne] [Externe]
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────┐
│ Type de flux ? │ │ OAuth2 requis │
└────────┬────────┘ └────────┬────────┘
│ │
┌────────┴────────┐ │
│ │ ▼
[A2A] [User] ┌─────────────────┐
│ │ │ Domaine critique?│
│ ▼ └────────┬────────┘
│ OAuth2 requis │
▼ ┌────────┴────────┐
┌─────────────────┐ │ │
│Domaine critique?│ [Oui] [Non]
└────────┬────────┘ │ │
│ ▼ ▼
┌────┴────┐ ┌──────────────┐ ┌──────────────┐
│ │ │ mTLS + OAuth2│ │ OAuth2 seul │
[Oui] [Non] │ (HYBRIDE) │ │(SELF-SERVICE)│
│ │ └──────────────┘ └──────────────┘
▼ ▼
┌────────┐ ┌────────────┐
│ mTLS │ │ OAuth2 ou │
│ (CORE) │ │ mTLS selon │
└────────┘ │ gouvernance│
└────────────┘

Règles de décision

CasConditionsMode recommandé
🟢 COREInterne + A2A + Critique + Droits stablesmTLS
🔵 SELF-SERVICEExterne + User/BFF + Priorité DXOAuth2
🟣 HYBRIDECritique + Externe + Gouvernance fortemTLS + OAuth2

Conséquences

Positives

  • Recommandation automatique et cohérente
  • Réduction des erreurs de configuration de sécurité
  • Décisions documentées pour l'audit

Négatives

  • Complexité supplémentaire des outils
  • Courbe d'apprentissage pour les équipes

Neutres

  • Les équipes peuvent déroger avec une justification documentée

Outil MCP : security-advisor

// Entrée
{
"consumer_type": "internal | external",
"flow_type": "a2a | user",
"rights_variability": "static | dynamic",
"domain_criticality": "low | high",
"governance_level": "basic | strong"
}

// Sortie
{
"recommended_security_mode": "mTLS | OAuth2 | mTLS+OAuth2",
"justification": ["Domaine critique", "Flux A2A interne"],
"risk_level": "low | medium | high",
"implementation_notes": ["Certificat client à courte durée de vie", "Politique ABAC"]
}

Références