Clés API vs OAuth 2.0 pour les intégrations partenaires : qu'est-ce qui change
Clés API vs OAuth 2.0 : comparez l'effort d'onboarding, la rotation des tokens, l'accès au niveau utilisateur et l'auditabilité pour que les développeurs partenaires intègrent en toute sécurité.

Ce que vous choisissez vraiment quand vous choisissez une méthode d'auth
Quand on compare les clés API et OAuth 2.0, ça ressemble à un débat purement sur la sécurité. Pour les intégrations partenaires, c'est aussi une décision opérationnelle : à quelle vitesse les partenaires peuvent démarrer, comment vous contrôlez l'accès plus tard, et combien le support devient pénible quand quelque chose casse.
La plupart des intégrations ont les mêmes besoins de base : une façon fiable de s'authentifier, des limites claires (limites de débit et permissions) et une traçabilité pour pouvoir répondre à « qui a fait quoi » sans supposition. La méthode d'auth choisie décide si ces besoins sont simples par défaut ou s'ils exigent des règles supplémentaires, des tableaux de bord et des processus manuels.
Quelques termes simples aident à garder la conversation pratique :
- Clé API : un secret partagé qui identifie une application ou un système partenaire.
- Jeton : un identifiant à durée limitée utilisé pour appeler votre API.
- Scope : une permission nommée comme « lire factures » ou « créer tickets ».
La vraie décision porte sur ce que l'intégration représente.
Si c'est serveur-à-serveur, une clé API convient souvent. Pensez : un partenaire exécute une synchronisation nocturne depuis son serveur vers votre API. Il n'y a pas d'utilisateur final qui clique sur « Autoriser ». Vous vous souciez en général d'un accès au niveau partenaire, d'une rotation prévisible et d'un onboarding rapide.
Si c'est délégué par l'utilisateur, OAuth 2.0 convient habituellement. Pensez : un client connecte son compte dans une app partenaire, et chaque client ne doit accorder l'accès qu'à ses propres données. Vous vous souciez généralement des permissions par utilisateur, d'une révocation facile et de pistes d'audit plus propres.
Ce choix change votre charge de support. Avec des clés, vous passerez plus de temps à gérer le partage des clés, la coordination des rotations et le suivi de quelle clé appartient à quel environnement partenaire. Avec OAuth, vous passerez plus de temps sur les flows de consentement et la configuration des redirections, mais moins de temps à deviner quel humain ou quel tenant a déclenché une action.
Si vous construisez le backend d'intégration dans un outil comme AppMaster, planifiez l'auth tôt. Cela affecte votre modèle de données (partenaires, utilisateurs, scopes) et les journaux d'audit que vous souhaiterez avoir dès le premier jour.
Comment fonctionnent les clés API dans les intégrations partenaires
Les clés API sont la façon la plus simple de permettre à un partenaire d'appeler votre API. Les clés gagnent souvent sur la rapidité : vous fournissez une chaîne secrète, le partenaire l'inclut dans les requêtes, et vous pouvez commencer à échanger des données.
Ce que représente une clé
La plupart du temps, une clé API représente une application partenaire (ou une intégration), pas un utilisateur final spécifique. Si un partenaire a une seule clé pour toute son équipe et tous ses clients, chaque requête ressemble à : « Partenaire X ». Cela facilite la mise en place, mais l'accès est grossier.
En pratique, les clés sont émises depuis une console admin ou via une étape de provisionnement. Les partenaires les stockent ensuite dans un fichier de config, une variable d'environnement ou un gestionnaire de secrets. Le risque est la fréquence à laquelle une clé « temporaire » finit copiée dans un tableau partagé, collée dans un chat ou embarquée dans du code côté client.
Les contraintes apparaissent vite. Les permissions tendent à être larges, les clés sont des identifiants partagés (donc on ne peut pas attribuer de façon fiable une action à une personne), la rotation exige de la coordination, et une clé compromise permet à un attaquant d'agir comme le partenaire jusqu'à révocation.
Exemple : un partenaire logistique fait des imports nocturnes depuis son serveur. Avec une clé API unique, il récupère les commandes et pousse les mises à jour de statut. Quand quelque chose va mal, vos logs montrent la clé du partenaire, pas s'il s'agissait d'un test de développeur, d'un job planifié ou d'une machine compromise.
Où les clés API peuvent encore convenir
Les clés API fonctionnent bien pour des intégrations serveur-à-serveur avec un petit ensemble d'actions stables, surtout si vous pouvez limiter la clé à des IPs, des endpoints ou des environnements spécifiques (test vs prod). Si vous construisez la couche API dans un outil comme AppMaster, les clés sont souvent une bonne première étape pour des essais rapides avec des partenaires. Décidez simplement comment vous allez les faire tourner et les révoquer avant de passer en production.
Comment fonctionne OAuth 2.0 (sans le manuel scolaire)
OAuth 2.0 existe pour une raison principale : l'accès délégué. Il permet à une app partenaire d'appeler une API au nom d'un utilisateur précis, sans que l'utilisateur donne son mot de passe et sans que le partenaire obtienne un accès permanent et illimité.
Pensez-y comme une poignée de main de permissions entre trois parties :
- Utilisateur (propriétaire de la ressource) : la personne dont les données sont consultées.
- App partenaire (client) : l'intégration que le partenaire construit.
- Votre système d'auth (serveur d'autorisation) : le système qui vérifie l'utilisateur, demande le consentement et émet les tokens.
Après approbation, l'app partenaire reçoit un token d'accès. C'est l'identifiant de courte durée que l'app envoie à votre API pour prouver qu'elle a la permission en cours. Les tokens d'accès expirent rapidement pour limiter les effets d'une fuite.
Pour éviter de forcer les utilisateurs à approuver constamment, de nombreuses configurations utilisent aussi un refresh token. Le refresh token dure plus longtemps et sert uniquement à obtenir un nouveau token d'accès quand l'ancien expire. Modèle mental simple : le token d'accès sert à appeler l'API, le refresh token sert à obtenir plus de tokens d'accès.
Les scopes rendent OAuth pratique. Un scope est une délimitation de permission nommée comme « read:invoices » ou « write:customers ». Lors du consentement, l'utilisateur voit ce que l'app partenaire demande, et votre système enregistre ce qui a été approuvé. Votre API vérifie les scopes à chaque requête et refuse les appels qui dépassent ce qui a été accordé.
Exemple : un partenaire CRM veut synchroniser des contacts. Vous pouvez exiger que le partenaire demande uniquement « read:contacts » et « write:contacts ». S'il essaie ensuite de supprimer des données, l'API le bloque à moins que « delete:contacts » ait été explicitement approuvé. C'est l'une des plus grandes différences pratiques : OAuth facilite l'application du moindre privilège.
Onboarding : l'expérience du premier jour pour les développeurs externes
Avec les clés API, l'onboarding peut être presque instantané. Un partenaire demande une clé, vous la lui remettez (souvent via un portail partenaire ou par email), et il l'ajoute dans un header de requête. Le temps jusqu'à la première requête est souvent de l'ordre de quelques minutes, ce qui est agréable quand une équipe partenaire veut prouver l'intégration rapidement.
Cette rapidité a un coût : « qui appelle » reste vague dès le premier jour. Si la même clé est partagée dans l'équipe partenaire, vous pouvez obtenir une démo fonctionnelle vite, mais il est plus difficile de poser des limites tôt (test vs production, moindre privilège, et ownership clair en cas de problème).
L'onboarding OAuth paraît plus lourd car il y a plus d'éléments mobiles avant la première requête réussie. Les partenaires doivent généralement enregistrer une app, définir des redirect URIs et utiliser des utilisateurs de test ou des comptes sandbox. La première requête peut prendre des heures ou des jours, non pas parce qu'OAuth est mystérieux, mais parce que de petits détails de configuration créent de gros blocages.
Les points de blocage du premier jour sont souvent des mismatches de redirect URI, la confusion entre un code d'autorisation et un token d'accès, le mélange des environnements (test contre production), des scopes manquants, et l'absence d'un moyen simple de créer ou réinitialiser des utilisateurs de test.
La documentation compte plus pour OAuth. Pour les clés API, un court guide « copier la clé, ajouter le header, appeler l'endpoint » suffit souvent. Pour OAuth, les partenaires ont besoin d'une checklist et d'un exemple fonctionnel qu'ils peuvent exécuter.
Si vous construisez des outils partenaires avec AppMaster, une petite app de démarrage (UI web plus un proxy backend) peut aider les partenaires à compléter le flow OAuth de bout en bout sans beaucoup de code, tout en gardant le modèle de sécurité clair dès le départ.
Rotation et révocation des tokens dans la pratique
La rotation paraît simple jusqu'à ce que vous vous rappeliez que les partenaires ont des cron jobs, plusieurs environnements et quelqu'un qui a collé un secret dans un tableau il y a six mois. La question pratique n'est pas « peut-on faire la rotation ? », mais « peut-on la faire sans casser la production ? »
Avec des clés API, la rotation est surtout une question de coordination. Un schéma sûr est la double clé avec fenêtre de chevauchement : émettez une nouvelle clé, autorisez les deux pendant un court laps, puis désactivez l'ancienne après confirmation. L'autre face est la révocation d'urgence : si une clé fuit, vous voulez pouvoir la supprimer d'un clic sans attendre une release côté partenaire.
En pratique, une rotation de clef viable inclut généralement deux clés actives par partenaire (courante et suivante), des clés distinctes par environnement (dev, staging, prod), un étiquetage clair pour savoir quel système utilise quelle clé, et un chemin d'incident testé pour la révocation immédiate.
La rotation OAuth est plus automatique si vous utilisez des tokens d'accès de courte durée. Vous laissez les tokens d'accès expirer rapidement et comptez sur les refresh tokens pour les renouveler, ce qui réduit le risque d'indisponibilité quand vous devez couper l'accès. La révocation se concentre sur les refresh tokens : une fois révoqués, le partenaire ne peut plus générer de nouveaux tokens d'accès.
La difficulté porte sur la politique : combien de temps vivent les refresh tokens, peuvent-ils être réutilisés, et qu'est-ce qui déclenche une ré-authentification (reset de mot de passe, suppression admin, activité suspecte). Si vous avez besoin d'une réponse incident plus rapide, gardez les tokens d'accès courts et rendez la révocation des refresh tokens fiable et immédiate.
Un incident courant : les logs du serveur d'un partenaire capturent par erreur des identifiants. Avec des clés API, vous révoquez la clé et l'intégration s'arrête immédiatement, puis vous devez réémettre et coordonner les mises à jour. Avec OAuth, vous révoquez les refresh tokens pour ce partenaire ou cet utilisateur, et les tokens d'accès existants expirent rapidement, généralement avec moins d'interruption soudaine.
Accès au niveau utilisateur : par utilisateur, par partenaire, ou les deux ?
Si vous avez seulement besoin de savoir quelle entreprise appelle votre API, une identité au niveau partenaire peut suffire. Mais dès que le partenaire agit pour le compte de nombreux utilisateurs finaux (agents, managers, clients), il faut aussi un contexte utilisateur clair.
Avec des clés API, le schéma courant est un secret unique par partenaire. Le contexte utilisateur est alors ajouté de trois façons : pas d'utilisateur du tout (tout ressemble au partenaire), un ID utilisateur passé dans un header ou un champ, ou un flux d'impersonation où le partenaire signe un ID utilisateur que vous lui avez fourni. Ces approches peuvent marcher, mais vous devez considérer tout identifiant utilisateur envoyé par le partenaire comme non fiable sauf si vous pouvez le vérifier.
OAuth est conçu pour l'accès au niveau utilisateur. Chaque utilisateur accorde l'accès, et les scopes limitent ce que le partenaire peut faire. Cela facilite le moindre privilège : l'intégration peut lire les contacts mais pas exporter les factures, ou mettre à jour des tickets mais pas modifier des paramètres admin.
Modéliser les permissions quand les partenaires agissent pour de nombreux utilisateurs
Une façon simple de garder cela clair est de séparer les identités et les permissions : identité partenaire (qui intègre), identité utilisateur (pour qui l'action est faite), rôle (ce que l'utilisateur peut faire dans votre produit) et scope (ce que le partenaire peut faire pour cet utilisateur).
Exemple : un partenaire helpdesk synchronise des tickets pour 200 agents. Si vous n'utilisez qu'une clé API, chaque action peut apparaître comme « Partenaire A » dans vos logs. Avec OAuth, chaque agent peut avoir sa propre autorisation, donc « L'agent Maria a mis à jour le ticket 1832 via Partenaire A » devient possible.
Quand vous avez besoin des deux, utilisez une identité client au niveau partenaire plus une délégation utilisateur (tokens OAuth liés à un utilisateur). Dans des outils comme AppMaster, cela se traduit proprement par un module d'auth pour les utilisateurs, des enregistrements partenaires et des vérifications de permissions dans votre logique métier.
Auditabilité et dépannage : qui a fait quoi ?
Quand quelque chose tourne mal dans une intégration partenaire, la difficulté n'est rarement pas de corriger le bug. C'est de prouver ce qui s'est passé.
Avec des clés API, de nombreuses équipes rencontrent un problème d'identité partagée. Une clé unique représente souvent « le partenaire », pas une personne ou une instance d'app spécifique. Vous pouvez logger qu'une requête a été faite avec la Clé A, mais rarement prouver quel utilisateur l'a déclenchée, ou s'il s'agissait d'un employé, d'un script ou d'une clé compromise. Si le partenaire copie la clé dans plusieurs systèmes, vos logs se ressemblent tous.
OAuth vous donne une piste plus claire : quel utilisateur a autorisé quelle application cliente, quand il l'a fait et quel accès a été accordé (scopes). Si l'app d'un partenaire est compromise, vous pouvez souvent limiter l'impact à un client_id ou même à un sous-ensemble d'utilisateurs qui ont accordé l'accès.
Les questions d'audit que vous recevrez lors de revues de sécurité ou de conformité incluent : les données de quel utilisateur ont été consultées par quelle app partenaire et sous quel scope ; quand l'accès a été accordé et utilisé pour la dernière fois ; d'où sont venues les requêtes (IP, environnement) ; si quelque chose a dépassé le scope approuvé ; et si vous pouvez révoquer l'accès pour un utilisateur sans arrêter l'intégration entière.
Pour accélérer le dépannage, capturez quelques champs sur chaque requête (quelle que soit la méthode d'auth) : client_id (ou id de clé), sujet (id utilisateur, si disponible), scope, adresse IP et un ID de requête unique que vous retournez dans les réponses. Ajoutez des horodatages et les résultats (succès, refus, rate limited) pour reconstituer une timeline d'incident en minutes, pas en jours.
Erreurs courantes qui causent des problèmes de sécurité et de support
La plupart des incidents d'auth partenaire ne sont pas des piratages avancés. Ils viennent de petits choix qui rendent les secrets faciles à fuiter ou difficiles à remplacer.
Les problèmes de clés API commencent souvent par l'endroit où la clé finit. Un partenaire la place dans une app mobile ou navigateur, puis elle est copiée depuis des logs, des captures d'écran ou des chats. Un autre problème courant est de considérer une clé comme permanente. Sans plan de rotation, les équipes évitent de la changer, même après le départ d'un employé ou l'exposition d'un repo.
Les échecs OAuth sont différents. Le ticket de support le plus fréquent est le mismatch de redirect URI : ça marche en staging et casse en prod, et le développeur ne comprend pas pourquoi. Viennent ensuite des scopes trop larges « pour que ça marche », qui deviennent un problème en revue de sécurité. Des écrans de consentement confus causent aussi de la friction quand les utilisateurs voient des permissions qui ne correspondent pas à l'usage.
Les pièges apparaissent dans les deux approches. Les secrets et tokens longue durée augmentent le rayon d'impact. L'absence de limites de débit permet à un bug de se transformer en incident. L'absence de protections contre la rejouabilité (par exemple accepter la même requête signée deux fois) peut engendrer des doublons.
Les problèmes de support sont souvent auto-infligés. Si les erreurs sont vagues (« unauthorized »), les partenaires ne peuvent pas résoudre sans escalade. Si vous ne fournissez pas de sandbox et d'environnements cohérents, les partenaires testent par erreur en production.
Si vous voulez des garde-fous avant d'onboarder qui que ce soit, gardez-les simples :
- Gardez les secrets côté serveur uniquement, jamais dans des apps clientes ou canaux partagés.
- Faites de la rotation et de la révocation une partie de l'accord, avec des délais et des contacts responsables.
- Utilisez des scopes clairs avec des noms de permissions en langage simple.
- Ajoutez des limites de débit et des checks d'idempotence ou anti-rejeu pour les actions en écriture.
- Offrez un sandbox avec des données réalistes et des configurations prévisibles.
Si vous construisez le backend d'intégration dans un outil comme AppMaster, intégrez ces règles dans votre module d'auth et vos réponses d'erreur tôt, avant que les partenaires ne dépendent d'un comportement fragile.
Un guide de décision pratique pour les équipes partenaires
Commencez par l'issue que vous devez atteindre, pas par la techno. Le vrai choix est de savoir si vous autorisez une intégration unique (une identité service) ou de vrais utilisateurs finaux avec des permissions différentes.
Si les partenaires agissent au nom d'utilisateurs individuels, OAuth 2.0 est généralement le choix par défaut le plus sûr. Il vous permet d'attacher les appels à une personne, de limiter ce que cette personne peut faire et de couper l'accès sans casser toute l'intégration partenaire.
Si l'intégration est vraiment serveur-à-serveur et que l'accès est fixe, les clés API peuvent suffire. Ça convient à des cas comme « Le partenaire X envoie des mises à jour d'inventaire nocturnes » où il n'y a pas de contexte utilisateur humain et les mêmes actions reviennent toujours.
Une vérification rapide risques/ops aide :
- Si vous avez besoin de permissions spécifiques par utilisateur (par exemple « Alice ne voit que ses clients »), choisissez OAuth.
- Si c'est un workflow fixe avec un accès stable, les clés peuvent marcher, tant que vous pouvez les faire tourner en sécurité.
- Si les données sont sensibles (PII, paiements, santé, finance), penchez vers OAuth pour limiter le scope et auditer par utilisateur.
- Si la maturité des partenaires est faible (les clés vont être partagées), OAuth réduit le rayon d'impact.
- Si vous prévoyez un fort volume et de la croissance, privilégiez l'approche qui facilite la révocation et le dépannage.
Si vous devez supporter les deux, fixez des limites claires. Par exemple : clés API pour les jobs batch back-office, OAuth pour toute fonctionnalité touchant le compte d'un utilisateur. Documentez quels endpoints acceptent quelle méthode et ce qui se passe quand l'accès est révoqué.
Exemple concret : un partenaire CRM veut importer des leads. S'il exécute un job nocturne sous un compte entreprise unique, une clé API peut suffire. Si des commerciaux connectent leurs propres comptes et ne doivent voir que leurs pipelines, OAuth est adapté.
Vérifications rapides avant de laisser les partenaires aller en production
Avant d'ouvrir l'accès production, considérez l'auth comme un système opérationnel, pas une case à cocher. Les plus grands incendies de support viennent d'identifiants flous, de permissions vagues et de logs manquants.
Sécurité et accès
Choisissez une voie d'émission claire. Qu'il s'agisse de clés API ou d'OAuth, les checks go-live sont similaires : qui peut obtenir des identifiants, ce qu'ils peuvent faire et à quelle vitesse vous pouvez les couper.
Notez l'essentiel pour votre équipe partenaire : qui approuve l'accès et comment vous vérifiez l'identité du partenaire ; comment expirations et rotations fonctionnent et ce qui casse si la rotation est manquée ; un "kill switch" testé qui désactive un partenaire (ou un utilisateur) sans tout interrompre ; des permissions définies avec des valeurs par défaut en moindre privilège et un texte de consentement clair ; et un sandbox avec des identifiants de test, des données réalistes et des limites de débit prévisibles.
Une réalité : si la clé d'un partenaire fuit dans un repo public, pouvez-vous la révoquer en quelques minutes, confirmer l'étendue et en émettre une nouvelle sans modification manuelle de la base ?
Opérations et support
Assurez-vous de pouvoir répondre à « que s'est-il passé ? » avec des preuves. Chaque requête doit logger qui l'a faite (id partenaire, id utilisateur si présent), ce qu'ils ont tenté (endpoint, scope) et la décision du système (code de statut, raison d'erreur).
Confirmez aussi que vous avez des messages d'erreur clairs qui indiquent au partenaire quoi corriger (scope manquant, token expiré, signature invalide), des limites de débit qui vous protègent sans surprendre les partenaires, et un playbook d'incident pour mettre en pause l'accès et notifier les partenaires affectés.
Si vous construisez des APIs partenaires avec AppMaster, définissez ces champs et vérifications tôt pour que votre backend généré et vos logs restent cohérents à mesure que les besoins évoluent.
Un exemple réaliste : intégration CRM
Imaginez un CRM partenaire qui synchronise des contacts dans votre produit pour des dizaines de clients partagés. Chaque client a plusieurs équipes, et toutes ne doivent pas voir les mêmes contacts. Le vendeur CRM veut une intégration réutilisable, tandis que vous voulez moins de tickets de support et des enregistrements propres de qui a modifié quoi.
Avec des clés API, l'onboarding semble simple : vous donnez une clé au partenaire, il commence à pousser des contacts. Les problèmes apparaissent une semaine plus tard, quand un client demande « Sales peut synchroniser, mais Support ne le peut pas ? » Une clé est devenue un passe-partout.
Dans ce scénario, les points faibles des clés API sont prévisibles : l'accès est souvent tout-ou-rien par clé (donc vous créez des clés supplémentaires par client, équipe ou environnement), les fuites forcent la rotation partout, l'attribution est faible parce que la clé représente l'app partenaire et non une personne, et « couper pour un utilisateur » signifie souvent désactiver toute la clé.
Avec OAuth, le CRM partenaire passe chaque admin client par une étape de consentement. Vous pouvez demander uniquement les scopes nécessaires pour la synchronisation des contacts (lire contacts, écrire contacts, pas de facturation, pas de paramètres admin). Cette coupe d'accès réduit beaucoup de tickets du type « pourquoi ils voient ça ? ».
Au quotidien, c'est généralement plus propre avec OAuth : vous pouvez révoquer l'accès pour un client (ou même un utilisateur) sans casser les autres, les tokens d'accès courts réduisent le rayon d'impact, et les logs d'audit peuvent lier les actions à un compte client, un client OAuth et souvent à une identité utilisateur spécifique.
Si vous construisez cela sur une plateforme comme AppMaster, concevez votre modèle de données pour que chaque mise à jour de contact synchronisée enregistre l'app partenaire, le compte client et l'utilisateur agissant (quand OAuth est utilisé). Cela rend l'enquête sur des « contacts dupliqués pendant la nuit » beaucoup plus simple.
Prochaines étapes : livrer une intégration partenaire plus sûre
Rédigez votre intégration comme deux courtes histoires : le chemin heureux (obtenir des identifiants, appeler un endpoint, voir les données) et le chemin d'échec (token expiré, scope manquant, mauvais compte). Cette page unique économise des jours de support car les partenaires s'auto-diagnostiquent.
Commencez petit avec un partenaire pilote. Le trafic réel montre vite ce que vous avez manqué : quels endpoints exigent des scopes plus clairs, quelles erreurs ont besoin de meilleurs messages et quoi logger pour répondre vite aux questions.
Si vous construisez votre propre plateforme d'intégration, gardez la première version simple. Des outils comme AppMaster peuvent vous aider à créer des flows d'auth, des APIs et des backends auditables plus rapidement, sans coder chaque pièce à la main. AppMaster est disponible sur appmaster.io.
Voici une checklist pratique pour passer de « ça marche » à « c'est sûr et supportable » :
- Choisissez une méthode par défaut et documentez quand autoriser des exceptions.
- Mettez en place une politique de rotation (cadence, chevauchement et procédure de révocation d'urgence).
- Définissez les règles d'accès (au niveau partenaire, utilisateur ou les deux).
- Décidez de ce que vous allez logger (ID partenaire, ID utilisateur si présent, endpoint, action, horodatage).
- Préparez un sandbox partenaire avec des identifiants de test et des données échantillon prévisibles.
Enfin, faites que l'onboarding ressemble à une configuration guidée, pas à une chasse au trésor. Un sandbox propre, des erreurs claires et des logs utiles transforment la frustration de la première semaine en une intégration livrée.
FAQ
Utilisez une clé API lorsque l'intégration est véritablement serveur-à-serveur et que vous n'avez besoin d'identifier que le système partenaire, pas des utilisateurs finaux individuels. Utilisez OAuth 2.0 lorsque l'application partenaire doit agir au nom de différents utilisateurs ou locataires et que vous avez besoin de consentement par utilisateur, de scopes et d'une révocation granulaire.
Une clé API identifie généralement l'intégration partenaire comme une identité partagée, donc les permissions et les logs restent grossiers. OAuth 2.0 émet des tokens liés à l'accord d'un utilisateur spécifique et aux scopes approuvés, ce qui facilite les contrôles au niveau utilisateur et les pistes d'audit.
Avec une clé API, l'onboarding prend souvent quelques minutes car le partenaire ajoute simplement la clé aux requêtes. L'onboarding OAuth prend plus de temps parce que le partenaire doit enregistrer une app, configurer les redirect URIs et compléter un flux de consentement avant la première requête réussie.
L'erreur la plus fréquente est un mismatched redirect URI entre ce que le partenaire a configuré et ce que votre serveur d'auth attend. Autres problèmes courants : mélange des environnements test/production, confusion entre code d'autorisation et token d'accès, et demandes de scopes incorrectes.
Prévoyez deux clés actives par partenaire avec une fenêtre de chevauchement : émettez une nouvelle clé, autorisez les deux pendant un court laps de temps, puis désactivez l'ancienne une fois la bascule confirmée. Maintenez des clés séparées par environnement et assurez-vous de pouvoir révoquer immédiatement en cas d'exposition.
Gardez les tokens d'accès de courte durée et comptez sur les refresh tokens pour obtenir de nouveaux tokens d'accès. Pour la réponse aux incidents, rendez la révocation des refresh tokens fiable et immédiate afin que le partenaire ne puisse plus renouveler l'accès après la coupure.
Par défaut, considérez que tout ce qui est dans un navigateur ou une app mobile peut être extrait : les clés API doivent rester côté serveur. Si le partenaire a besoin d'un accès côté client et spécifique à un utilisateur, OAuth est plus sûr car il évite d'embarquer un secret partagé permanent dans le client.
Les scopes sont des permissions nommées comme « lire contacts » ou « écrire tickets » que votre API vérifie sur chaque requête. Gardez-les petits et alignés sur des actions réelles, et exigez que les partenaires demandent uniquement ce dont ils ont besoin pour appliquer le moindre privilège et réduire les litiges.
Journalisez un identifiant partenaire (key id ou client id), l'utilisateur ou le sujet quand disponible, le scope accordé, l'endpoint/action tenté, la décision (succès ou refus) avec une raison claire, l'adresse IP et un ID de requête unique que vous retournez en réponse. Cela permet de répondre rapidement à « qui a fait quoi » lors d'incidents ou tickets de support.
Définissez une méthode d'auth par défaut et quand autoriser des exceptions, vérifiez que vous pouvez émettre et révoquer rapidement des identifiants, et confirmez les limites de débit et l'idempotence des endpoints en écriture. Assurez-vous aussi d'avoir un sandbox, des messages d'erreur clairs et un playbook testé pour suspendre l'accès d'un partenaire ou d'un utilisateur sans tout arrêter.


