O Laiye Chatbot verifica a existência e a validade do X-Mindsay-Signature cabeçalho HTTP para validar a autenticidade da solicitação. Para isso, o Laiye Chatbot e seu parceiro compartilham uma chave secreta (configurada durante a integração).
O parceiro do Laiye Chatbot deve gerar uma assinatura ao solicitar a API. A API do Laiye tenta gerar a mesma assinatura do seu lado e verifica se ela corresponde à assinatura fornecida no X-Mindsay-Signature cabeçalho HTTP.
Para evitar ataques de repetição, a API do Laiye também valida se o X-Mindsay-Timestamp não está muito distante no passado (tolerância de 5 minutos).
Veja como gerar a assinatura:
Concatene o valor no cabeçalho
X-Mindsay-Timestampcom o corpo da solicitaçãoCalcule o hash hexadecimal desta string usando o algoritmo padrão
HMAC-SHA256e a chave secreta compartilhada
Exemplo
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