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à.
Calcolare la firma HMAC-SHA per Amazon SWF
Ogni richiesta ad Amazon SWF deve essere autenticata. LaAWSGli SDK firmano automaticamente le richieste e gestiscono l'autenticazione basata su token. Tuttavia, se vuoi scrivere una tua richiesta HTTP POST
, devi creare un valore x-amzn-authorization
per i contenuti HTTP POST Header
come parte dell'autenticazione della richiesta.
Per maggiori informazioni sulla formattazione delle intestazioni, consulta Contenuti nell'intestazione HTTP. Per ilAWS SDK for Javaimplementazione diAWSFirma versione 3, vedi ilAWSSigner.java
Creazione di una firma di richiesta
Prima di creare una firma di richiesta HMAC-SHA, devi ricevere le credenziali AWS (l'ID chiave di accesso e la chiave segreta).
Importante
Per firmare le richieste puoi utilizzare il protocollo SHA1 o quello SHA256. Verifica comunque di utilizzare lo stesso metodo in tutto il processo di firma. Il metodo scelto deve corrispondere al valore del nome Algorithm
nell'intestazione HTTP.
Per creare la firma di richiesta
-
Crea un modello canonico delle intestazioni di richiesta HTTP. Il formato canonico dell'intestazione HTTP comprende quanto segue:
-
host
-
Qualunque elemento dell'intestazione che inizi con
x-amz-
Per ulteriori informazioni sulle intestazioni incluse, consulta Contenuti nell'intestazione HTTP.
-
Per ogni coppia nome-valore dell'intestazione, converti il nome dell'intestazione (ma non il valore) in caratteri minuscoli.
-
Crea una mappa del nome dell'intestazione con i valori separati da virgole.
x-amz-example: value1 x-amz-example: value2 => x-amz-example:value1,value2
Per maggiori informazioni, consulta la sezione 4.2 del protocollo RFC 2616
. -
Per ogni coppia nome-valore dell'intestazione, converti la coppia nome-valore in una stringa nel formato
headerName:headerValue
. Elimina gli spazi all'inizio e alla fine delheaderName
e delheaderValue
, senza spazi ai lati dei due punti.x-amz-example1:value1,value2 x-amz-example2:value3
-
Inserisci una nuova riga (
U+000A
) dopo ogni stringa convertita, compresa l'ultima. -
Disponi la raccolta delle stringhe convertite in ordine alfabetico in base al nome dell'intestazione.
-
-
Crea un valore stringa di firma che includa i seguenti elementi:
-
Line (Linea)
1
: Metodo HTTP (POST
), seguito da una nuova riga. -
Line (Linea)
2
: L'URI richiesta (/
), seguito da una nuova riga. -
Line (Linea)
3
: Una stringa vuota seguita da una nuova riga.Nota
In genere, la stringa della query compare qui, ma Amazon SWF non utilizza una stringa di query.
-
Linee
4–n
: La stringa che rappresenta le intestazioni di richiesta in forma canonica calcolate nella Fase 1, seguita da una nuova riga. Questa nuova riga crea una riga vuota tra le intestazioni e il corpo della richiesta HTTP. Per ulteriori informazioni, consulta il protocollo RFC 2616. -
Il corpo della richiesta, non seguito da una nuova riga.
-
-
Calcola il digest SHA256 o SHA1 del valore della stringa di firma. Utilizza lo stesso metodo SHA in tutto il processo.
-
Calcola e codifica in base 64 la firma HMAC-SHA utilizzando un digest SHA256 o SHA1 (a seconda del metodo che hai utilizzato) del valore risultante dalla fase precedente e la secret access key provvisoria dallaAWSSecurity Token Service che utilizza la
GetSessionToken
Operazione API.Nota
Amazon SWF prevede un segno uguale (
=
) alla fine del valore HMAC-SHA codificato in base 64. Se la tua routine di codifica in base 64 non comprende l'aggiunta di segni uguale, aggiungine uno alla fine del valore.Per maggiori informazioni sull'utilizzo di credenziali di sicurezza temporanee con Amazon SWF e altriAWSservizi, vediAWSServizi che funzionano con IAMnellaIAM User Guide.
-
Posiziona il valore risultante come il valore della
Signature
nome nellax-amzn-authorization
intestazione della richiesta HTTP ad Amazon SWF. -
Amazon SWF verifica la richiesta ed esegue l'operazione specificata.