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.
Cálculo de la firma HMAC-SHA para Amazon SWF
Cada solicitud enviada a Amazon SWF se debe autenticar. Los SDK de AWS firman automáticamente las solicitudes y gestionan la autenticación basada en token. Sin embargo, si desea escribir sus propias solicitudes HTTP POST
, debe crear un valor x-amzn-authorization
para el contenido HTTP POST Header
como para de la autenticación de su solicitud.
Para obtener más información sobre cómo formatear los encabezados, consulte Contenido de los encabezados HTTP. Para la implementación en AWS SDK for Java del proceso de firma Signature Version 3 de AWS, consulte la clase AWSSigner.java
Creación de una firma de solicitud
Antes de crear una firma de solicitud HMAC-SHA, debe obtener sus credenciales de AWS (el ID de clave de acceso y la clave secreta).
importante
Puede utilizar SHA1 o SHA256 para firmar solicitudes. Sin embargo, asegúrese de utilizar el mismo método para todo el proceso de firma. El método que elija tiene que corresponder al valor del nombre de Algorithm
en el encabezado HTTP.
Para crear la firma de solicitud
-
Cree una forma canónica de los encabezados de solicitud HTTP. La forma canónica del encabezado de HTTP incluye lo siguiente:
-
host
-
Cualquier elemento del encabezado que empiece por
x-amz-
Para obtener más información sobre los encabezados incluidos, consulte Contenido de los encabezados HTTP.
-
Para cada par de nombre-valor del encabezado, convierta el nombre del encabezado (pero no el valor del encabezado) en minúsculas.
-
Cree un mapa que exprese la relación entre el nombre del encabezado y los valores del encabezado separados por comas.
x-amz-example: value1 x-amz-example: value2 => x-amz-example:value1,value2
Para obtener más información, consulte la sección 4.2 de RFC 2616
. -
Para cada par de nombre-valor del encabezado, convierta el par de nombre-valor en una cadena en el formato
headerName:headerValue
. Suprima los espacios en blanco del principio y del fin deheaderName
yheaderValue
, sin espacios a cada lado de los dos puntos.x-amz-example1:value1,value2 x-amz-example2:value3
-
Inserte una nueva línea (
U+000A
) después de cada cadena convertida, incluida la última cadena. -
Ordene la colección de cadenas convertidas alfabéticamente, por nombre de encabezado.
-
-
Cree un valor de cadena para firmar que incluya los siguientes elementos:
-
Línea
1
: el método HTTP (POST
), seguido de una nueva línea. -
Línea
2
: el URI de la solicitud (/
), seguido de una nueva línea. -
Línea
3
: una cadena vacía seguida de una nueva línea.nota
Normalmente, la cadena de consulta aparece aquí, pero Amazon SWF no utiliza ninguna cadena de consulta.
-
Líneas
4–n
: la cadena que representa los encabezados de la solicitud en formato canónico calculados en el Paso 1, seguida de una nueva línea. Esta nueva línea crea una línea en blanco entre los encabezados y el cuerpo de la solicitud HTTP. Para obtener más información, consulte RFC 2616. -
El cuerpo de la solicitud, no seguido de una nueva línea.
-
-
Calcule el resumen SHA256 o SHA1 del valor de la cadena para firmar. Utilice el mismo método SHA en todo el proceso.
-
Calcule y codifique en el formato Base64 la HMAC-SHA mediante un resumen SHA256 o SHA1 (en función del método que haya utilizado) del valor resultante del paso anterior y la clave de acceso secreta temporal provista por AWS Security Token Service con la ayuda de la acción de la API
GetSessionToken
.nota
Amazon SWF requiere un signo igual (
=
) al final del valor HMAC-SHA codificado en Base64. Si su rutina de codificación Base64 no incluye el signo de igual al final, inserte uno al final del valor.Para obtener más información sobre el uso de credenciales de seguridad temporales con Amazon SWF y otros servicios de AWS, consulte Servicios de AWS que funcionan con IAM en la Guía del usuario de IAM.
-
Coloque el valor resultante como el valor para el nombre
Signature
en el encabezadox-amzn-authorization
de la solicitud HTTP enviada a Amazon SWF. -
Amazon SWF comprueba la solicitud y realiza la operación especificada.