Berechnen der HMAC-SHA-Signatur für Amazon SWF - Amazon Simple Workflow Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Berechnen der HMAC-SHA-Signatur für Amazon SWF

Jede Anforderung an Amazon SWF muss authentifiziert werden. DieAWSSDKs signieren Ihre Anfragen und verwalten Ihre auf Token basierende Authentifizierung automatisch. Wenn Sie jedoch eigene HTTP POST-Anforderungen schreiben möchten, müssen Sie einen x-amzn-authorization-Wert für den HTTP POST Header-Inhalt als Teil Ihrer Anforderungsauthentifizierung erstellen.

Weitere Informationen zum Formatieren von Headern finden Sie unter Inhalt des HTTP-Headers. Für denAWS SDK for JavaImplementierung vonAWSVersion 3 signieren, sieheAWSSigner.java-Klasse.

Erstellen einer Anforderungssignatur

Bevor Sie eine HMAC-SHA-Anforderungssignatur erstellen, müssen Sie Ihre AWS-Anmeldeinformationen (Zugriffsschlüssel-ID und geheimer Schlüssel) abrufen.

Wichtig

Sie können entweder SHA1 oder SHA256 verwenden, um Ihre Anforderungen zu signieren. Stellen Sie jedoch sicher, dass Sie im gesamten Signaturprozess die gleiche Methode verwenden. Die jeweilige Methode muss mit dem Wert des Algorithm-Namens im HTTP-Header übereinstimmen.

So erstellen Sie die Anforderungssignatur

  1. Erstellen Sie eine kanonische Form der HTTP-Anforderungsheader. Die kanonische Form des HTTP-Headers umfasst Folgendes:

    • host

    • Ein beliebiges Header-Element, das mit x-amz- beginnt

    Weitere Informationen zu diesen Headern finden Sie unter Inhalt des HTTP-Headers.

    1. Konvertieren Sie für jedes Header-Name/Wert-Paar den Header-Namen (nicht den Header-Wert) in Kleinbuchstaben.

    2. Erstellen Sie eine Zuordnung des Header-Namens zu durch Komma getrennten Header-Werten.

      x-amz-example: value1 x-amz-example: value2 => x-amz-example:value1,value2

      Weitere Informationen finden Sie unter Section 4.2 of RFC 2616.

    3. Konvertieren Sie für jedes Header-Name/Wert-Paar das Name/Wert-Paar in eine Zeichenfolge im Format headerName:headerValue. Schneiden Sie Leerzeichen am Anfang und am Ende von headerName und headerValue ab, sodass keine Leerzeichen vor und nach dem Doppelpunkt stehen.

      x-amz-example1:value1,value2 x-amz-example2:value3
    4. Fügen Sie nach jeder konvertierten Zeile, einschließlich der letzten, eine neue Zeile (U+000A) ein.

    5. Sortieren Sie die konvertierten Zeichenfolgen alphabetisch nach dem Headernamen.

  2. Erstellen Sie eine zu signierende Zeichenfolge, die die folgenden Elemente enthält:

    • Linie1: Die HTTP-Methode (POST), gefolgt von einem Zeilenumbruch.

    • Linie2: Der Anfrage-URI (/), gefolgt von einem Zeilenumbruch.

    • Linie3: Eine leere Zeichenfolge, gefolgt von einem Zeilenumbruch.

      Anmerkung

      Normalerweise erscheint hier die Abfragezeichenfolge, aber Amazon SWF verwendet keine solche Zeichenfolge.

    • LINES4–n: Die Zeichenfolge, die die kanonisierten Anforderungs-Header darstellt, die Sie in Schritt 1 berechnet haben, gefolgt von einem Zeilenumbruch. Mit diesem Zeilenumbruch wird eine leere Zeile zwischen den Headern und dem Text der HTTP-Anforderung eingefügt. Weitere Informationen finden Sie unter RFC 2616.

    • Der Anforderungstext, nicht gefolgt von einem Zeilenumbruch.

  3. Berechnen Sie den SHA256- oder SHA1-Digest der zu signierenden Zeichenfolge. Verwenden Sie die gleiche SHA-Methode für den gesamten Prozess.

  4. Berechnen und nehmen Sie eine Base64-Codierung von HMAC-SHA entweder mit einem SHA256 oder einem SHA1-Digest (abhängig von der verwendeten Methode) des Ergebniswerts aus dem vorherigen Schritt und dem temporären geheimen Zugriffsschlüssel desAWSSecurity Token Service mitGetSessionTokenAPI-Aktion.

    Anmerkung

    Amazon SWF erwartet ein Gleichheitszeichen (=) am Ende des HMAC-SHA-Werts mit Base64-Codierung. Wenn Ihre Base64-Codierung kein angefügtes Gleichheitszeichen umfasst, fügen Sie ein solches Zeichen am Ende des Werts an.

    Weitere Informationen zum Verwenden von temporären Sicherheitsanmeldeinformationen mit Amazon SWF und anderenAWSDienstleistungen, sieheAWSServices, die mit IAM funktionierenimIAM User Guideaus.

  5. Platzieren Sie den Ergebniswert als Wert fürSignatureName imx-amzn-authorizationHeader der HTTP-Anfrage an Amazon SWF.

  6. Amazon SWF überprüft die Anforderung und führt den angegebenen Vorgang durch.