Budget & méthode11 min de lecture

Cahier des charges API : points de sécurité

Checklist pratique pour sécuriser une API : cartographie des flux, contrôle des accès, journaux, alertes, reprise et responsabilités.

Julien Thomas

Julien Thomas

Co-fondateur & CEO, Ziema

Cahier des charges API : points de sécurité

Pour sécuriser une API, je fixe les règles avant le développement : chaque exigence doit avoir un responsable, une preuve de test et une date de validation. Une mention « API sécurisée » ne suffit pas.

Voici les 4 volets que je vous conseille de cadrer :

  • Les données et les flux : champs transmis, destinataires, volumes et pays de traitement.
  • Les accès et la reprise : droits limités, secrets protégés, chiffrement, sauvegardes et restauration testée.
  • Les journaux et les alertes : événements suivis, conservation, seuils et délais de prise en charge.
  • Les responsabilités et le lancement : procédures d’incident, preuves de recette et accord de mise en production.

Mon critère : <u>pas de lancement sans tests validés</u>, notamment pour la supervision, la restauration et le retour arrière. Je prévois ensuite une revue à J+30, puis au moins une fois par an.

Sécurité API : les 4 volets avant le lancement

Sécurité API : les 4 volets avant le lancement

1. Cartographier les flux et leurs localisations

Lister les systèmes connectés, les champs et les destinataires

  • [ ] Validez une fiche pour chaque intégration. Indiquez la source, la cible, l’endpoint, le protocole, le sens du flux, la finalité métier et les environnements concernés. Ajoutez le propriétaire métier, le référent technique et les destinataires autorisés.
  • [ ] Justifiez et classez chaque champ transmis. Le dictionnaire de données doit préciser son format, sa source, sa destination, sa finalité, son caractère obligatoire, sa sensibilité, ainsi que les règles de conservation et de suppression. Pour chaque donnée personnelle, renseignez aussi la finalité, la base légale, les rôles RGPD et le lien avec le registre des traitements.[1]
  • [ ] Retirez les champs inutiles. Interdisez les secrets, les jetons et les données sensibles dans les URL, les paramètres de requête et les messages d’erreur. Vérifiez ces règles avec des données de test avant le lancement.[1][2]

Définir la fréquence, les volumes et les localisations

Chaque flux doit avoir des valeurs chiffrées, sans case « à définir ». Renseignez son mode, sa fréquence, ses volumes nominal et de pointe, sa destination et son responsable. Fixez également la taille maximale des messages, le nombre maximal d’enregistrements par lot et les règles de reprise sans doublon.

Le tableau ci-dessous sert de trame : remplacez les indications à compléter par les valeurs retenues avant validation.

Intégration Catégorie de données Mode et fréquence Volume nominal / de pointe Niveau de sensibilité Destination Responsable
CRM → ERP Clients et commandes Planifié : horaire et fuseau à fixer Enregistrements par exécution Confidentiel, personnel Service et pays à identifier Propriétaire métier et référent technique
ERP → service bancaire Instructions de paiement Par lots : jours et heure à fixer Fichiers par lot Confidentiel, financier Destinataire et pays à identifier Direction financière et référent technique
Portail d’assistance → CRM Identité et demandes Temps réel : déclencheur à préciser Requêtes par minute Confidentiel, personnel CRM et sous-traitants à identifier Service client et référent technique

Recensez tous les lieux de traitement et d’accès, avec les pays ou régions concernés : stockage, transit, cache, sauvegardes, supervision, développement, test et accès distants. Pour chaque transfert hors EEE, indiquez le destinataire, la chaîne de sous-traitance, le mécanisme applicable et les mesures complémentaires.[1][3]

Un hébergement en France ne suffit pas à établir la conformité RGPD. C’est notamment le cas lorsqu’une équipe d’assistance située hors EEE accède aux données.[4][5]

Avant validation, testez les flux normaux, de pointe, surdimensionnés, retardés, interrompus et dupliqués. Réexaminez la cartographie à chaque changement d’endpoint, de champs, d’architecture ou de sous-traitant.

2. Fixer les exigences d’accès, d’hébergement et de reprise

Choisir les méthodes d’accès et limiter les droits

Le cahier des charges doit préciser la méthode d’accès, les droits accordés et les preuves à fournir en recette. Choisissez entre clé API, OAuth 2.0 et mTLS selon l’intégration et la sensibilité des échanges. Chaque exigence doit être mesurable, testable et validée en recette.[9]

