Konfigurieren Sie einen API Gateway-Lambda-Autorisierer - 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.

Konfigurieren Sie einen API Gateway-Lambda-Autorisierer

Nachdem Sie eine Lambda-Funktion erstellt haben, konfigurieren Sie die Lambda-Funktion als Autorisierer für Ihre. API Anschließend konfigurieren Sie Ihre Methode so, dass sie Ihren Lambda-Authorizer aufruft, um festzustellen, ob ein Aufrufer Ihre Methode aufrufen kann. Sie können eine Lambda-Funktion in demselben Konto oder in einem anderen Konto erstellen, von dem aus Sie Ihre API erstellt haben.

Sie können Ihren Lambda-Autorisierer mit integrierten Tools in der API Gateway-Konsole oder mit Postman testen. Anweisungen zur Verwendung von Postman zum Testen Ihrer Lambda-Autorisierungsfunktion finden Sie unter. Rufen Sie eine API mit einem API Gateway Lambda-Autorisierer an

Konfigurieren Sie einen Lambda-Autorisierer (Konsole)

Das folgende Verfahren zeigt, wie Sie einen Lambda-Autorisierer in der API REST API Gateway-Konsole erstellen. Weitere Informationen zu den verschiedenen Typen von Lambda-Autorisierern finden Sie unter. Auswahl eines Lambda-Autorisierungstyps

REQUEST authorizer
So konfigurieren Sie einen REQUEST Lambda-Autorisierer
  1. Melden Sie sich unter https://console.aws.amazon.com/apigateway bei der API Gateway-Konsole an.

  2. Wählen Sie einen API und anschließend Authorizers aus.

  3. Wählen Sie Genehmiger erstellen aus.

  4. Geben Sie unter Name des Genehmigers einen Namen für den Genehmiger ein.

  5. Wählen Sie als Genehmiger-Typ Lambda aus.

  6. Wählen Sie für Lambda-Funktion den Ort aus, AWS-Region an dem Sie Ihre Lambda-Autorisierungsfunktion erstellt haben, und geben Sie dann den Funktionsnamen ein.

  7. Lassen Sie das Feld Lambda-Aufrufrolle leer, damit die API REST API Gateway-Konsole eine ressourcenbasierte Richtlinie festlegen kann. Die Richtlinie gewährt API Gateway Berechtigungen zum Aufrufen der Lambda-Autorisierungsfunktion. Sie können auch den Namen einer IAM Rolle eingeben, damit API Gateway die Lambda-Autorisierungsfunktion aufrufen kann. Ein Beispiel für eine Rolle finden Sie unter. Erstellen einer annehmbaren IAM-Rolle

  8. Wählen Sie für Lambda-Ereignisnutzlast die Option Anfrage.

  9. Wählen Sie für Identitätsquellen-Typ einen Parametertyp aus. Die unterstützten Parametertypen sind Header, Query string, Stage variable und Context. Um weitere Identitätsquellen hinzuzufügen, wählen Sie Parameter hinzufügen.

  10. Um die vom Genehmiger generierte Genehmigungsrichtlinie zwischenzuspeichern, lassen Sie Genehmigungs-Caching aktiviert. Wenn das Policy-Caching aktiviert ist, können Sie den TTLWert ändern. Wenn Sie den Wert TTLauf Null setzen, wird das Policy-Caching deaktiviert.

    Wenn Sie das Caching aktivieren, muss Ihr Autorisierer eine Richtlinie zurückgeben, die für alle Methoden in einem gilt. API Um eine methodenspezifische Richtlinie durchzusetzen, verwenden Sie die Kontextvariablen und. $context.path $context.httpMethod

  11. Wählen Sie Autorisierer erstellen.

