

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

# Autenticazione delle richieste per Amazon SQS
<a name="sqs-api-request-authentication"></a>

L'autenticazione è un processo per l'identificazione e la verifica di chi invia una richiesta. Durante la prima fase di autenticazione, AWS verifica l'identità del produttore e se il produttore è [registrato per utilizzare AWS](https://aws.amazon.com/) (per ulteriori informazioni, consulta [Configurazione di Amazon SQS](sqs-setting-up.md)). Successivamente, si AWS attiene alla seguente procedura:

1. Il produttore (mittente) ottiene le credenziali necessarie.

1. Il produttore invia al consumatore (ricevitore) una richiesta con la credenziale.

1. Il consumatore utilizza la credenziale per verificare se il produttore ha inviato la richiesta.

1. Si verifica una delle seguenti situazioni:
   + Se l'autenticazione va a buon fine, il consumatore elabora la richiesta.
   + Se l'autenticazione ha esito negativo, il consumatore rifiuta la richiesta e restituisce un errore.

## Processo di autenticazione di base con HMAC-SHA
<a name="sqs-api-basic-authentication-process"></a>

Quando accedi ad Amazon SQS utilizzando l'API della query, devi fornire le seguenti voci affinché la richiesta possa essere autenticata:
+ L'ID della chiave di **AWS accesso ** che ti identifica Account AWS, AWS utilizzato per cercare la tua chiave di accesso segreta.
+ La firma della ** HMAC-SHA richiesta**, calcolata utilizzando la tua chiave di accesso segreta (un segreto condiviso noto solo a te e, AWS per ulteriori informazioni, vedi [http://www.faqs.org/rfcs/rfc2104.html](http://www.faqs.org/rfcs/rfc2104.html) RFC2104). L'[AWS SDK](https://aws.amazon.com/code/) gestisce il processo di firma; tuttavia, se invii una richiesta di query su HTTP o HTTPS, devi includere una firma in ogni richiesta di query.

  1. Ottenere una chiave di firma Signature Version 4. Per ulteriori informazioni, consulta [Ottenere una chiave di firma con Java](https://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html#signature-v4-examples-java).
**Nota**  
Amazon SQS supporta la versione 4 di Signature, che offre SHA256-based sicurezza e prestazioni migliorate rispetto alle versioni precedenti. Se crei nuove applicazioni che utilizzano Amazon SQS, è consigliabile usare Signature Version 4.

  1. Base64-encode la firma della richiesta. Il seguente codice Java di esempio procede in questo modo:

     ```
     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);
         }
     }
     ```
+ Il **timestamp (o scadenza)** della richiesta. Il timestamp utilizzato nella richiesta deve essere un `dateTime` oggetto, con [la data completa, incluso ore, minuti e secondi](http://www.w3.org/TR/xmlschema-2/#dateTime). Ad esempio: `2007-01-31T23:59:59Z` Anche se non è obbligatorio, ti consigliamo di fornire l'oggetto nell'orario UTC (fuso orario di Greenwich).
**Nota**  
Assicurati che l'orario del tuo server sia impostato correttamente. Se si specifica un timestamp (anziché una scadenza), la richiesta scade automaticamente 15 minuti dopo l'ora specificata (AWS non elabora le richieste con timestamp più di 15 minuti prima dell'ora corrente sui server). AWS   
Se usi .NET, non devi inviare timestamp troppo specifici (poiché diverse interpretazioni della precisione del tempo aggiuntivo devono essere ignorate). In questo caso, è necessario costruire manualmente oggetti `dateTime` con una precisione non superiore a un millisecondo.

## Parte 1: la richiesta dall'utente
<a name="sqs-authentication-user"></a>

Di seguito è riportato il processo da seguire per autenticare AWS le richieste utilizzando una firma di HMAC-SHA richiesta.

![Diagramma che descrive la richiesta dell'utente.](https://docs.aws.amazon.com/it_it/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-basic-authentication-process-hmac-user.png)


1. Costruisci una richiesta per. AWS

1. Calcola una firma con codice di autenticazione del messaggio con chiave hash (HMAC-SHA) utilizzando la tua chiave di accesso segreta.

1. Includi la firma e l'ID della chiave di accesso nella richiesta, quindi invia la richiesta a. AWS

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

AWS inizia il seguente processo in risposta.

![Diagramma che descrive la risposta di AWS.](https://docs.aws.amazon.com/it_it/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-basic-authentication-process-hmac-aws.png)


1. AWS utilizza l'ID della chiave di accesso per cercare la tua chiave di accesso segreta.

1. AWS genera una firma dai dati della richiesta e dalla chiave di accesso segreta, utilizzando lo stesso algoritmo utilizzato per calcolare la firma inviata nella richiesta.

1. Si verifica una delle seguenti situazioni:
   + Se la firma AWS generata corrisponde a quella inviata nella richiesta, AWS considera la richiesta autentica.
   + Se il confronto ha esito negativo, la richiesta viene scartata e AWS restituisce un errore. 