Méthode Usage adapté Identifiants et rotation à prévoir Complexité et risques
Clé API Échanges machine-machine simples Une clé par intégration ; stockage sécurisé, droits limités, rotation périodique et révocation immédiate Faible ; une clé compromise reste réutilisable tant qu’elle est valide
OAuth 2.0 Accès délégué ou droits fins Jetons à durée limitée ; gestion des secrets clients, du renouvellement et de la révocation Moyenne à élevée ; vol de jetons et droits excessifs
mTLS Échanges serveur-serveur sensibles Certificats clients et serveurs ; renouvellement avant expiration et révocation Élevée ; gestion des certificats et risque d’interruption à leur expiration

Séparez les comptes techniques des comptes utilisateurs nominatifs. Exigez une authentification multifacteur selon le risque, et interdisez les comptes partagés comme les secrets codés en dur.

Utilisez des identifiants distincts pour le développement, la recette et la production. Conservez-les dans un gestionnaire de secrets, désignez un propriétaire et testez leur remplacement d’urgence.

N’accordez que les droits nécessaires sur les enregistrements, les champs et les actions. Isolez les clients ou les entités, puis vérifiez en recette qu’un compte ne peut ni lire ni modifier les données d’un autre périmètre.[9]

Protéger les requêtes et suivre les versions

La protection des échanges doit se traduire par des contrôles précis :

  • Exigez HTTPS, TLS 1.3 et une validation stricte des certificats. Prévoyez aussi le chiffrement des données sensibles stockées et la gestion des clés.
  • Définissez les schémas, les formats et les types de contenu acceptés. Vérifiez les signatures des webhooks et bloquez leur rejeu à l’aide d’un horodatage et d’un identifiant unique.
  • Fixez les quotas par client, les limites de concurrence, les tailles maximales et la pagination.
  • Précisez comment rejeter les requêtes malformées, les accès refusés et les volumes excessifs, sans révéler d’informations sensibles.
  • Tenez un inventaire des hôtes, endpoints, méthodes et versions. Pour chacun, indiquez un propriétaire, un préavis et une date ferme de retrait.[11]

Précisez ensuite comment l’API redémarre, rapproche les données entre systèmes et traite les erreurs.

Définir l’hébergement, la maintenance et les objectifs de reprise

Ces exigences encadrent la disponibilité, la réversibilité et la maîtrise des accès.

Précisez le modèle d’hébergement, les régions autorisées, les sous-traitants et les restrictions réseau. Décrivez les modes d’administration, via VPN ou bastion, et exigez la séparation des environnements.

Inscrivez au contrat les engagements sur les correctifs, la notification d’incident, les droits d’audit et la gestion des certificats. Fixez les délais de correction, les versions prises en charge, la disponibilité attendue, ses exclusions et les fenêtres de maintenance.

Pour les sauvegardes, définissez leur fréquence, leur durée de conservation, leur chiffrement, leur protection contre l’effacement et leur séparation de la production. Exigez des restaurations testées et documentées, avec les clés de déchiffrement nécessaires.[6][7][10][12][13]

Distinguez le RTO, délai cible de rétablissement, du RPO, perte de données maximale acceptable. Fixez ces objectifs par processus métier, puis testez-les dans un environnement isolé.

  • Définissez les délais d’attente, les reprises bornées avec temporisation progressive et aléatoire, les clés d’idempotence, la file d’erreurs et la procédure de rapprochement entre systèmes.
  • Pour chaque livraison, exigez des preuves de tests de sécurité, un approbateur et un retour arrière couvrant les données et les files d’attente.
  • Inscrivez aussi au contrat les exports exploitables, la restitution ou la révocation des identifiants et certificats, le sort des sauvegardes et les preuves de suppression.[7][8][10]

Prévoyez la traçabilité de ces choix : les droits, les rejets, les sauvegardes et les incidents doivent alimenter les journaux et les alertes.

3. Définir les journaux, leur conservation et les alertes

Choisir les événements à journaliser et les durées de conservation

Les droits, rejets et incidents définis plus haut doivent figurer dans les journaux pour apporter la preuve des échanges. Choisissez les événements à journaliser selon le risque : authentifications, refus d’accès, accès aux données sensibles et opérations sur celles-ci, exports, actions d’administration, changements de configuration ou de version, échecs d’intégration, reprises, délais d’attente, interruptions et incidents de sécurité. Chaque entrée doit préciser l’acteur ou le service, l’horodatage avec fuseau, l’opération ou l’endpoint, le système source, la référence de la ressource sans son contenu complet, l’identifiant de corrélation, le résultat, le statut HTTP, le type d’erreur et le volume d’échanges.[14]

