Domaines autorisés
Restreignez vos clés API à une liste blanche de domaines pour empêcher leur utilisation depuis un site tiers.
Un domaine autorisé (Authorized Domain) est un nom d’hôte depuis lequel vos clés API sont
autorisées à être utilisées. Le check se fait à chaque requête en comparant les headers Origin
puis Referer à la liste des domaines liés à la clé.
Créer un domaine autorisé
- Connectez-vous à app.tmaps.tn.
- Dans la barre latérale, cliquez sur Authorized Domains.
- Cliquez sur Add Domain.
-
Saisissez le nom de domaine sans schéma ni chemin :
- ✅
monsite.tn - ✅
app.monsite.tn - ✅
localhost - ❌
https://monsite.tn - ❌
monsite.tn/dashboard - ❌
*.monsite.tn(wildcard non supporté)
- ✅
-
Cliquez sur Add.
Pas de wildcard
Le check des domaines est strict. Pour autoriser plusieurs sous-domaines, ajoutez
chaque sous-domaine séparément (app.monsite.tn, admin.monsite.tn, …).
Localhost en développement
Pour le développement local, ajoutez explicitement localhost (et
127.0.0.1 si vous l’utilisez) à votre liste : sinon vos appels seront rejetés en
403 tant que vous n’êtes pas en production.
Lier une clé à un ou plusieurs domaines
Une fois vos domaines ajoutés, vous devez les lier aux clés concernées. Vous pouvez le faire de deux façons :
Depuis la fiche d’une clé
- Ouvrez API Keys puis cliquez sur la clé concernée.
- Dans la section Authorized Domains, cliquez sur Link domain.
- Sélectionnez les domaines à autoriser pour cette clé puis validez.
Depuis la fiche d’un domaine
- Ouvrez Authorized Domains puis cliquez sur le domaine concerné.
- Dans la section API Keys, cliquez sur Link key.
- Sélectionnez les clés à associer puis validez.
Modèle N : N
Le lien entre clés et domaines est N : N :
- Une même clé peut être autorisée sur plusieurs domaines (ex.
monsite.tn,app.monsite.tn,localhost). - Un même domaine peut être autorisé pour plusieurs clés (ex. votre clé de prod et celle de
pré-production utilisent toutes deux
app.monsite.tn).
Quand utiliser plusieurs clés sur un même domaine ?
Cela permet d’avoir des clés à durée de vie courte (rotation, A/B testing) tout en partageant la même liste de domaines, ou d’isoler la consommation de plusieurs équipes / produits sur un même site.
Comportement à l’exécution
À chaque requête authentifiée par une clé qui a au moins un domaine lié, le backend :
- Lit le header
Originde la requête. S’il est présent et figure dans la liste des domaines autorisés → la requête passe. - Sinon, lit le header
Referer. S’il est présent et figure dans la liste → la requête passe. - Sinon, la requête est rejetée avec un statut 403 :
{"error":"domain not authorized"}.
Cas particulier — appels server-to-server (Node, PHP, mobile natif…) : ni Origin ni Referer
n’est envoyé. Dans ce cas, la liste de domaines est ignorée et la clé fonctionne sans
restriction. Voir Authentification pour le
détail.
Délier ou supprimer un domaine
- Délier d’une clé : ouvrez la clé, puis cliquez sur l’icône
×à côté du domaine dans la section Authorized Domains. La clé reste active mais ne fonctionnera plus depuis ce domaine. - Supprimer un domaine : ouvrez Authorized Domains, cliquez sur le domaine, puis sur Delete domain. Le domaine est délié de toutes les clés en une seule opération.
Bonnes pratiques
- Restreignez les clés exposées au navigateur dès la création — n’attendez pas une fuite.
- Distinguez prod et dev : pour la prod, listez uniquement vos domaines réels ; pour le dev,
utilisez une clé dédiée avec
localhostajouté. - Pour le mobile / backend, créez une clé séparée sans aucun domaine : la liste blanche
ne s’applique pas (pas d’
Origin/Referer) et c’est plus clair que de lister manuellement l’absence de check. - Auditez régulièrement les liens clé ↔ domaine : retirez les domaines obsolètes pour réduire la surface d’attaque.