TOKEN authorizer
So konfigurieren Sie einen TOKEN Lambda-Autorisierer
  1. Melden Sie sich unter https://console.aws.amazon.com/apigateway bei der API Gateway-Konsole an.

  2. Wählen Sie einen API und anschließend Authorizers aus.

  3. Wählen Sie Genehmiger erstellen aus.

  4. Geben Sie unter Name des Genehmigers einen Namen für den Genehmiger ein.

  5. Wählen Sie als Genehmiger-Typ Lambda aus.

  6. Wählen Sie für Lambda-Funktion den Ort aus, AWS-Region an dem Sie Ihre Lambda-Autorisierungsfunktion erstellt haben, und geben Sie dann den Funktionsnamen ein.

  7. Lassen Sie das Feld Lambda-Aufrufrolle leer, damit die API REST API Gateway-Konsole eine ressourcenbasierte Richtlinie festlegen kann. Die Richtlinie gewährt API Gateway Berechtigungen zum Aufrufen der Lambda-Autorisierungsfunktion. Sie können auch den Namen einer IAM Rolle eingeben, damit API Gateway die Lambda-Autorisierungsfunktion aufrufen kann. Ein Beispiel für eine Rolle finden Sie unter. Erstellen einer annehmbaren IAM-Rolle

  8. Wählen Sie für Lambda-Ereignisnutzlast die Option Token aus.

  9. Geben Sie unter Token-Quelle den Header-Namen ein, der das Genehmigungstoken enthält. Der Aufrufer muss einen Header mit diesem Namen angeben, um das Autorisierungstoken an den Lambda-Autorisierer zu senden.

  10. (Optional) Geben Sie für die Token-Validierung eine Anweisung ein. RegEx APIGateway führt eine erste Validierung des Eingabe-Tokens anhand dieses Ausdrucks durch und ruft bei erfolgreicher Überprüfung den Authorizer auf.

  11. Um die vom Genehmiger generierte Genehmigungsrichtlinie zwischenzuspeichern, lassen Sie Genehmigungs-Caching aktiviert. Wenn das Richtlinien-Caching aktiviert ist, wird der unter Token-Quelle angegebene Header-Name zum Cache-Schlüssel. Wenn das Policy-Caching aktiviert ist, können Sie den Wert ändern. TTL Wenn Sie den Wert TTLauf Null setzen, wird das Policy-Caching deaktiviert.

    Wenn Sie das Caching aktivieren, muss Ihr Autorisierer eine Richtlinie zurückgeben, die für alle Methoden in einem gilt. API Um eine methodenspezifische Richtlinie durchzusetzen, können Sie das Autorisierungs-Caching deaktivieren.

  12. Wählen Sie Autorisierer erstellen.

Nachdem Sie Ihren Lambda-Authorizer erstellt haben, können Sie ihn testen. Das folgende Verfahren zeigt, wie Sie Ihren Lambda-Authorizer testen.

REQUEST authorizer
Um einen REQUEST Lambda-Autorisierer zu testen
  1. Melden Sie sich unter https://console.aws.amazon.com/apigateway bei der API Gateway-Konsole an.

  2. Wählen Sie den Namen Ihres Autorisierers aus.

  3. Geben Sie unter Autorisierer testen einen Wert für Ihre Identitätsquelle ein.

    Wenn Sie den verwendenBeispiel für eine REQUEST Autorisierungs-Lambda-Funktion, gehen Sie wie folgt vor:

    1. Wählen Sie Header, geben Sie headerValue1 ein und wählen Sie dann Parameter hinzufügen aus.

    2. Wählen Sie unter Identitätsquellen-Typ die Option Abfragezeichenfolge, geben Sie queryValue1 ein und wählen Sie dann Parameter hinzufügen aus.

    3. Wählen Sie unter Identitätsquellen-Typ die Option Stufenvariable aus und geben Sie stageValue1 ein.

    Sie können die Kontextvariablen für den Testaufruf nicht ändern, aber Sie können die APIGateway Authorizer-Testereignisvorlage für Ihre Lambda-Funktion ändern. Anschließend können Sie Ihre Lambda-Authorizer-Funktion mit geänderten Kontextvariablen testen. Weitere Informationen finden Sie im AWS Lambda Entwicklerhandbuch unter Testen von Lambda-Funktionen in der Konsole.

  4. Wählen Sie Genehmiger testen aus.

TOKEN authorizer
Um einen TOKEN Lambda-Autorisierer zu testen
  1. Melden Sie sich unter https://console.aws.amazon.com/apigateway bei der API Gateway-Konsole an.

  2. Wählen Sie den Namen Ihres Autorisierers aus.

  3. Geben Sie unter Autorisierer testen einen Wert für Ihr Token ein.

    Wenn Sie den verwendenBeispiel für eine TOKEN Autorisierungs-Lambda-Funktion, gehen Sie wie folgt vor:

    1. Geben Sie für authorizationTokenden einallow.

  4. Wählen Sie Genehmiger testen aus.

    Wenn Ihr Lambda-Autorisierer eine Anfrage in der Testumgebung erfolgreich ablehnt, antwortet der Test mit einer Antwort. 200 OK HTTP Außerhalb der Testumgebung gibt API Gateway jedoch eine 403 Forbidden HTTP Antwort zurück und die Methodenanforderung schlägt fehl.

