Sécurité d'une API — un appel, trois décisions

Sécurité d'une API — un appel, trois décisions An architecture diagram generated by Archify. Application mobile · client public, code + PKCE · Appelants · API2 Application mobile client public, code + PKCE API2 Partenaire B2B · identifiants client dédiés · Appelants · API10 Partenaire B2B identifiants client dédiés API10 Agent d'IA · identité propre, droits bornés · Appelants · API6 Agent d'IA identité propre, droits bornés API6 Fournisseur d'identité · OIDC, jetons courts, audience · Architecture component · API2 Fournisseur d'identité OIDC, jetons courts, audience API2 Passerelle d'API · jeton, schéma, quotas · Périmètre de l'API · API4 · API8 Passerelle d'API jeton, schéma, quotas API4 · API8 Inventaire et contrats · OpenAPI par version, retrait daté · Périmètre de l'API · API9 Inventaire et contrats OpenAPI par version, retrait daté API9 Décision d'autorisation · objet · propriété · fonction · Périmètre de l'API · API1 · API3 · API5 Décision d'autorisation objet · propriété · fonction API1 · API3 · API5 API métier · refus par défaut · Périmètre de l'API · ASVS V4 · V8 API métier refus par défaut ASVS V4 · V8 Appels sortants · destinations en liste blanche · Périmètre de l'API · API7 Appels sortants destinations en liste blanche API7 Données clients · cloisonnées par client · Données et preuves · ASVS V14 Données clients cloisonnées par client ASVS V14 Journal par appel · identité, objet, action, décision · Données et preuves · ASVS V16 Journal par appel identité, objet, action, décision ASVS V16 connexion jeton valide requête qui, quoi ? accès sortant trace contrat catalogue Appelants Périmètre de l'API Données et preuves Legend Frontend Backend Database Security External

Les trois décisions de chaque appel

  • • Qui appelle : le jeton, validé par la passerelle et par l'API elle-même
  • • Sur quel objet : contrôle d'appartenance côté serveur, à chaque accès (BOLA)
  • • Pour quelle action : autorisation par fonction, refus par défaut (BFLA)

Ce que la passerelle ne sait pas

  • • À qui appartient la facture demandée : seule l'API métier le sait
  • • Quels champs l'appelant a le droit de modifier : schéma et liste blanche côté API
  • • Si une ancienne version tourne encore ailleurs : c'est le rôle de l'inventaire

Les tests qui le prouvent

  • • Deux comptes de test : A demande l'objet de B, refus attendu et journalisé
  • • Jeton expiré ou de mauvaise audience : refus à la passerelle et à l'API
  • • URL interne fournie à l'API : appel sortant refusé par la liste blanche