Pour relier les traces métier et sécurité, imposez un format structuré, comme JSON, et un identifiant de corrélation commun à tous les systèmes traversés. Synchronisez les horloges sur une même source NTP. Enregistrez les heures en UTC et affichez l’heure locale française dans les rapports opérationnels.[14][15]

Excluez les mots de passe, leurs condensats, les jetons d’accès et de rafraîchissement, les clés privées et les données personnelles inutiles. Centralisez les journaux hors production sur une plateforme dédiée, avec chiffrement, contrôle d’intégrité et traçabilité des consultations, exports et suppressions.[14][15]

Pour chaque catégorie, fixez une durée de conservation, sa justification, le responsable d’accès et les règles de suppression automatique. La CNIL recommande généralement 6 à 12 mois de conservation glissante ; toute autre durée doit être justifiée. Prévoyez aussi un gel juridique pour suspendre la suppression en cas d’enquête ou de contentieux identifié. Documentez les traces concernées, le motif, l’approbateur et la date de réexamen.[14]

Fixer les seuils d’alerte et les délais de réponse

La matrice ci-dessous s’appuie sur ces journaux. Validez-la selon les risques et les horaires métier. Les délais commencent au déclenchement de l’alerte : un accusé ne vaut pas résolution.

Événement Informations enregistrées Conservation proposée Seuil d’alerte Destinataire Délai de réponse
Échecs d’authentification répétés Identité, IP source, endpoint, horodatage, identifiant de requête, résultat 6 mois 10 échecs pour un compte en 15 min Référent sécurité et responsable API Accusé sous 15 min
Volume inhabituel Acteur, endpoint, nombre d’enregistrements, comparaison à la normale, identifiants de requête 6 mois Plus de 3 fois le volume horaire habituel Responsable des données et sécurité Accusé sous 30 min
Échecs de livraison Destination, référence du message, statut, nombre de tentatives, type d’erreur 6 mois 5 échecs consécutifs ou aucune livraison depuis 15 min pour un flux prévu toutes les 5 min Responsable de l’intégration Rétablissement ou escalade sous 1 h
Identifiant ou certificat proche de l’expiration Type, système, échéance, propriétaire 12 mois, si justifiés À 30 jours, 7 jours puis 24 h avant l’échéance Propriétaire du système et fournisseur Action confirmée sous 1 jour ouvré
API indisponible Endpoint, résultat du contrôle de santé, heure de début, systèmes touchés, identifiant d’incident 12 mois, si justifiés 3 contrôles échoués ou 5 min d’indisponibilité Astreinte et responsable métier Accusé sous 15 min

Classez comme critique toute panne de production ou tout accès suspect à des données sensibles. Prévoyez une couverture 24 h/24 et 7 j/7, une alerte d’astreinte, un accusé sous 15 min et une escalade après 30 min sans prise en charge.

Pour les autres niveaux, précisez les plages couvertes, les canaux, les délais d’accusé et les objectifs de résolution. Rattachez l’escalade au responsable d’incident et à la procédure de la section 2 : analyse, préservation des preuves, confinement, remise en service ou blocage d’accès.

En recette, puis au moins une fois par an et après tout changement majeur d’intégration, déclenchez chaque règle à partir des journaux. Consignez dans le dossier de livraison les preuves que l’alerte atteint le bon destinataire, que l’horodatage est fiable et que l’escalade fonctionne.[14]

4. Conclusion : attribuer les responsabilités et valider le lancement

Attribuer les responsabilités et documenter les procédures

Les flux, les accès, les journaux et les alertes sont définis. Cette dernière étape n’ajoute pas de contrôles : elle précise qui valide quoi, avec quelle preuve et à quelle échéance.

Pour chaque point du cahier des charges, désignez un responsable, un exécutant, un approbateur et un suppléant. Répartissez ces rôles entre l’entreprise, le développeur, l’hébergeur et l’éditeur du logiciel connecté. Indiquez qui peut suspendre un accès, préserver les preuves ou bloquer le lancement. Précisez aussi qui déclenche l’escalade et qui autorise le gel des échanges. [17]

Exigez un dossier versionné qui rassemble l’architecture, la cartographie des flux, les permissions et la gestion des erreurs. Il doit aussi couvrir la rotation et la révocation des secrets, la restauration, le retour arrière et les contacts d’urgence.

