Aller au contenu

Liste de contrôle de l'audit de l'API

Une liste de contrôle complète pour vérifier l’état de préparation de l’API avant sa publication, couvrant la conception, la documentation, la sécurité et la conformité aux politiques.

  • Meilleure compréhension des principes de la liste de contrôle de l’audit de l’API
  1. Utilisez la liste de contrôle de l’audit de l’API pour vous assurer que la conception de l’API répond aux exigences fonctionnelles et non fonctionnelles, notamment en matière de sécurité, de performances et de conformité.
  2. Mener des audits pour s’assurer que les API respectent les normes organisationnelles, techniques et juridiques avant d’être publiées.
  3. Veiller à ce que les modèles de sécurité, la configuration de la passerelle et les termes juridiques soient clairs et accessibles aux consommateurs.

Liste de contrôle pour l’API REST

✅ Le concept est prêt lorsque…

CritèresTop 10 des API OWASPOpenAPI 3.1.x
L’API est basée sur des besoins commerciaux clairsAPI9:2019
L’API masque les données brutes du backend ; conçue pour une utilisation partagéeAPI6:2023
Les points de terminaison ont une valeur commerciale et sont accompagnés d’une description des fonctionnalitésAPI9:2023✅ (via la description)
La conception de l’API est cohérente avec les autres APIAPI8:2023, API9:2023
Les noms des données/attributs utilisent un anglais descriptif
Les champs obligatoires sont spécifiésAPI6:2019✅ (via obligatoire)
Les dates utilisent le format ISO avec le fuseau horaireAPI8:2019✅ (via format : date-heure)
Les données générales utilisent des valeurs standard (par exemple, ISO)API6:2023, API8:2019➖ (via énumération, format, modèle)
Les noms de champs évitent les acronymes et utilisent des mots completsAPI9:2023
La création de nouvelles ressources renvoie des identifiantsAPI2:2023✅ (via schéma de réponse/exemple)

🧪 Le prototype de conception de l’API est prêt lorsque…

CritèresOWASP API Top 10OpenAPI 3.1.x
Tous les éléments de la liste de contrôle conceptuelle ont été vérifiés
Les chemins d’accès aux points de terminaison contiennent au maximum deux ressources/sous-ressources
Les points de terminaison et les attributs comprennent des exemples✅ (via exemple, exemples)
POST est utilisé pour créer/mettre à jour (pas PUT sauf si complet)
DELETE est utilisé pour supprimer des ressources
Stratégie de gestion des versions définie ; prise en charge par la passerelleAPI9:2023
GET n’a pas de corps de requête ; renvoie 200 OK avec le contenu➖ (convention ; non appliquée)
GET renvoie 204 si le corps de la réponse est vide✅ (peut définir une réponse 204)
POST renvoie 200 OK lors de la mise à jour✅ (peut définir des codes d’état)
POST renvoie 201 Créé avec ID lors de la création
DELETE renvoie 204 OK en cas de succès
Les erreurs 400 fournissent des informations spécifiques sur l’erreurAPI6:2023✅ (décrit dans le schéma de réponse)
401 Non autorisé pour des informations d’identification incorrectesAPI2:2023✅ (documentation de réponse standard)
403 Accès interdit pour opérations non autoriséesAPI5:2023

🚀 L’API est maintenable en production lorsque…

CritèresOWASP API Top 10OpenAPI 3.1.x
Tous les éléments de prototype/conception ont été audités
Publié via la gestion des APIAPI10:2019, API8:2023
Visible dans le portail développeurAPI9:2023
Accessible uniquement via la passerelle APIAPI9:2023, API8:2023
Limites de débit appliquéesAPI4:2023
Documents générés automatiquement à partir des spécifications/schémasAPI9:2023
Spécifications mises à jour automatiquement vers le portail gateway/devAPI9:2023✅ (indirect via l’outil)
Spécifications validées à chaque modification✅ (meilleure pratique)
La spécification contient le schéma de requête/réponse
Le schéma et les exemples passent la validation
Utilise HTTPS ou des protocoles cryptésAPI10:2023
Publié sous le domaine officiel de l’organisationAPI8:2023
Points de terminaison protégés par authentificationAPI2:2023, API4:2023➖ (peut définir des schémas de sécurité)
Authentification par jeton✅ (via securitySchemes)
Protégé contre les attaques CSRFAPI8:2023
Entrées validées automatiquement par le frameworkAPI8:2023✅ (indirect via le schéma)
Sorties automatiquement échappées par le frameworkAPI8:2023
Chiffrement des données en transit/stockageAPI8:2023
Intégrité des messages mise en œuvreAPI6:2023, API7:2023
UUID/pseudo-identificateurs à la place des identifiants de base de donnéesAPI7:2023➖ (recommandé dans l’exemple)
Aucune donnée sensible dans les URLAPI7:2023
Méthodes HTTP uniquement pour les ressources prévuesAPI5:2023✅ (défini dans les chemins d’accès)

Liste de contrôle de l’API asynchrone
✅ Le concept est prêt lorsque…

CritèreAsyncAPI 2.x
L’API est basée sur des besoins métier clairs
L’API masque les données brutes du backend ; elle est conçue pour une utilisation partagée
L’API est accompagnée d’une description qui explique sa valeur commerciale et ses fonctionnalités
L’API présente une conception cohérente avec nos autres API
La dénomination de l’API et des données utilise un anglais correct (ou une autre langue standard)
Les champs obligatoires sont spécifiés
Les dates sont au format ISO standard, y compris le fuseau horaire
Les données générales utilisent des valeurs standard (par exemple, ISO)
Les champs sont décrits en mots complets, en évitant les acronymes
Lors de la publication de nouveaux messages, les sujets ou canaux pertinents sont clairement identifiés

🧪 Le prototype de conception de l’API est prêt lorsque…

CritèreAsyncAPI 2.x
Tous les éléments de la liste de contrôle du concept sont vérifiés
La conception des messages présente une structure claire (événements, commandes, requêtes)
Tous les messages et attributs comprennent des exemples
Les messages suivent une structure cohérente entre les sujets/canaux
Une stratégie de gestion des versions des messages a été définie
Les accusés de réception des messages reçus sont définis (le cas échéant)
Les erreurs ou problèmes liés aux messages comprennent des informations spécifiques sur les erreurs
Les stratégies d’authentification et d’autorisation sont spécifiées

🚀 L’API est maintenable en production lorsque…

CritèreAsyncAPI 2.x
Tous les éléments des listes de contrôle du prototype et de la conception de l’API sont vérifiés
L’API est gérée via un outil de gestion AsyncAPI approprié
L’API est visible dans un portail développeur
Les limites de débit sont appliquées lors de l’envoi de messages (le cas échéant)
La documentation de l’API est générée automatiquement à partir de la spécification AsyncAPI
La spécification est automatiquement mise à jour dans les outils API et le portail
La spécification des sujets/canaux est validée à chaque modification
La spécification contient le schéma des messages
Le schéma des messages et les exemples passent la validation du schéma
Le transport des messages garantit la sécurité (par exemple, MQTT/AMQP sur TLS)
L’API est exploitée sous le domaine officiel de l’organisation
Tous les sujets/canaux sont protégés par authentification
L’API dispose d’une authentification par jeton
Le chiffrement des données en transit et en stockage est mis en œuvre selon les besoins
L’intégrité des messages a été mise en œuvre selon les besoins
Des UUID ou des pseudo-identifiants sont utilisés à la place des identifiants de base de données
Les informations sensibles ne sont pas exposées dans les sujets ou les canaux
Une liste blanche est utilisée pour spécifier les clients autorisés à publier/s’abonner