

**Aviso de fim do suporte**: em 20 de fevereiro de 2026, AWS encerrará o suporte para o serviço Amazon Chime. Após 20 de fevereiro de 2026, não será mais possível acessar o console do Amazon Chime ou os recursos de aplicação do Amazon Chime. Para obter mais informações, acesse esta [publicação no blog](https://aws.amazon.com/blogs/messaging-and-targeting/update-on-support-for-amazon-chime/). **Nota:** Isso não afeta a disponibilidade do serviço [Amazon Chime SDK](https://aws.amazon.com/chime/chime-sdk/).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Autenticar solicitações do chatbot
<a name="auth-bots"></a>

Você pode autenticar solicitações enviadas ao seu chatbot a partir de uma sala de chat do Amazon Chime. Para fazer isso, calcule uma assinatura com base na solicitação. Depois, valide que a assinatura computada corresponde à do cabeçalho da solicitação. O Amazon Chime usa o SHA256 hash HMAC para gerar a assinatura.

Se o seu chatbot estiver configurado para o Amazon Chime usando um endpoint HTTPS de saída, siga as etapas de autenticação abaixo.

**Para validar uma solicitação assinada do Amazon Chime para um chatbot com um endpoint HTTPS de saída configurado**

1. Obtenha o cabeçalho **Chime-Signature** na solicitação HTTP.

1. Obtenha o cabeçalho **Chime-Request-Timestamp** e o **body (corpo)** da solicitação. Depois, use uma barra vertical como o delimitador entre os dois elementos para formar uma string.

1. Use a **SecurityToken**partir da CreateBot resposta como a chave inicial de **HMAC\$1SHA\$1256** e faça o hash da string que você criou na etapa 2.

1. Codifique o byte com hash com o codificador Base64 para uma string de assinatura.

1. Compare a assinatura computada com aquela no cabeçalho **Chime-Signature**.

O exemplo de código a seguir demonstra como gerar uma assinatura usando 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;
                }
         }
```

O endpoint HTTPS de saída deve responder à solicitação do Amazon Chime com `200 OK` dentro de 2 segundos. Caso contrário, haverá falha na solicitação. Se o endpoint HTTPS de saída ficar indisponível após 2 segundos, possivelmente devido a uma conexão ou tempo limite de leitura, ou se o Amazon Chime receber um código de resposta 5xx, o tentará executar a solicitação duas vezes. A primeira nova tentativa será enviada 200 milissegundos após a falha na solicitação inicial. A segunda nova tentativa será enviada 400 milissegundos após a falha da nova tentativa. Se o endpoint HTTPS de saída ainda estiver indisponível após a segunda nova tentativa, haverá falha na solicitação.

**nota**  
O **Chime-Request-Timestamp** é alterado cada vez que a solicitação é executada novamente.

Se o seu chatbot estiver configurado para que o Amazon Chime use o ARN de uma função do Lambda, siga as etapas de autenticação abaixo.

**Como validar uma solicitação assinada do Amazon Chime para um chatbot com o ARN de uma função do Lambda configurada**

1. Obtenha o **Chime-Signature e o **Chime-Request-Timestamp**** da solicitação Lambda, no formato JSON codificado em Base64. **ClientContext**

   ```
   {
   "Chime-Signature" : "1234567890",
   "Chime-Request-Timestamp" : "2019-04-04T21:30:43.181Z"
   }
   ```

1. Obtenha o **body (corpo)** da solicitação a partir da carga da solicitação.

1. Use a **SecurityToken**partir da `CreateBot` resposta como a chave inicial de **HMAC\$1SHA\$1256** e faça o hash da string que você criou.

1. Codifique o byte com hash com o codificador Base64 para uma string de assinatura.

1. Compare a assinatura computada com aquela no cabeçalho **Chime-Signature**. 

Se ocorrer uma `com.amazonaws.SdkClientException` durante a invocação do Lambda, o Amazon Chime tentará executar a solicitação duas vezes.