Authentification
Chaque requête porte une clé API secrète dans l’en-tête Authorization, sous forme de jeton bearer. Les clés appartiennent à un projet de votre organisation, et chacune est limitée à ce que permettent ses portées.
curl https://api.kennmarq.com/v1/usage \
-H "Authorization: Bearer $KENNMARQ_API_KEY"Format des clés
Une clé se compose de sk_live_ ou sk_test_ suivi de 43 lettres et chiffres (256 bits aléatoires). Le préfixe indique, à vous comme à nous, dans quel environnement elle fonctionne. Le tableau de bord affiche les premiers caractères et les quatre derniers de chaque clé : vous pouvez ainsi distinguer vos clés sans le secret.
Garder les clés secrètes
- N’utilisez les clés que depuis vos serveurs : jamais dans un navigateur, une application mobile ou un dépôt public.
- Nous conservons l’empreinte SHA-256 de chaque clé et n’affichons la clé qu’une seule fois, à sa création. Nous ne pouvons pas l’afficher à nouveau.
- Pour faire une rotation, créez la nouvelle clé, déployez-la, puis révoquez l’ancienne dans le tableau de bord. Une clé révoquée cesse aussitôt de fonctionner.
- Limitez les clés de production aux adresses de vos serveurs avec une liste d’IP autorisées.
- Chaque création, modification ou révocation de clé est consignée dans le journal d’audit de votre organisation.
Clés dans les URL
Un seul endpoint reçoit sa clé dans l’URL : POST /v1/tsa/{key}, car la bibliothèque C2PA qui l’appelle ne peut pas envoyer d’en-têtes. Une URL finit dans des journaux : cet endpoint n’accepte donc que les clés dont l’unique portée est tsa, et refuse toute autre clé avec 403 key_not_allowed_in_url. Si cela se produit, faites une rotation de la clé envoyée.
Erreurs d’authentification
| Statut | Code | Signification |
|---|---|---|
| 401 | missing_api_key | Aucun en-tête Authorization: Bearer …. |
| 401 | invalid_api_key | La clé n’est pas l’une des nôtres, ou elle est mal formée. |
| 401 | api_key_revoked | La clé a été révoquée, ou son projet supprimé. |
| 403 | insufficient_scope | La clé n’a pas la portée qu’exige cet endpoint. |
| 403 | ip_not_allowed | La requête provient d’une adresse absente de la liste d’IP autorisées de la clé. |
| 403 | key_not_allowed_in_url | Une clé dotée d’autres portées que tsa a été envoyée dans une URL. |