Leitfaden für Signaturen von Drittanbietern
Erfahren Sie, wie Sie Signaturen von Drittanbieter-Zahlungsanbietern erstellen.
To generate a successful signature, follow the instructions that are documented in the RFC 9421 specification. Note that there are aspects of the signature generation that Amazon enforces for TPPs making SP-API requests. These are documented in the following sections.
Signaturkomponenten
RFC 9421 describes the process of communicating which HTTP message components are signed in a request. You must include the following message components when you generate a signature.
Hinweis
Wenn die folgenden Komponenten nicht enthalten sind, schlägt die Signaturüberprüfung fehl. Sie können diese Komponenten in beliebiger Reihenfolge hinzufügen.
HTTP-Felder (Nachrichten-Header)
Kopfzeile | Beschreibung |
---|---|
x-amz-access-token | Das LWA-Zugriffstoken, das für die Anfrage verwendet wird. |
x-amzn-content-digest | Der Sha-256-Digest der Anforderungsnutzlast. Für Anfragen ohne Payload erstellen Sie den sha-256-Digest auf einem leer Schnur. |
For additional information, refer to HTTP Fields.
Abgeleitete Komponenten
Component | Beschreibung |
---|---|
@method | Die HTTP-Methode der Anfrage. Der Wert muss in Großbuchstaben geschrieben werden (zum Beispiel GET , POST ). |
@query | The normalized query string that is defined by the URI and includes the leading ? character.If the request doesn’t have a query, you must populate the component value with ? when you create the signature base mentioned in RFC 9421.The value must be derived after you perform all the necessary encoding, such as Percentile-Encoding. Any further modifications you make to queryString , which are not included when you create the signature, cause signature failure. |
For additional information, refer to Derived Components.
Signaturparameter
Parameter | Beschreibung |
---|---|
created | Ein Epochenzeitstempel in Sekunden. Wenn der created epoch zeigt auf eine Zeit, die älter als fünf Minuten ist, wenn die Anfrage eingeht, die Signatur als abgelaufen gilt und der Anruf abgelehnt wird. |
alg | An algorithm that you use to sign the signature base. The value for alg must be PS512 . For additional details, refer to Signing algorithm. |
For additional information, refer to Signature Parameters.
Vorsicht
Bei allen Anforderungsheaderwerten wird zwischen Groß- und Kleinschreibung unterschieden. Wenn die Groß- und Kleinschreibung nicht übereinstimmt, schlägt Ihre Signaturüberprüfung fehl.
Unterschriftslabel
RFC 9421 allows multiple signatures within the same header (to disambiguate, use signature labels). SP-API only uses one signature, which is identified by the x-amzn-psd2
signature label. You must use it in the Signature
and Signature-Input
headers to identify PSD2-related information.
Algorithmus zum Signieren
A signature is generated on the signature base string that is created when you complete the steps in RFC 9421. After you generate your signature base string, you must use the private key that is associated with your electronic NCA Certificate to sign the request with the PS512 algorithm. This algorithm is the only one that is currently supported for SP-API requests.
The certificate that is associated with the private key you used in the signature must be passed as a header (x-amzn-psd2-certificate
) in your SP-API request. The certificate must be a PEM-formatted string in Base64 encoding that begins with -----BEGIN CERTIFICATE-----
and ends with -----END CERTIFICATE-----
.
Wenn Sie im Zertifikat unzulässige Zeichen verwenden, wird Ihre SP-API-Anfrage abgelehnt. Sie dürfen nur Zertifikate verwenden, die zum Signieren von HTTP-Anfragen bestimmt sind, die von qualifizierten Vertrauensdienstanbietern (QTSPs) ausgestellt wurden.
Vorsicht
Das von Ihnen verwendete Zertifikat muss mit der Organisations-ID verknüpft sein, die Sie in Ihrer Entwicklerregistrierung angegeben haben. Wenn es eine Nichtübereinstimmung gibt, wird Ihre Anfrage abgelehnt.
Fehlermeldung
Wenn die Validierung Ihrer Anforderungssignatur fehlschlägt, erhalten Sie einen 403-Fehler, der zusätzliche Informationen im Hauptteil enthält. Zum Beispiel:
{
"errors": [
{
"code": "Unauthorized",
"message": "Access to requested resource is denied.",
"details": "Reason for error."
}
]
}
Im Folgenden finden Sie eine Liste möglicher Werte für details
Feld:
Fehlermeldung | Beschreibung |
---|---|
TPP certificate required but missing from request | Das x-amzn-psd2-certificate Header fehlt. |
TPP certificate has invalid format | Das bereitgestellte Zertifikat hat kein gültiges PEM-Format. |
Content Digest header required but missing from request | Der x-amzn-content-digest-Anforderungsheader fehlt. |
Invalid Content Digest | Die Inhaltsübersicht konnte nicht verifiziert werden, oder Sie haben einen Algorithmus verwendet, der nicht unterstützt wird. Nur SHA-256 wird unterstützt. |
Signature-Input header required but not presented | Das Signature-Input Der Anforderungsheader fehlt. |
Signature-Input header is invalid | Das Signature-Input Der Header-Wert entspricht nicht der RFC 9421-Spezifikation. |
Request PSD2 Signature is Invalid | Ungültige Signatur. Dies kann mehrere Ursachen haben, z. B. die Verwendung des falschen privaten Schlüssels oder Zertifikats oder einen Tippfehler. |
Signature header is required but not presented | Das Signature Der Anforderungsheader fehlt. |
Beispiel für eine Signatur
Das folgende Beispiel ist eine Signatur-Basiszeichenfolge, die alle erforderlichen Komponenten enthält:
"x-amz-access-token": Atza|IgEBIN...
"x-amzn-content-digest": sha-256=:fadf3qr3TAFASEG3234gADA+krdzMzYayg4YFig=:
"@method": POST
"@query": ?key2=value2&key1=value1
"@signature-params": ("x-amz-access-token" "x-amzn-content-digest" "@method" "@query");created=1720137600;alg="PS512";
Das zugehörige Signature-Input
Header ist:
Signature-Input: x-amzn-psd2=("x-amz-access-token" "x-amzn-content-digest" "@method" "@query");created=1720137600;alg="PS512"
Das folgende Beispiel ist ein Signatur-Header mit Signature
Etikett:
Signature: x-amzn-psd2=:cyqStwls2k3Xs8SSzDvDhxWEc_P0dNxV5I6Tp... :
Updated 27 days ago