Docs/Authentification

Authentification

L'API Apertur utilise des clés API pour l'authentification. Les clés sont associées à un projet.

Format des clés API

Les clés API suivent le format :

aptr_{env}_{random}
PartieValeurDescription
aptrPréfixe fixeIdentifie une clé Apertur
random32 caractères hexadécimauxSecret généré de manière cryptographique

Exemple :

aptr_live_z9y8x7w6v5u4t3s2r1q0p9o8n7m6l5k4

Envoi de la clé API

Incluez votre clé API dans l'en-tête Authorization de chaque requête en utilisant le schéma Bearer :

Authorization: Bearer aptr_live_xxxx

Les clés API doivent rester secrètes. Ne les exposez jamais dans du JavaScript côté client et ne les enregistrez pas dans un système de contrôle de version. Utilisez des variables d'environnement sur votre serveur.

curl https://api.apertur.ca/v1/upload-sessions \
  -H "Authorization: Bearer aptr_live_xxxx"

Signature des requêtes

Pour une protection supplémentaire contre la falsification et le rejeu, activez la signature HMAC des requêtes sur une clé API depuis ses paramètres dans le tableau de bord. Une fois activée, chaque requête doit aussi porter une signature valide — la signature est un facteur supplémentaire, la clé Bearer reste donc obligatoire à chaque requête.

Envoyez la signature et l'horodatage dans les en-têtes X-Aptr-Signature et X-Aptr-Timestamp, calculés avec HMAC-SHA256 sur l'horodatage, la méthode, le chemin et le hachage du corps :

X-Aptr-Signature: sha256=<hex>
X-Aptr-Timestamp: <unix seconds>

Signez le chemin complet de la requête tel qu'envoyé, y compris le préfixe /api/v1 et toute chaîne de requête — par exemple /api/v1/upload-sessions. La méthode est en majuscules, l'horodatage est en secondes Unix, et le hachage du corps est l'empreinte SHA-256 en hexadécimal minuscule des octets exacts du corps (l'empreinte d'une chaîne vide en l'absence de corps).

HMAC_SHA256(signingSecret, `${timestamp}.${method}.${path}.${sha256hex(body)}`)

Les requêtes de plus de 5 minutes sont rejetées.

Secret de signature

Activez, faites pivoter ou désactivez la signature d'une clé depuis ses paramètres dans le tableau de bord. L'activation ou la rotation renvoie le signing secret une seule fois — copiez-le immédiatement, car il ne peut plus être récupéré ensuite.

SIGNING_SECRET=your-signing-secret   # shown once when you enable signing
TS=$(date +%s)
BODY='{"destination_ids":["dst_xxxx"]}'
BODY_HASH=$(printf '%s' "$BODY" | openssl dgst -sha256 | sed 's/^.* //')
SIG=$(printf '%s' "$TS.POST./api/v1/upload-sessions.$BODY_HASH" | openssl dgst -sha256 -hmac "$SIGNING_SECRET" | sed 's/^.* //')

curl https://api.aptr.ca/api/v1/upload-sessions \
  -H "Authorization: Bearer aptr_live_xxxxxxxx" \
  -H "X-Aptr-Timestamp: $TS" \
  -H "X-Aptr-Signature: sha256=$SIG" \
  -H "Content-Type: application/json" \
  -d "$BODY"

Limites de débit

L'API applique des limites de débit par clé API. Les limites sont retournées dans les en-têtes de réponse :

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 97
X-RateLimit-Reset: 1711627200
Point de terminaisonLimiteFenêtre
POST /api/v1/sessions100 requêtespar minute
GET /api/v1/sessions300 requêtespar minute
Tous les autres points de terminaison200 requêtespar minute

Lorsqu'une limite de débit est dépassée, l'API retourne 429 Too Many Requests. Consultez la page Erreurs pour plus de détails.

Authentification | Documentation de l'API | Apertur