À propos des signatures de demandes d’API
Le processus de signature permet d’ajouter des informations d’authentification aux demandes d’API envoyées à 3DS OUTSCALE afin de garantir leur intégrité et leur authenticité.
La création des signatures s’appuie sur le protocole Hash-based Message Authentication Code (HMAC), un mécanisme d’authentification de message qui utilise des fonctions de hachage cryptographique.
Lorsque vous créez manuellement des demandes à 3DS OUTSCALE, vous devez signer les demandes vous-même. En revanche, vous n’avez pas besoin de signer vos demandes lorsque vous utilisez des outils comme l’interface en ligne de commande OUTSCALE (OSC CLI), l’interface en ligne de commande Amazon Web Services (AWS CLI) ou un kit de développement logiciel (SDK). Ces outils signent automatiquement les requêtes avec l’access key spécifiée lors de leur configuration. Pour en savoir plus sur OSC CLI et AWS CLI, voir respectivement Installer et configurer OSC CLI et Installer et configurer AWS CLI.
Informations générales
La signature aide à sécuriser les demandes car elle permet de :
-
Vérifier l’identité du demandeur : la signature utilisée pour authentifier la demande est créée à partir d’une access key, ce qui permet de vérifier l’identité de la personne à l’origine de cette demande. Pour en savoir plus sur les access keys, voir À propos des access keys.
-
Protéger les données en transit : pour éviter qu’une demande ne soit falsifiée pendant son transit, certains de ses éléments sont utilisés pour calculer son hachage. Le résultat de ce hachage, qui est la signature, est inclus dans la demande. Après avoir reçu votre demande, 3DS OUTSCALE utilise les mêmes informations pour recalculer la signature et la compare à celle de votre demande. Si les signatures correspondent, 3DS OUTSCALE traite votre demande. Sinon, 3DS OUTSCALE refuse la demande.
-
Protéger contre les attaques par rejeu : en règle générale, une demande doit parvenir à 3DS OUTSCALE dans les cinq minutes après son horodatage. Sinon, 3DS OUTSCALE refuse la demande.
Pour signer une demande, vous devez d’abord utiliser une fonction de hachage cryptographique (HMAC) pour calculer un hachage de la demande. Vous utilisez ensuite la valeur de ce hachage, votre secret key et d’autres informations pour calculer un nouveau hachage dont le résultat est la signature. Enfin, vous ajoutez la signature à la demande soit dans l’en-tête HTTP Authorization
, soit comme valeur dans la chaîne de requête. Dans ce dernier cas, la signature fait partie de l’URL. Il s’agit donc d’une URL pré-signée. Pour en savoir plus sur le processus de création d’une signature, voir la section Création d'une signature ci-dessous.
3DS OUTSCALE prend en charge Signature Version 2 et Signature Version 4. Cependant, nous vous recommandons d’utiliser Signature Version 4 pour tous les services OUTSCALE.
Création d'une signature
Le processus de calcul d’une signature est composé des étapes suivantes :
-
Création d’une demande canonique :
Avant de pouvoir signer la demande, vous devez la réorganiser dans un format normalisé, aussi appelé format canonique. L’utilisation d’un format canonique est nécessaire car 3DS OUTSCALE utilise ce même format pour recalculer la signature. Pour en savoir plus, voir Créer une demande canonique. -
Création d’une chaîne à signer à partir de la demande canonique et d’autres informations :
Les informations contenues dans la demande canonique doivent être concaténées en une chaîne à signer. Pour en savoir plus, voir Créer une chaîne à signer. -
Création d’une signature à partir d’une signing key et de la chaîne à signer :
La signing key, que vous créez à partir de votre secret key, et la chaîne à signer sont hachées grâce à une fonction de hachage cryptographique. Le résultat de ce hachage est la signature. Pour en savoir plus, voir Calculer une signature. -
Ajout de la signature à la demande, dans un en-tête ou en tant que paramètre dans la chaîne de requête :
La signature doit être ajoutée à la demande afin d’en faire une demande signée. Pour en savoir plus, voir Ajouter une signature à votre demande d’API.
Une fois la demande reçue, 3DS OUTSCALE recalcule la signature en utilisant les mêmes informations et la même fonction de hachage que vous avez utilisées pour signer votre demande. Si la signature obtenue par 3DS OUTSCALE correspond à la vôtre, 3DS OUTSCALE traite votre demande. Sinon, la demande est rejetée.
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.