Distinguez les délais contractuels des obligations RGPD. En cas de violation, le sous-traitant informe le responsable de traitement sans délai. Si une notification est requise, ce dernier avertit la CNIL dans les meilleurs délais et, si possible, sous 72 heures après en avoir pris connaissance. Toute violation doit être documentée, même si elle ne nécessite pas de notification. [16][18]

La validation finale traduit ces exigences en décisions signées et traçables.

Checklist de validation du lancement

Cette checklist conditionne la mise en production. Pour chaque ligne, renseignez le propriétaire nommé, la référence de preuve, le statut et la date de validation au format JJ/MM/AAAA. Une case cochée sans preuve ne suffit pas.

  • [ ] Documentation validée - Architecture, champs sensibles, destinataires, fréquence, volumes, lieux de transfert, hébergement, procédures et contacts validés.
  • [ ] Configuration sécurisée - Permissions minimales, administration séparée, secrets protégés, chiffrement, isolation entre clients, limites de débit et versions d’API vérifiés.
  • [ ] Tests de sécurité validés - Accès interdit refusé ; isolation, divulgation excessive, rejeu, contournement des limites et requêtes malformées testés ; identifiants expirés, révoqués ou hors périmètre rejetés ; masquage des journaux, restauration et retour arrière validés.
  • [ ] Supervision opérationnelle - Journaux exploitables, valeurs sensibles masquées, conservation conforme, destinataires des alertes et délais de prise en charge vérifiés.
  • [ ] Rôles et escalade nommés - Responsable d’exploitation, décideur d’incident et approbateur du lancement nommés ; contacts fournisseurs confirmés ; risques résiduels acceptés et documentés, avec dates de revue planifiées.

Bloquez la mise en production si une vulnérabilité critique reste ouverte ou si la supervision, la restauration ou le retour arrière n’ont pas été validés. La direction ou l’autorité métier/sécurité désignée accepte les risques restants. Pour chacun, consignez par écrit l’impact, la mesure compensatoire et l’échéance.

Planifiez une revue à J+30, puis au moins une fois par an et après tout changement important des données, des endpoints, de l’hébergement ou des méthodes d’accès.

Atelier en direct sur la sécurité des API

FAQs

Comment adapter les exigences de sécurité à mon budget ?

Partez des risques : cartographiez vos flux et vos actifs en distinguant la sensibilité des données de la criticité pour l’activité. Ciblez ensuite vos investissements sur les zones les plus exposées.

Limitez la V1 aux fonctions critiques. Pour éviter les surcoûts, consignez les hypothèses techniques et les interfaces dans le cahier des charges. Prévoyez aussi le coût de maintenance des connexions, généralement estimé entre 15 % et 20 % de l’investissement initial par an.

Que faire si un outil connecté limite la sécurité des échanges ?

Compensez ces faiblesses par des mesures techniques et organisationnelles. Utilisez des comptes de service dédiés, avec des droits d’accès limités au strict nécessaire. Séparez aussi clairement les secrets de production de ceux utilisés pour les tests. Si une vulnérabilité persiste, renforcez le chiffrement des données en transit et au repos, puis surveillez les anomalies.

Consignez ces limites dans le cahier des charges. Prévoyez également une procédure de secours manuelle pour maintenir l’activité en cas d’incident.

Comment vérifier les preuves de sécurité de mon prestataire ?

Dès le début du projet, exigez des journaux d’audit (logs) sans données personnelles. Pour chaque action, ils doivent consigner l’identifiant technique, la date, l’heure, l’action effectuée, l’objet concerné et le résultat. Prévoyez aussi un journal dédié au suivi des suppressions et des anonymisations de données.

Demandez également des preuves de conformité, étayées par des audits de sécurité réguliers et des tests de pénétration.

Julien Thomas, cofondateur et CEO de Ziema

Écrit par

Julien Thomas

Co-fondateur & CEO de Ziema

Je dirige Ziema, où nous concevons les logiciels métier que les éditeurs du marché ne font pas : applications métier, plateformes opérationnelles et SaaS verticaux. Au forfait, avec un périmètre et un délai engagés. Nos références : 24 Heures Le Mans, E.Leclerc, Théra-Connect.

Suivre sur LinkedIn

Votre première application métier en production en 30 jours.

On développe l'application métier calquée sur votre activité, celle qui vous fait gagner le plus de temps. Le code vous appartient.

  • Le code livré sur votre infrastructure, à votre nom
  • En production en 30 jours, du cadrage à la mise en ligne
  • Prix ferme une fois le périmètre validé

Une question sur votre projet ?

Décrivez-le en deux lignes, on vous répond sous 24h.

À lire également