Ajouter une signature à votre demande d’API

Vous pouvez ajouter une signature à votre demande d’API après l’avoir calculée dans Calculer une signature.

Vous pouvez inclure la signature soit dans l’en-tête HTTP Authorization, soit dans la chaîne de requête, mais pas dans les deux à la fois.

Vous n’avez pas besoin de faire cette procédure si vous utilisez OSC CLI, AWS CLI, ou un SDK pour votre demande d’API.

Ajouter la signature à l’en-tête Authorization

Avant de commencer : Vous devez avoir complété la procédure Calculer une signature.

Pour construire l’en-tête Authorization, référez-vous au pseudo-code suivant :

Construction de l’en-tête Authorization
Authorization: algorithm Credential=access key ID/credential scope, SignedHeaders=SignedHeaders, Signature=signature
  • Ne mettez pas de virgule entre l’algorithme et Credential. En revanche, séparez les valeurs suivantes par des virgules.

  • La valeur de Credential correspond à l’ID de l’access key, suivi d’une barre oblique (/), suivie des informations d’identification calculées dans Créer une chaîne à signer. La secret key sert à créer la signing key nécessaire à la signature, mais elle ne fait pas partie des informations de signature inclues dans la demande.

L’en-tête HTTP Authorization est créé et contient la signature.

Exemple d’en-tête Authorization
Authorization: AWS4-HMAC-SHA256 Credential=ACCESSKEYID/20180915/eu-west-2/ec2/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature=8522c3bcf28f7c39dd7667ccf86a8d31718ca04d56d39d48649119d48021f567

Ajouter la signature à la chaîne de requête

Pour construire une chaîne de requête avec tous les paramètres de la demande et la signature calculée, référez-vous au pseudo-code suivant :

Construction de la chaîne de requête
querystring = Action=action
querystring += &X-Amz-Algorithm=algorithm
querystring += &X-Amz-Credential= urlencode(access_key_ID + '/' + credential_scope)
querystring += &X-Amz-Date=date
querystring += &X-Amz-Expires=timeout interval
querystring += &X-Amz-SignedHeaders=signed_headers
querystring += &X-Amz-Signature=signature

Toutes les valeurs de la chaîne de requête, à l’exception de la signature, sont comprises dans la chaîne de requête canonique qui fait partie de la demande canonique créée dans Créer une demande canonique.

Si vous effectuez une demande dans laquelle tous les paramètres sont inclus dans la chaîne de requête, l’URL qui en résulte représente une action qui est déjà authentifiée. Vous devez donc traiter cette URL avec autant d’attention que vous le feriez pour vos vrais identifiants. Nous vous recommandons de spécifier un délai d’expiration court pour la demande avec le paramètre X-Amz-Expires.

La chaîne de requête contient tous les paramètres de la demande et la signature.

Exemple de chaîne de requête avec les informations de signature
https://fcu.eu-west-2.outscale.com?Action=DescribeInstances&Version=2016-09-15&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ACCESSKEYID%2F20180915%2Feu-west-2%2Fec2%2Faws4_request&X-Amz-Date=20180915T163400Z&X-Amz-Expires=60&X-Amz-SignedHeaders=content-type%3Bhost&X-Amz-Signature=8522c3bcf28f7c39dd7667ccf86a8d31718ca04d56d39d48649119d48021f567

Pages connexes

AWS™ et Amazon Web Services™ sont des marques de commerce d'Amazon Technologies, Inc. ou de ses affiliées aux États-Unis et/ou dans les autres pays.