

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 para Amazon SQS
<a name="sqs-api-request-authentication"></a>

La autenticación es un proceso para identificar y verificar a la parte que envía una solicitud. Durante la primera fase de la autenticación, AWS verifica la identidad del productor y si está [registrado para utilizar AWS](https://aws.amazon.com/) (para obtener más información, consulte [Configuración de Amazon SQS](sqs-setting-up.md)). A continuación AWS , sigue el siguiente procedimiento:

1. El productor (remitente) obtiene la credencial necesaria.

1. El productor envía una solicitud y la credencial al consumidor (receptor).

1. El consumidor utiliza la credencial para verificar si el productor envió la solicitud.

1. Se produce una de las circunstancias siguientes:
   + Si la autenticación se realiza correctamente, el consumidor procesa la solicitud.
   + Si se produce un error de autenticación, el consumidor rechaza la solicitud y devuelve un error.

## Proceso de autenticación básico con HMAC-SHA
<a name="sqs-api-basic-authentication-process"></a>

Cuando se obtiene acceso a Amazon SQS con la API de consultas, se deben proporcionar los siguientes elementos para autenticar la solicitud:
+ El ID de la clave de **AWS acceso ** que lo identifica Cuenta de AWS, que se AWS utiliza para buscar su clave de acceso secreta.
+ La firma de la ** HMAC-SHA solicitud**, calculada con tu clave de acceso secreta (un secreto compartido que solo tú conoces y, AWS para obtener más información, consulta la [http://www.faqs.org/rfcs/rfc2104.html](http://www.faqs.org/rfcs/rfc2104.html) RFC2104). El [AWS SDK](https://aws.amazon.com/code/) se encarga del proceso de firma; sin embargo, si se realiza una solicitud de consulta a través de HTTP o HTTPS, se deberá incluir una firma en cada solicitud de consulta.

  1. Genere una clave firma Signature Version 4. Para obtener más información, consulte [Generación de la clave de firma con Java](https://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html#signature-v4-examples-java).
**nota**  
Amazon SQS admite la versión 4 de Signature, que proporciona una SHA256-based seguridad y un rendimiento mejorados en comparación con las versiones anteriores. Cuando cree aplicaciones nuevas que usen Amazon SQS, utilice Signature Version 4.

  1. Base64-encode la firma de la solicitud. El siguiente ejemplo se de código Java lo hace:

     ```
     package amazon.webservices.common;
     
     // Define common routines for encoding data in AWS requests.
     public class Encoding {
     
         /* Perform base64 encoding of input bytes.
          * rawData is the array of bytes to be encoded.
          * return is the base64-encoded string representation of rawData.
          */
         public static String EncodeBase64(byte[] rawData) {
             return Base64.encodeBytes(rawData);
         }
     }
     ```
+ La **marca temporal (o vencimiento)** de la solicitud. La marca temporal que utilice en la solicitud debe ser un objeto `dateTime`, con [la fecha completa, incluidas las horas, los minutos y los segundos](http://www.w3.org/TR/xmlschema-2/#dateTime). Por ejemplo: `2007-01-31T23:59:59Z` Aunque no es necesario, le recomendamos que proporcione el objeto utilizando la zona horaria de la hora universal coordinada (hora del meridiano de Greenwich).
**nota**  
Asegúrese de que la hora del servidor esté ajustada correctamente. Si especificas una marca de tiempo (en lugar de una fecha de caducidad), la solicitud caduca automáticamente 15 minutos después de la hora especificada (AWS no procesa las solicitudes con marcas de tiempo más de 15 minutos antes de la hora actual en los servidores). AWS   
Si utiliza .NET, no debe enviar marcas temporales demasiado específicas (debido a las diferentes interpretaciones con respecto a cómo se debe descartar la precisión adicional del tiempo). En este caso, debe crear manualmente objetos `dateTime` con una precisión de no más de un milisegundo.

## Parte 1: la solicitud del usuario
<a name="sqs-authentication-user"></a>

El siguiente es el proceso que debe seguir para autenticar AWS las solicitudes mediante una firma de HMAC-SHA solicitud.

![Diagrama que describe la solicitud del usuario.](https://docs.aws.amazon.com/es_es/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-basic-authentication-process-hmac-user.png)


1. Cree una solicitud para. AWS

1. Calcule la firma de un código de autenticación (HMAC-SHA) de un mensaje con un hash con clave utilizando su clave de acceso secreta.

1. Incluye la firma y el identificador de tu clave de acceso en la solicitud y, a continuación, envía la solicitud a. AWS

## Parte 2: La respuesta de AWS
<a name="sqs-authentication-aws"></a>

AWS inicia el siguiente proceso en respuesta.

![Diagrama que describe la respuesta de AWS.](https://docs.aws.amazon.com/es_es/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-basic-authentication-process-hmac-aws.png)


1. AWS usa el ID de la clave de acceso para buscar su clave de acceso secreta.

1. AWS genera una firma a partir de los datos de la solicitud y la clave de acceso secreta mediante el mismo algoritmo que utilizaste para calcular la firma que enviaste en la solicitud.

1. Se produce una de las circunstancias siguientes:
   + Si la firma que se AWS genera coincide con la que enviaste en la solicitud, AWS considera que la solicitud es auténtica.
   + Si la comparación falla, la solicitud se descarta y AWS devuelve un error. 