Laiye Chatbot vérifie la présence et la validité de l'en-tête HTTP X-Mindsay-Signature afin de valider l'authenticité de la requête. Pour cela, Laiye Chatbot et son partenaire partagent une clé secrète (définie lors de l'intégration).
Le partenaire de Laiye Chatbot doit générer une signature lorsqu'il appelle l'API. L'API Laiye génère la même signature de son côté et vérifie qu'elle correspond à celle fournie dans l'en-tête HTTP X-Mindsay-Signature.
Pour empêcher les attaques par rejeu, l'API Laiye vérifie aussi que X-Mindsay-Timestamp n'est pas trop ancien (tolérance de 5 minutes).
Voici comment générer la signature :
Concaténez la valeur de l'en-tête
X-Mindsay-Timestampavec le corps de la requêteCalculez l'empreinte hexadécimale de cette chaîne avec l'algorithme standard
HMAC-SHA256et la clé secrète partagée
Exemple
X-Mindsay-Timestamp:
1575215418
Body:
{"end_user_token": "df6a0edc-b31d-461x-ydcx-f7d5f02cd3d0"}
Secret:
a_secure_secret
Concatenated value:
1575215418{"end_user_token": "df6a0edc-b31d-461x-ydcx-f7d5f02cd3d0"}
Computed HMAC:
66f3778d4b2850a1a64fbb190a552ede968527cefc440c1d2f9d5c5fede77b93