

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.

# Einen API-Gateway-Lambda-Genehmiger konfigurieren
<a name="configure-api-gateway-lambda-authorization"></a>

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

Sie können Ihren Lambda-Genehmiger mit in der API-Gateway-Konsole integrierten Tools oder mithilfe von [Postman](https://www.postman.com/) testen. Anleitungen zur Verwendung von Postman zum Testen Ihrer Lambda-Genehmigerfunktion finden Sie unter [Aufruf einer API mit einem API Gateway-Lambda-Genehmiger](call-api-with-api-gateway-lambda-authorization.md).

## Lambda-Genehmiger konfigurieren (Konsole)
<a name="configure-api-gateway-lambda-authorization-with-console"></a>

 Im folgenden Verfahren sehen Sie, wie Sie einen Lambda-Genehmiger in der API-Gateway-REST-API-Konsole erstellen. Weitere Informationen zu den verschiedenen Lambda-Genehmigertypen finden Sie unter [Auswahl eines Lambda-Genehmigertyps](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-choose). 

------
#### [ REQUEST authorizer ]

**So konfigurieren Sie einen `REQUEST`-Lambda-Genehmiger**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie eine API und dann **Genehmiger** aus. 

1. Wählen Sie **Genehmiger erstellen** aus. 

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

1. Wählen Sie als **Genehmiger-Typ** **Lambda** aus. 

1. 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.

1. Lassen Sie **Lambda-Aufrufrolle** leer, um der API-Gateway-REST-API-Konsole zu erlauben, eine ressourcenbasierte Richtlinie festzulegen. Die Richtlinie gewährt API Gateway Berechtigungen, die Lambda-Genehmigerfunktion aufzurufen. Alternativ können Sie den Namen einer IAM-Rolle eingeben, damit API Gateway die Lambda-Genehmigerfunktion aufrufen kann. Eine Beispielrolle finden Sie unter [Übernehmbare IAM-Rolle erstellen](integrating-api-with-aws-services-lambda.md#api-as-lambda-proxy-setup-iam-role-policies). 

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

1. 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**. 

1. Um die vom Genehmiger generierte Genehmigungsrichtlinie zwischenzuspeichern, lassen Sie **Genehmigungs-Caching** aktiviert. Wenn das Caching der Richtlinie aktiviert ist, können Sie den **TTL**-Wert ändern. Durch die Einstellung **TTL** = 0 wird das Richtlinien-Caching deaktiviert.

   Wenn Sie Caching aktivieren, muss Ihr Genehmiger eine Richtlinie zurückgeben, die auf alle Methoden einer API anwendbar sind. Verwenden Sie die Kontextvariablen `$context.path` und `$context.httpMethod`, um eine methodenspezifische Richtlinie durchzusetzen.

1. Wählen Sie **Autorisierer erstellen**.

------
#### [ TOKEN authorizer ]

**So konfigurieren Sie einen `TOKEN`-Lambda-Genehmiger**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie eine API und dann **Genehmiger** aus. 

1. Wählen Sie **Genehmiger erstellen** aus. 

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

1. Wählen Sie als **Genehmiger-Typ** **Lambda** aus. 

1. 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.

1. Lassen Sie **Lambda-Aufrufrolle** leer, um der API-Gateway-REST-API-Konsole zu erlauben, eine ressourcenbasierte Richtlinie festzulegen. Die Richtlinie gewährt API Gateway Berechtigungen, die Lambda-Genehmigerfunktion aufzurufen. Alternativ können Sie den Namen einer IAM-Rolle eingeben, damit API Gateway die Lambda-Genehmigerfunktion aufrufen kann. Eine Beispielrolle finden Sie unter [Übernehmbare IAM-Rolle erstellen](integrating-api-with-aws-services-lambda.md#api-as-lambda-proxy-setup-iam-role-policies). 

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

1. Geben Sie unter **Token-Quelle** den Header-Namen ein, der das Genehmigungstoken enthält. Der Aufrufer muss einen Header mit diesem Namen enthalten, um das Genehmigungs-Token an den Lambda-Genehmiger zu senden.

1. (Optional) Geben Sie für die **Token-Validierung** eine Anweisung ein. RegEx API Gateway führt eine erste Überprüfung des eingegebenen Token für diesen Ausdruck an und ruft nach der erfolgreichen Validierung den Genehmiger auf.

1. 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 Caching der Richtlinie aktiviert ist, können Sie den **TTL**-Wert ändern. Durch die Einstellung **TTL** = 0 wird das Richtlinien-Caching deaktiviert. 

   Wenn Sie Caching aktivieren, muss Ihr Genehmiger eine Richtlinie zurückgeben, die auf alle Methoden einer API anwendbar sind. Sie können **Autorisierer-Caching** deaktivieren, wenn Sie eine methodenspezifische Richtlinie durchsetzen möchten.

1. Wählen Sie **Autorisierer erstellen**.

------

Nachdem Sie Ihren Lambda-Genehmiger erstellt haben, können Sie ihn testen. Im folgenden Verfahren sehen Sie, wie Sie Ihren Lambda-Genehmiger testen.

------
#### [ REQUEST authorizer ]

**So testen Sie einen `REQUEST`-Lambda-Genehmiger**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie den Namen Ihres Genehmigers aus.

1. Geben Sie unter **Genehmiger testen** einen Wert für Ihre Identitätsquelle ein.

   Wenn Sie [Beispiel für eine Lambda-Funktion für `REQUEST`-Genehmiger](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-request-lambda-function-create) verwenden, gehen Sie wie folgt vor:

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

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

   1. 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 **API-Gateway-Genehmiger**-Testereignisvorlage für Ihre Lambda-Funktion bearbeiten. Anschließend können Sie Ihre Lambda-Genehmigerfunktion mit geänderten Kontextvariablen testen. Weitere Informationen finden Sie unter [Lambda-Funktionen in der Konsole testen](https://docs.aws.amazon.com/lambda/latest/dg/testing-functions.html) im *AWS Lambda -Entwicklerhandbuch*.

1. Wählen Sie **Genehmiger testen** aus.

------
#### [ TOKEN authorizer ]

**So testen Sie einen `TOKEN`-Lambda-Genehmiger**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie den Namen Ihres Genehmigers aus.

1. Geben Sie unter **Genehmiger testen** einen Wert für Ihr Token ein.

   Wenn Sie [Beispiel für eine Lambda-Funktion für `TOKEN`-Genehmiger](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-token-lambda-function-create) verwenden, gehen Sie wie folgt vor:

   1. Geben Sie unter **authorizationToken** **allow** ein.

1. Wählen Sie **Genehmiger testen** aus.

    Wenn Ihr Lambda-Genehmiger eine Anfrage in der Testumgebung erfolgreich abweist, wird eine `200 OK`-HTTP-Antwort zurückgegeben. Außerhalb der Testumgebung jedoch, gibt API Gateway eine `403 Forbidden`-HTTP-Antwort zurück und die Methodenanforderung schlägt fehl.

------

## Lambda-Genehmiger konfigurieren (AWS CLI)
<a name="configure-api-gateway-lambda-authorization-cli"></a>

Der Befehl [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html) demonstriert den Vorgang der Erstellung eines Lambda-Genehmigers mithilfe der AWS CLI.

------
#### [ REQUEST authorizer ]

Der folgende [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html)-Befehl erstellt einen `REQUEST`-Genehmiger und verwendet den `Authorizer`-Header sowie die `accountId`-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 ]

Der folgende [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html)-Befehl erstellt einen `TOKEN`-Genehmiger 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-Genehmiger erstellt haben, können Sie ihn testen. Der folgende [test-invoke-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-authorizer.html)Befehl testet einen Lambda-Authorizer:

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

## Konfigurieren einer Methode für die Verwendung eines Lambda-Genehmigers (Konsole)
<a name="configure-api-gateway-lambda-authorization-method-console"></a>

Nachdem Sie Ihren Lambda-Genehmiger konfiguriert haben, müssen Sie ihn einer Methode für Ihre API hinzufügen. Wenn Ihr Genehmiger Autorisierungs-Caching verwendet, stellen Sie sicher, dass Sie die Richtlinie aktualisieren, um den Zugriff auf die zusätzliche Methode zu kontrollieren.

**So konfigurieren Sie eine API-Methode für die Verwendung eines Lambda-Genehmigers:**

1. Melden Sie sich bei der API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigatewayan](https://console.aws.amazon.com/apigateway).

1. Wählen Sie eine API aus.

1. Klicken Sie auf **Ressourcen** und wählen Sie dann eine neue oder bereits vorhandene Methode aus.

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

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

1.  (Optional) Wenn Sie das Genehmigungstoken an das Backend übergeben möchten, wählen Sie **HTTP-Anforderungsheader** aus. Wählen Sie **Header hinzufügen** und fügen Sie dann den Namen des Genehmigungsheaders hinzu. Geben Sie unter **Name** den Header-Namen ein, der mit dem Namen der **Token-Quelle** übereinstimmt, den Sie beim Erstellen des Lambda-Genehmigers für die API angegeben haben. Dieser Schritt gilt nicht für `REQUEST`-Genehmiger. 

1. Wählen Sie **Speichern**.

1. Wählen Sie **Deploy API** aus, um die API für eine Stufe 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 einer Methode für die Verwendung eines Lambda-Genehmigers (AWS CLI)
<a name="configure-api-gateway-lambda-authorization-method-cli"></a>

Nachdem Sie Ihren Lambda-Genehmiger konfiguriert haben, müssen Sie ihn einer Methode für Ihre API hinzufügen. Sie können eine neue Methode erstellen oder einen Patch-Vorgang verwenden, um einen Genehmiger an eine vorhandene Methode anzuhängen. Wenn Ihr Genehmiger Autorisierungs-Caching verwendet, stellen Sie sicher, dass Sie die Richtlinie aktualisieren, um den Zugriff auf die zusätzliche Methode zu kontrollieren.

Der [put-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method.html)-Befehl erstellt eine neue Methode, die einen Lambda-Genehmiger verwendet:

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

Der [update-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-method.html)-Befehl aktualisiert eine vorhandene Methode, um einen Lambda-Genehmiger 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"
```