Avis de fin de support : le 20 février 2026, le support du service Amazon Chime AWS prendra fin. Après le 20 février 2026, vous ne pourrez plus accéder à la console Amazon Chime ni aux ressources de l'application Amazon Chime. Pour plus d'informations, consultez le billet de blog
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Vous pouvez authentifier les demandes envoyées à votre chatbot depuis un salon de discussion Amazon Chime. Pour ce faire, calculez une signature en fonction de la demande. Vérifiez ensuite que la signature calculée correspond à celle de l'en-tête de la demande. Amazon Chime utilise le SHA256 hachage HMAC pour générer la signature.
Si votre chatbot est configuré pour Amazon Chime à l'aide d'un point de terminaison HTTPS sortant, suivez les étapes d'authentification suivantes.
Pour valider une demande signée d'Amazon Chime concernant un chatbot avec un point de terminaison HTTPS sortant configuré
Obtenez l'en-tête Chime-Signature à partir de la demande HTTP.
Obtenez l'en-tête Chime-Request-Timestamp et le corps de la demande. Utilisez ensuite une barre verticale comme séparateur entre les deux éléments afin de former une chaîne.
Utilisez le SecurityTokenfrom de la CreateBot réponse comme clé initiale de HMAC_SHA_256 et hachez la chaîne que vous avez créée à l'étape 2.
Encodez l'octet haché avec l'encodeur Base64 en une chaîne de signature.
Comparez cette signature calculée à celle de l'en-tête Chime Signature.
L'exemple de code suivant montre comment générer une signature à l'aide de Java.
private final String DELIMITER = "|";
private final String HMAC_SHA_256 = "HmacSHA256";
private String generateSignature(String securityToken, String requestTime, String requestBody)
{
try {
final Mac mac = Mac.getInstance(HMAC_SHA_256);
SecretKeySpec key = new SecretKeySpec(securityToken.getBytes(UTF_8), HMAC_SHA_256);
mac.init(key);
String data = requestTime + DELIMITER + requestBody;
byte[] rawHmac = mac.doFinal(data.getBytes(UTF_8));
return Base64.getEncoder().encodeToString(rawHmac);
}
catch (Exception e) {
throw e;
}
}
Le point de terminaison HTTPS sortant doit répondre à la demande Amazon Chime dans les 2 200 OK
secondes. Sinon, la demande échoue. Si le point de terminaison HTTPS sortant n'est pas disponible au bout de 2 secondes, probablement en raison d'un délai de connexion ou de lecture, ou si Amazon Chime reçoit un code de réponse 5xx, Amazon Chime réessaie la demande deux fois. La première nouvelle tentative est envoyée 200 millisecondes après l'échec de la demande initiale. La deuxième nouvelle tentative est envoyée 400 millisecondes après l'échec de la nouvelle tentative précédente. Si le point de terminaison HTTPS sortant est toujours indisponible après la deuxième nouvelle tentative, la demande échoue.
Note
L'en-tête Chime-Request-Timestamp change chaque fois que la demande est renouvelée.
Si votre chatbot est configuré pour Amazon Chime à l'aide d'un ARN de fonction Lambda, suivez les étapes d'authentification suivantes.
Pour valider une demande signée d'Amazon Chime pour un chatbot avec une fonction Lambda (ARN) configurée
Obtenez le Chime-Signature et le Chime-Request-Timestamp à partir de la requête Lambda, au format JSON codé Base64. ClientContext
{ "Chime-Signature" : "1234567890", "Chime-Request-Timestamp" : "2019-04-04T21:30:43.181Z" }
Obtenez le corps de la demande à partir de la charge utile de la demande.
Utilisez le SecurityTokenfrom de la
CreateBot
réponse comme clé initiale de HMAC_SHA_256 et hachez la chaîne que vous avez créée.Encodez l'octet haché avec l'encodeur Base64 en une chaîne de signature.
Comparez cette signature calculée à celle de l'en-tête Chime Signature.
Si un com.amazonaws.SdkClientException
se produit lors de l'appel Lambda, Amazon Chime réessaie la demande deux fois.