Avviso di fine del supporto: il 20 febbraio 2026, AWS terminerà il supporto per il servizio Amazon Chime. Dopo il 20 febbraio 2026, non potrai più accedere alla console Amazon Chime o alle risorse dell'applicazione Amazon Chime. Per ulteriori informazioni, consulta il post del blog.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Puoi autenticare le richieste inviate al tuo chatbot da una chat room di Amazon Chime. A tale scopo, calcola una firma in base alla richiesta. Quindi, verifica che la firma calcolata corrisponda a quella nell'intestazione della richiesta. Amazon Chime utilizza l' SHA256 hash HMAC per generare la firma.
Se il tuo chatbot è configurato per Amazon Chime utilizzando un endpoint HTTPS in uscita, utilizza i seguenti passaggi di autenticazione.
Per convalidare una richiesta firmata da Amazon Chime per un chatbot con un endpoint HTTPS in uscita configurato
Ottenere l’intestazione Chime-Signature dalla richiesta HTTP.
Ottenere l'intestazione Chime-Request-Timestamp e il body (corpo) della richiesta. Quindi, utilizzare una barra verticale come delimitatore tra i due elementi per creare una stringa.
Utilizza il SecurityTokenfrom the CreateBot response come chiave iniziale di HMAC_SHA_256 e esegui l'hash della stringa creata nel passaggio 2.
Codificare il byte con hash con un encoder Base64 in una stringa di firma.
Confrontare questa firma elaborata con quella nell’intestazione Chime-Signature.
Il codice di esempio seguente spiega come generare una firma utilizzando 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;
}
}
L'endpoint HTTPS in uscita deve rispondere alla richiesta Amazon Chime entro 2 secondi200 OK
. In caso contrario, la richiesta ha esito negativo. Se l'endpoint HTTPS in uscita non è disponibile dopo 2 secondi, probabilmente a causa di un timeout di connessione o lettura, o se Amazon Chime riceve un codice di risposta 5xx, Amazon Chime ritenta la richiesta due volte. Il primo tentativo viene inviato 200 millisecondi dopo che la richiesta iniziale ha esito negativo. Il primo tentativo viene inviato 400 millisecondi dopo che la richiesta precedente ha esito negativo. Se l'endpoint HTTPS in uscita non è ancora disponibile dopo il secondo tentativo, la richiesta ha esito negativo.
Nota
Il Chime-Request-Timestamp cambia ogni volta che la richiesta viene rieseguita.
Se il tuo chatbot è configurato per Amazon Chime utilizzando una funzione Lambda ARN, utilizza i seguenti passaggi di autenticazione.
Per convalidare una richiesta firmata da Amazon Chime per un chatbot con una funzione Lambda (ARN configurato)
Ottieni Chime-Signature e Chime-Request-Timestamp dalla richiesta Lambda, in formato JSON con codifica Base64. ClientContext
{ "Chime-Signature" : "1234567890", "Chime-Request-Timestamp" : "2019-04-04T21:30:43.181Z" }
Ottenere il body (corpo) della richiesta dal payload della richiesta.
Usa SecurityTokenfrom the
CreateBot
response come chiave iniziale di HMAC_SHA_256 e esegui l'hash della stringa che hai creato.Codificare il byte con hash con un encoder Base64 in una stringa di firma.
Confrontare questa firma elaborata con quella nell’intestazione Chime-Signature.
Se com.amazonaws.SdkClientException
si verifica un durante la chiamata Lambda, Amazon Chime ritenta la richiesta due volte.