Article sourcé
Relier des outils sans fusionner les comptes ni les données
Méthode pour choisir entre lien, export, calendrier, webhook et API, avec consentement, données minimales, refus explicites et autonomie de chaque produit.
Commencer par le passage utile entre deux outils
Une interopérabilité utile décrit une action précise : ouvrir le bon dossier, transmettre une référence publique, recevoir un événement, importer un lot ou proposer une continuité de parcours. “Tout synchroniser” ne dit ni qui décide, ni quelles données sont nécessaires, ni quelle application fait foi.
Écrivez le scénario avec l’émetteur, le destinataire, l’utilisateur, l’objet, la finalité et la preuve de réussite. Puis vérifiez si un simple lien profond suffit. Chaque donnée transportée ajoute une responsabilité de validation, de sécurité, de correction et de suppression.
L’application cible reste responsable de ses règles, rôles et données métier. Un hub ou une identité commune peut orienter et fédérer un accès facultatif ; il ne doit pas lire directement la session d’un autre produit ni devenir le seul moyen d’utiliser celui-ci.
Choisir le niveau d’intégration le plus simple
Un lien contextuel transmet seulement une destination et, si nécessaire, un identifiant public. Un export/import transfère un lot sous contrôle humain. Un calendrier échange des événements et des dates. Un webhook signale un changement. Une API permet une lecture ou une action structurée. La fédération d’identité authentifie une personne sans déplacer automatiquement ses données métier.
Commencez au niveau qui ferme le besoin. Un lien peut être plus robuste qu’une API lorsque l’utilisateur doit confirmer dans l’outil cible. Un fichier versionné convient à un transfert périodique contrôlé. Une API devient pertinente pour un volume, une fréquence ou un délai que la procédure manuelle ne peut plus soutenir.
L’intégration reste optionnelle lorsque le produit doit fonctionner seul. Son indisponibilité masque l’action transverse ou propose une reprise ; elle ne bloque pas le parcours principal.
| Niveau | Ce qui circule | Contrôle clé |
|---|---|---|
| Lien | Destination et contexte public minimal | Canonical et paramètres autorisés |
| Export/import | Lot versionné | Schéma, bilan, idempotence |
| Calendrier | Événements et identifiants | Fuseau, récurrence, annulation, fraîcheur |
| Webhook | Notification signée | Authenticité, retry, déduplication |
| API | Objets ou commandes | Version, droits, quotas, erreurs |
| Fédération | Preuve d’identité bornée | Consentement, state, nonce, PKCE et session locale |
Écrire un contrat lisible avant le connecteur
Le contrat nomme la version, les opérations, champs, types, valeurs absentes, identifiants, erreurs, limites et règles de fraîcheur. Il distingue les données publiques, privées, personnelles et secrètes. Un exemple ne remplace pas le schéma ; un schéma ne remplace pas la signification métier.
Précisez qui est autorité pour chaque objet et comment une correction se propage. Une application ne doit pas recalculer silencieusement le résultat d’un moteur propriétaire si le contrat demande de le restituer. Une valeur inconnue reste inconnue ; elle ne devient ni zéro, ni disponible, ni autorisée.
La compatibilité est bornée à une version. Une évolution additive peut ajouter un champ ignoré ; une rupture demande une nouvelle version et une période de migration documentée.
Transmettre le minimum et garder les données personnelles hors URL
Les URL apparaissent dans l’historique, les journaux, les captures et parfois les en-têtes de référence. Elles ne doivent contenir ni stock personnel, liste de courses, adresse, contenu de document, identité sensible, quantité ou secret. Utilisez un identifiant public lorsqu’il désigne un contenu public ; pour un état privé, un jeton opaque court et consommable une fois est émis par un service autorisé.
Le destinataire ne reçoit que les champs nécessaires à l’action confirmée. La CNIL recommande la minimisation des données ; elle s’applique aussi aux événements techniques et aux analytics. Les métriques agrègent réussite, refus, expiration et erreur sans recopier le contenu métier.
Un secret de signature ne se place jamais dans un navigateur ou une application publique. Lorsqu’une preuve serveur est nécessaire, le backend autorisé l’émet et la vérifie ; sans ressource réelle, le parcours échoue fermé et n’invente pas un transfert réussi.
Rendre le consentement et la confirmation compréhensibles
Avant un transfert, l’utilisateur voit la source, la destination, l’action, les données concernées et la possibilité d’annuler. Le consentement n’est ni déduit de l’installation ni inclus dans une case générale. Une action à conséquence importante reçoit une confirmation dans l’application qui en demeure responsable.
Le rattachement d’un compte commun reste facultatif et révocable produit par produit. La révocation ferme le passage fédéré sans supprimer le compte natif ni ses données. Un premier accès peut proposer de créer ou rattacher explicitement un compte cible, puis fournir une connexion directe et une récupération autonome.
Une confirmation affichée ne prouve pas à elle seule que l’action a été exécutée. Le résultat vient du service cible et possède un état vérifiable.
Concevoir les refus, expirations et rejouements
Le système refuse une origine, un rôle, une version, une signature ou un paramètre inattendu. Un jeton expiré ou déjà consommé ne peut pas être rejoué. Deux demandes concurrentes ne produisent pas deux effets. Les messages indiquent comment reprendre sans exposer de détail de sécurité.
Le connecteur utilise identifiants stables, clés d’idempotence et checkpoints quand le contrat le permet. Les retries respectent un backoff et une limite. Les éléments invalides vont en quarantaine ; ils ne sont ni perdus ni publiés comme valides.
Le mode dégradé conserve l’autonomie : ouvrir l’application cible sans contexte, télécharger un fichier, reprendre manuellement ou réessayer plus tard. Il ne transforme pas un échec en succès fictif.
| Échec | Réponse sûre | Reprise |
|---|---|---|
| Version inconnue | Refus sans conversion implicite | Actualiser le contrat |
| Jeton expiré | Aucune donnée ni action | Émettre un nouveau parcours |
| Destination indisponible | Conserver la source intacte | Lien ou reprise ultérieure |
| Objet déjà traité | Réponse idempotente | Afficher l’état existant |
| Donnée invalide | Quarantaine | Correction puis rejeu borné |
Tester la frontière plutôt que seulement les deux écrans
La recette couvre le départ depuis la source, la confirmation, la réception, l’effet cible et le retour. Elle vérifie aussi annulation, expiration, refus, réseau coupé, double clic, seconde session et révocation. Les données de test sont fictives et aucune information réelle n’est laissée dans les journaux.
Contrôlez les versions et empreintes du contrat et de l’adaptateur. Pour un module navigateur public, vérifiez l’origine autorisée, l’absence de credentials implicites et le comportement sans réseau. Pour une API privée, vérifiez audience, identité workload, coffre, rotation et audit expurgé.
Une preuve locale ne qualifie pas automatiquement le domaine public. Le même artefact est déployé, puis un smoke court vérifie seulement le parcours et le rollback concernés.
Checklist d’une interopérabilité facultative
- Action et résultat utilisateur écrits avant la technique.
- Application source et cible utilisables seules.
- Autorité de chaque donnée nommée.
- Niveau d’intégration minimal retenu.
- Contrat, version, erreurs et fraîcheur documentés.
- Aucune donnée privée ni secret dans l’URL.
- Consentement et confirmation explicites.
- Refus, expiration, rejeu et concurrence testés.
- Métriques expurgées et rollback défini.
Limites et rôle de DOHM
Ce guide décrit une architecture générale, pas un protocole universel. Une intégration financière, médicale, réglementée ou à fort impact exige des contrôles propres au domaine et aux fournisseurs concernés.
DOHM présente des produits indépendants pouvant devenir interopérables avec consentement lorsque des contrats versionnés et des ressources réelles existent. L’appartenance au même portefeuille ne prouve ni partage de compte, ni connexion active, ni circulation de données.
Sources
- Guide d’hygiène informatique · ANSSI · vérifié le 17 septembre 2026
- Guide de la sécurité des données personnelles · CNIL · vérifié le 17 septembre 2026
- Minimiser les données collectées · CNIL · vérifié le 17 septembre 2026
- RFC 9110 — HTTP Semantics · RFC Editor / IETF · vérifié le 17 septembre 2026
- OpenAPI Specification 3.2.0 · OpenAPI Initiative · vérifié le 17 septembre 2026
- RFC 5545 — iCalendar · RFC Editor / IETF · vérifié le 17 septembre 2026