Authentification REST
L'authentification du tournoi est basée sur une signature temporaire à transmettre aux services.
Générer une signature
La signature est la valeur hexadécimale cryptée selon l'algorithme sha256 d'une chaîne composée de la clé d'API du tournoi et du Timestamp Unix à l'instant t.
Une signature a une durée de vie de 10 minutes, le système qui requête doit donc être synchronisé avec une différence de plus ou moins 5 minutes avec les serveurs de l'API ( date GMT actuelle de nos serveurs : 2023-10-04T04:20:14+00:00 ).
Exemple de création de signature en PHP
// Génération d'une signature le 09/03/2012 à 11:55:42 $api_token = "L37ACHheiwh"; $timestamp = time(); // 1331290542 $signature = hash('sha256', $api_token.$timestamp); echo $signature; // c3d393e4fd120b551eb63e27d9e9bff31deddc9d3308a7e84a4468b5d4eacf95
Obtenir une clé d'API
Chaque tournoi dispose d'une clé d'API propre. Celle-ci est disponible après la sauvegarde du tournoi dans la rubrique Informations/Compte du tournoi.
S'authentifier sur un service
Pour être authentifié il faut ensuite transmettre deux éléments de notre signature dans les entêtes http de la requête au service (HTTP Headers)
- La signature obtenue après cryptage avec pour nom de paramètre x-trnkt-signature
- La valeur du timestamp utilisée avec pour nom de paramètre x-trnkt-timestamp
Codes d'erreurs liés à l'authentification
Lorsqu'un service nécessitant une authentification ne peut identifier la signature celui-ci renverra les codes d'erreurs suivants :
- HTTP 401 : En cas de non transmission de la signature, ou d'une erreur dans le nom des paramètres x-trnkt-signature et x-trnkt-timestamp, le service renvoie une réponse HTTP 401 avec pour message dans le corps de la réponse
Unauthorized : You must provide a signature and a timestamp in http headers
- HTTP 403 : En cas de transmission d'une signature expirée ou invalide qui ne correspondrait pas au tournoi, le service renvoie une réponse HTTP 403 avec pour message dans le corps de la réponse
Forbidden : authentication failed