

**Aviso de fin de soporte**: el 20 de febrero de 2026, AWS finalizará el soporte para el servicio Amazon Chime. Después del 20 de febrero de 2026, ya no podrá acceder a la consola ni a los recursos de la aplicación de Amazon Chime. Para obtener más información, visite esta [entrada en el blog](https://aws.amazon.com/blogs/messaging-and-targeting/update-on-support-for-amazon-chime/). **Nota:** Esto no afecta a la disponibilidad del servicio [Amazon Chime SDK](https://aws.amazon.com/chime/chime-sdk/).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Autenticación de solicitudes de chatbots
<a name="auth-bots"></a>

Puede autenticar las solicitudes enviadas a su chatbot desde una sala de chat de Amazon Chime. Para ello, calcule una firma en función de la solicitud. A continuación, valide que la firma calculada coincida con la del encabezado de la solicitud. Amazon Chime usa el SHA256 hash HMAC para generar la firma.

Si el chatbot está configurado para Amazon Chime usando un punto de conexión HTTPS de salida, siga los pasos de autenticación que se muestran a continuación.

**Para validar una solicitud firmada desde Amazon Chime para un chatbot con un punto de conexión HTTPS de salida configurado**

1. Obtenga el encabezado **Chime-Signature (Firma de Chime)** desde la solicitud HTTP.

1. Obtenga el encabezado **Chime-Request-Timestamp (Marca temporal de solicitud de Chime)** y el **body (cuerpo)** de la solicitud. A continuación, utilice una barra vertical como delimitador entre los dos elementos para formar una cadena.

1. Utilice la clave **SecurityToken**de la CreateBot respuesta como clave inicial de **HMAC\$1SHA\$1256** y codifique la cadena que creó en el paso 2.

1. Cifre el byte con hash con codificador Base64 a una cadena de firma.

1. Compare esta firma calculada con la del encabezado **Chime-Signature (Firma de Chime)**.

El siguiente ejemplo de código muestra cómo generar una firma utilizando 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;
                }
         }
```

El punto de conexión HTTPS de salida debe responder a la solicitud de Amazon Chime con `200 OK` en el plazo de 2 segundos. De lo contrario, la solicitud devuelve un error. Si el punto de conexión HTTPS de salida no está disponible pasados 2 segundos, debido posiblemente a que se ha agotado el tiempo de espera de lectura o conexión, o si Amazon Chime recibe un código de respuesta 5xx, Amazon Chime reintenta la solicitud 2 veces. El primer reintento se envía 200 milisegundos después de que la solicitud inicial devuelva un error. El segundo reintento se envía 400 milisegundos después de que el reintento anterior devuelva un error. Si el punto de enlace HTTPS saliente sigue sin estar disponible después del segundo reintento, la solicitud devuelve un error.

**nota**  
La **Chime-Request-Timestamp (Marca temporal de solicitud de Chime)** cambia cada vez que se vuelve a enviar la solicitud.

Si el chatbot se configura para Amazon Chime utilizando un ARN de función de Lambda, siga los pasos de autenticación siguientes.

**Para validar una solicitud firmada de Amazon Chime para un chatbot con un ARN de función de Lambda configurado**

1. Obtenga el **Chime-Signature y el Chime-Request-Timestamp** **de** la solicitud Lambda, en formato JSON codificado en Base64. **ClientContext**

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

1. Obtenga el **body (cuerpo)** de la solicitud a partir de la carga de la solicitud.

1. **Usa la **SecurityToken**de la `CreateBot` respuesta como clave inicial de HMAC\$1SHA\$1256 y aplica un hash a la cadena que creaste.**

1. Cifre el byte con hash con codificador Base64 a una cadena de firma.

1. Compare esta firma calculada con la del encabezado **Chime-Signature (Firma de Chime)**. 

Si se produce una `com.amazonaws.SdkClientException` durante la invocación a Lambda, Amazon Chime vuelve a intentar la solicitud dos veces.