Konfigurieren Sie einen Lambda-Autorisierer ()AWS CLI

Der folgende create-authorizer-Befehl zeigt, wie Sie einen Lambda-Authorizer mit dem erstellen. AWS CLI

REQUEST authorizer

Das folgende Beispiel erstellt einen REQUEST Authorizer und verwendet den Authorizer Header und accountId die Kontextvariable als Identitätsquellen:

aws apigateway create-authorizer \ --rest-api-id 1234123412 \ --name 'First_Request_Custom_Authorizer' \ --type REQUEST \ --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \ --identity-source 'method.request.header.Authorization,context.accountId' \ --authorizer-result-ttl-in-seconds 300
TOKEN authorizer

Das folgende Beispiel erstellt einen TOKEN Authorizer und verwendet den Authorization Header als Identitätsquelle:

aws apigateway create-authorizer \ --rest-api-id 1234123412 \ --name 'First_Token_Custom_Authorizer' \ --type TOKEN \ --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \ --identity-source 'method.request.header.Authorization' \ --authorizer-result-ttl-in-seconds 300

Nachdem Sie Ihren Lambda-Authorizer erstellt haben, können Sie ihn testen. Der folgende test-invoke-authorizerBefehl zeigt, wie Sie Ihren Lambda-Authorizer testen:

aws apigateway test-invoke-authorizer --rest-api-id 1234123412 \ --authorizer-id efg1234 \ --headers Authorization='Value'

Konfigurieren Sie eine Methode zur Verwendung eines Lambda-Autorisierers (Konsole)

Nachdem Sie Ihren Lambda-Authorizer konfiguriert haben, müssen Sie ihn an eine Methode für Sie anhängen. API

So konfigurieren Sie eine API Methode zur Verwendung eines Lambda-Autorisierers
  1. Melden Sie sich unter https://console.aws.amazon.com/apigateway bei der API Gateway-Konsole an.

  2. Wählen Sie einAPI.

  3. Wählen Sie Ressourcen und wählen Sie dann eine neue Methode oder wählen Sie eine vorhandene Methode.

  4. Wählen Sie auf der Registerkarte Methodenanfrage unter Methodenanfrage-Einstellungen die Option Bearbeiten aus.

  5. Wählen Sie für Genehmiger aus dem Drop-down-Menü den Lambda-Genehmiger aus, den Sie gerade erstellt haben.

  6. (Optional) Wenn Sie das Autorisierungstoken an das Backend übergeben möchten, wählen Sie HTTPAnforderungsheader. Wählen Sie Header hinzufügen und fügen Sie dann den Namen des Genehmigungsheaders hinzu. Geben Sie für Name den Header-Namen ein, der dem Token-Quellnamen entspricht, den Sie bei der Erstellung des Lambda-Autorisierers für angegeben haben. API Dieser Schritt gilt nicht für REQUEST-Genehmiger.

  7. Wählen Sie Speichern.

  8. Wählen Sie Deploy ausAPI, API um das in einer Phase bereitzustellen. Für einen REQUEST-Genehmiger mit Stufenvariablen müssen Sie auch die erforderlichen Stufenvariablen definieren und ihre Werte auf der Seite Stufen angeben.

Konfigurieren Sie eine Methode zur Verwendung eines Lambda-Autorisierers ()AWS CLI

Nachdem Sie Ihren Lambda-Authorizer konfiguriert haben, müssen Sie ihn an eine Methode für Sie anhängen. API Sie können eine neue Methode erstellen oder einen Patch-Vorgang verwenden, um einen Autorisierer an eine bestehende Methode anzuhängen.

Der folgende Befehl put-method zeigt, wie eine neue Methode erstellt wird, die einen Lambda-Authorizer verwendet:

aws apigateway put-method --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method PUT \ --authorization-type CUSTOM \ --authorizer-id efg1234

Der folgende Befehl update-method zeigt, wie eine vorhandene Methode aktualisiert wird, um einen Lambda-Authorizer zu verwenden:

aws apigateway update-method \ --rest-api-id 1234123412 \ --resource-id a1b2c3 \ --http-method PUT \ --patch-operations op="replace",path="/authorizationType",value="CUSTOM" op="replace",path="/authorizerId",value="efg1234"