

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: utilizzo dell'intestazione di autorizzazione (AWS Signature (versione 4)
<a name="sigv4-auth-using-authorization-header"></a>

**Topics**
+ [Panoramica di](#sigv4-auth-header-overview)
+ [Calcolo delle firme per l'intestazione di autorizzazione: trasferimento del payload in un unico blocco (AWS Signature (versione 4)](sig-v4-header-based-auth.md)
+ [Calcoli della firma per l'intestazione dell'autorizzazione: trasferimento del payload in più blocchi (caricamento in blocchi) (AWS Signature (versione 4)](sigv4-streaming.md)
+ [Calcoli delle firme per le intestazioni finali (caricamenti in blocchi) (AWS Signature (versione 4)](sigv4-streaming-trailers.md)



## Panoramica di
<a name="sigv4-auth-header-overview"></a>

L'utilizzo dell'`Authorization`intestazione HTTP è il metodo più comune per fornire informazioni di autenticazione. Ad eccezione delle richieste [ POST ](RESTObjectPOST.md) e delle richieste firmate utilizzando parametri di query, tutte le operazioni di Amazon S3 utilizzano l'intestazione della `Authorization` richiesta per fornire informazioni di autenticazione. 

Di seguito è riportato un esempio del valore per l'intestazione `Authorization`. Le interruzioni di riga vengono aggiunte a questo esempio solo per migliorare la leggibilità.

 

```
Authorization: AWS4-HMAC-SHA256 
Credential=AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request, 
SignedHeaders=host;range;x-amz-date,
Signature=fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
```



 La tabella seguente descrive i vari componenti del valore dell'`Authorization`intestazione nell'esempio precedente:


| Componente | Description | 
| --- | --- | 
| AWS4-HMAC-SHA256 | L'algoritmo utilizzato per calcolare la firma. È necessario fornire questo valore quando si utilizza AWS Signature Version 4 per l'autenticazione.<br />La stringa specifica AWS Signature Version 4 (`AWS4`) e l'algoritmo di firma (`HMAC-SHA256`). | 
| Credential | L'ID della chiave di accesso e le informazioni sull'ambito, che includono la data, la regione e il servizio utilizzati per calcolare la firma. <br />Questa stringa ha il seguente formato:<br /> <pre><your-access-key-id>/<date>/<aws-region>/<aws-service>/aws4_request</pre><br />Dove:<br /> +  {{<date>}}il valore viene specificato utilizzando il `YYYYMMDD` formato. <br />+  {{<aws-service>}}il valore è `s3` quando si invia una richiesta ad Amazon S3.  | 
| SignedHeaders |  Un elenco separato da punto e virgola delle intestazioni di richiesta che hai utilizzato per il calcolo `Signature`. L'elenco include solo i nomi delle intestazioni e i nomi delle intestazioni devono essere in minuscolo. Ad esempio: <pre>host;range;x-amz-date</pre> | 
| Signature | La firma a 256 bit espressa come 64 caratteri esadecimali minuscoli. Ad esempio: <pre>fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024</pre>Tieni presente che i calcoli della firma variano a seconda dell'opzione scelta per trasferire il payload.  | 

I calcoli delle firme variano a seconda del metodo scelto per trasferire il payload della richiesta. S3 supporta le seguenti opzioni:

 
+ **Trasferisci il payload in un unico blocco**: in questo caso, sono disponibili le seguenti opzioni di calcolo della firma:

   
  + **Opzione payload firmato**: puoi facoltativamente calcolare l'intero checksum del payload e includerlo nel calcolo della firma. Ciò fornisce una maggiore sicurezza, ma è necessario leggere il payload due volte o memorizzarlo nel buffer. 

    Ad esempio, per caricare un file, è necessario prima leggere il file per calcolare un hash del payload per il calcolo della firma e nuovamente per la trasmissione quando si crea la richiesta. Per payload più piccoli, questo approccio potrebbe essere preferibile. Tuttavia, per file di grandi dimensioni, leggere il file due volte può essere inefficiente, quindi potresti voler caricare i dati in blocchi. 

    Ti consigliamo di includere il checksum del payload per una maggiore sicurezza.
  + **Opzione payload non firmato**: non includere il checksum del payload nel calcolo della firma. 

  Per istruzioni dettagliate sul calcolo della firma e sulla creazione del valore dell'intestazione di autorizzazione, vedere. [Calcolo delle firme per l'intestazione di autorizzazione: trasferimento del payload in un unico blocco (AWS Signature (versione 4)](sig-v4-header-based-auth.md)
+ **Trasferisci il payload in più blocchi (caricamento in blocchi)**: in questo caso trasferisci il payload in blocchi. Puoi trasferire un payload in blocchi indipendentemente dalle dimensioni del payload.

  Puoi suddividere il carico utile in blocchi. Questi possono essere blocchi di dimensioni fisse o variabili. Caricando i dati in blocchi, eviti di leggere l'intero payload per calcolare la firma. Invece, per il primo blocco, si calcola una firma iniziale che utilizza solo le intestazioni della richiesta. Il secondo blocco contiene la firma del primo blocco e ogni blocco successivo contiene la firma del blocco che lo precede. Al termine del caricamento, invii un blocco finale con 0 byte di dati che contiene la firma dell'ultimo blocco del payload. Per ulteriori informazioni, consulta [Calcoli della firma per l'intestazione dell'autorizzazione: trasferimento del payload in più blocchi (caricamento in blocchi) (AWS Signature (versione 4)](sigv4-streaming.md). 

Quando firmi le tue richieste, puoi utilizzare AWS Signature Version 4 o AWS Signature Version 4A. La differenza fondamentale tra le due versioni è determinata dalla modalità di calcolo della firma. Con AWS la versione 4A di Signature, la firma non include Region-specific informazioni e viene calcolata utilizzando l'`AWS4-ECDSA-P256-SHA256`algoritmo.

Oltre a queste opzioni, hai la possibilità di includere un rimorchio nella tua richiesta. Per includere un trailer nella tua richiesta, devi specificarlo nell'intestazione impostando `x-amz-content-sha256` il valore appropriato. Se utilizzi un'intestazione finale, devi includere `x-amz-trailer` nell'intestazione e specificare i nomi delle intestazioni finali come stringa in un elenco separato da virgole. Tutte le intestazioni finali vengono scritte dopo il blocco finale. Se stai caricando i dati in più blocchi, devi inviare un blocco finale con 0 byte di dati prima di inviare l'intestazione finale. 

Quando invii una richiesta, devi indicare ad Amazon S3 quale delle opzioni precedenti hai scelto nel calcolo della firma, aggiungendo l'intestazione con uno dei seguenti valori: `x-amz-content-sha256`

 


| Valore intestazione | Description | 
| --- | --- | 
| Valore effettivo del checksum del payload | Questo valore è il checksum effettivo dell'oggetto ed è possibile solo quando si caricano i dati in un unico blocco. | 
| UNSIGNED-PAYLOAD | Usalo quando carichi l'oggetto come un singolo blocco non firmato. | 
| STREAMING-UNSIGNED-PAYLOAD-TRAILER | Usalo quando invii un payload non firmato su più blocchi. In questo caso hai anche un'intestazione finale dopo il caricamento del blocco. | 
| STREAMING-AWS4-HMAC-SHA256-PAYLOAD | Usalo quando invii un payload su più blocchi e i blocchi vengono firmati utilizzando. `AWS4-HMAC-SHA256` Questo produce una firma Sigv4. | 
| STREAMING-AWS4-HMAC-SHA256-PAYLOAD-TRAILER | Usalo quando invii un payload su più blocchi e i blocchi vengono firmati utilizzando. `AWS4-HMAC-SHA256` Questo produce una firma Sigv4. Inoltre, il digest per i blocchi è incluso come intestazione finale. | 
| STREAMING-AWS4-ECDSA-P256-SHA256-PAYLOAD | Usalo quando invii un payload su più blocchi e i blocchi vengono firmati utilizzando. `AWS4-ECDSA-P256-SHA256` Questo produce una firma SigV4a. | 
| STREAMING-AWS4-ECDSA-P256-SHA256-PAYLOAD-TRAILER | Usalo quando invii un payload su più blocchi e i blocchi vengono firmati utilizzando. `AWS4-ECDSA-P256-SHA256` Questo produce una firma SigV4a. Inoltre, il digest per i blocchi è incluso come intestazione finale. | 



Dopo aver ricevuto la richiesta, Amazon S3 ricrea la stringa da firmare utilizzando le informazioni nell'intestazione e nell'intestazione. `Authorization` `date` Quindi verifica con il servizio di autenticazione che le firme corrispondano. La data della richiesta può essere specificata utilizzando l'HTTP `Date` o l'`x-amz-date`intestazione. Se sono presenti entrambe le intestazioni, ha la `x-amz-date` precedenza. 

Se le firme corrispondono, Amazon S3 elabora la tua richiesta; in caso contrario, la richiesta non andrà a buon fine. 



Per ulteriori informazioni, consulta i seguenti argomenti:

[Calcolo delle firme per l'intestazione di autorizzazione: trasferimento del payload in un unico blocco (AWS Signature (versione 4)](sig-v4-header-based-auth.md)

[Calcoli della firma per l'intestazione dell'autorizzazione: trasferimento del payload in più blocchi (caricamento in blocchi) (AWS Signature (versione 4)](sigv4-streaming.md)

[Calcoli delle firme per le intestazioni finali (caricamenti in blocchi) (AWS Signature (versione 4)](sigv4-streaming-trailers.md)