Eingabe in einen API Gateway Lambda-Authorizer - APIAmazon-Gateway

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.

Eingabe in einen API Gateway Lambda-Authorizer

Im folgenden Abschnitt wird das Format der Eingabe von API Gateway an einen Lambda-Authorizer erklärt.

TOKEN-Eingabeformat

Für einen Lambda-Authorizer (früher bekannt als benutzerdefinierter Authorizer) dieses TOKEN Typs müssen Sie einen benutzerdefinierten Header als Token-Quelle angeben, wenn Sie den Authorizer für Ihren konfigurieren. API Der API Client muss das erforderliche Autorisierungstoken in diesem Header der eingehenden Anfrage übergeben. Nach Erhalt der eingehenden Methodenanforderung extrahiert API Gateway das Token aus dem benutzerdefinierten Header. Anschließend wird das Token als authorizationToken Eigenschaft des event Objekts der Lambda-Funktion übergeben, zusätzlich zur Methode ARN als methodArn Eigenschaft:

{ "type":"TOKEN", "authorizationToken":"{caller-supplied-token}",     "methodArn":"arn:aws:execute-api:{regionId}:{accountId}:{apiId}/{stage}/{httpVerb}/[{resource}/[{child-resources}]]" }

In diesem Beispiel gibt die type-Eigenschaft den Genehmigertyp an, wobei es sich um einen TOKEN Genehmiger handelt. Das {caller-supplied-token} stammt aus dem Autorisierungs-Header einer Client-Anforderung und kann eine beliebige Zeichenfolge sein. Das methodArn ist die ARN der eingehenden Methodenanforderung und wird von API Gateway gemäß der Lambda-Authorizer-Konfiguration gefüllt.

REQUEST-Eingabeformat

Bei einem Lambda-Autorisierer dieses REQUEST Typs übergibt API Gateway Anforderungsparameter als Teil des Objekts an die Autorisierungs-Lambda-Funktion. event Die Anforderungsparameter umfassen Header, Pfad, Parameter für Abfragezeichenfolgen, Stufenvariablen und einige der Anforderungskontextvariablen. Der API Aufrufer kann die Pfadparameter, Header und Abfragezeichenfolgenparameter festlegen. Der API Entwickler muss die Stufenvariablen während der API Bereitstellung festlegen, und API Gateway stellt den Anforderungskontext zur Laufzeit bereit.

Anmerkung

Pfadparameter können als Anfrageparameter an die Lambda-Genehmigerfunktion übergeben werden, aber sie können nicht als Identitätsquellen verwendet werden.

Das folgende Beispiel zeigt eine Eingabe für einen REQUEST Autorisierer für eine API Methode (GET /request) mit einer Proxyintegration:

{ "type": "REQUEST", "methodArn": "arn:aws:execute-api:us-east-1:123456789012:abcdef123/test/GET/request", "resource": "/request", "path": "/request", "httpMethod": "GET", "headers": { "X-AMZ-Date": "20170718T062915Z", "Accept": "*/*", "HeaderAuth1": "headerValue1", "CloudFront-Viewer-Country": "US", "CloudFront-Forwarded-Proto": "https", "CloudFront-Is-Tablet-Viewer": "false", "CloudFront-Is-Mobile-Viewer": "false", "User-Agent": "..." }, "queryStringParameters": { "QueryString1": "queryValue1" }, "pathParameters": {}, "stageVariables": { "StageVar1": "stageValue1" }, "requestContext": { "path": "/request", "accountId": "123456789012", "resourceId": "05c7jb", "stage": "test", "requestId": "...", "identity": { "apiKey": "...", "sourceIp": "...", "clientCert": { "clientCertPem": "CERT_CONTENT", "subjectDN": "www.example.com", "issuerDN": "Example issuer", "serialNumber": "a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1:a1", "validity": { "notBefore": "May 28 12:30:02 2019 GMT", "notAfter": "Aug 5 09:36:04 2021 GMT" } } }, "resourcePath": "/request", "httpMethod": "GET", "apiId": "abcdef123" } }

requestContext ist eine Zuordnung von Schlüssel-Wert-Paaren und entspricht der Variablen $ Kontext. Ihr Ergebnis ist API -abhängig.

APIGateway fügt der Map möglicherweise neue Schlüssel hinzu. Weitere Informationen über die Eingabe von Lambda-Funktionen bei der Lambda-Proxy-Integration finden Sie unter Eingabeformat einer Lambda-Funktion für die Proxy-Integration.