

**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.](https://aws.amazon.com/blogs/messaging-and-targeting/update-on-support-for-amazon-chime/) **Nota:** ciò non influisce sulla disponibilità del servizio [Amazon Chime SDK](https://aws.amazon.com/chime/chime-sdk/).

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à.

# Autentica le richieste dei chatbot
<a name="auth-bots"></a>

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**

1. Ottenere l’intestazione **Chime-Signature** dalla richiesta HTTP.

1. 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.

1. Utilizza il **SecurityToken**from the CreateBot response come chiave iniziale di **HMAC\$1SHA\$1256 e esegui l'hash** della stringa creata nel passaggio 2.

1. Codificare il byte con hash con un encoder Base64 in una stringa di firma.

1. 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 secondi`200 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)**

1. 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"
   }
   ```

1. Ottenere il **body (corpo)** della richiesta dal payload della richiesta.

1. **Usa **SecurityToken**from the `CreateBot` response come chiave iniziale di HMAC\$1SHA\$1256 e esegui l'hash della stringa che hai creato.**

1. Codificare il byte con hash con un encoder Base64 in una stringa di firma.

1. 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.