Autenticazione
Ogni richiesta include una chiave API segreta nell’header Authorization, come bearer token. Le chiavi appartengono a un progetto della tua organizzazione, e ciascuna può fare solo ciò che i suoi ambiti consentono.
curl https://api.kennmarq.com/v1/usage \
-H "Authorization: Bearer $KENNMARQ_API_KEY"Formato delle chiavi
Una chiave è sk_live_ o sk_test_ seguito da 43 lettere e cifre (256 bit casuali). Il prefisso indica a te, e a noi, in quale ambiente funziona. La dashboard mostra i primi caratteri e gli ultimi quattro di ogni chiave, così puoi distinguere le chiavi senza il segreto.
Tenere segrete le chiavi
- Usa le chiavi solo dai tuoi server: mai in un browser, in un’app mobile o in un repository pubblico.
- Conserviamo un hash SHA-256 di ogni chiave e mostriamo la chiave una sola volta, quando viene creata. Non possiamo mostrarla di nuovo.
- Per ruotare una chiave, crea quella nuova, mettila in produzione, poi revoca quella vecchia nella dashboard. Una chiave revocata smette subito di funzionare.
- Limita le chiavi di produzione agli indirizzi dei tuoi server con una lista di IP consentiti.
- Ogni chiave creata, modificata o revocata compare nel registro di audit della tua organizzazione.
Chiavi negli URL
Un solo endpoint riceve la chiave nell’URL: POST /v1/tsa/{key}, perché la libreria C2PA che lo chiama non può inviare header. Un URL finisce nei log, quindi quell’endpoint accetta solo chiavi il cui unico ambito è tsa e rifiuta qualsiasi altra chiave con 403 key_not_allowed_in_url. Se succede, ruota la chiave che hai inviato.
Errori di autenticazione
| Stato | Codice | Significato |
|---|---|---|
| 401 | missing_api_key | Manca l’header Authorization: Bearer …. |
| 401 | invalid_api_key | La chiave non è una delle nostre, oppure è malformata. |
| 401 | api_key_revoked | La chiave è stata revocata, oppure il suo progetto è stato eliminato. |
| 403 | insufficient_scope | Alla chiave manca l’ambito richiesto da questo endpoint. |
| 403 | ip_not_allowed | La richiesta proviene da un indirizzo non incluso nella lista di IP consentiti della chiave. |
| 403 | key_not_allowed_in_url | Una chiave con ambiti oltre a tsa è stata inviata in un URL. |