

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.

# Ausgabe von einem API-Gateway-Lambda-Genehmiger
<a name="api-gateway-lambda-authorizer-output"></a>

Die Ausgabe einer Lambda-Genehmigerfunktion ist ein wörterbuchähnliches Objekt, das die Prinzipal-ID (`principalId`) und ein Richtliniendokument (`policyDocument`) mit einer Liste Richtlinienanweisungen umfassen muss. Die Ausgabe kann auch eine `context`-Zuweisung mit Schlüssel-Wert-Paaren umfassen. Wenn die API einen Nutzungsplan verwendet ([https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html#apiKeySource](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html#apiKeySource) ist auf `AUTHORIZER` gesetzt), muss die Lambda-Genehmigerfunktion einen der API-Schlüssel des Nutzungsplans als `usageIdentifierKey`-Eigenschaftswert ausgeben.

Hier ein Beispiel für diese Ausgabe. 

------
#### [ JSON ]

****  

```
{
  "principalId": "yyyyyyyy", 
  "policyDocument": {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": "execute-api:Invoke",
        "Effect": "Allow|Deny",
        "Resource": "arn:aws:execute-api:{regionId}:{accountId}:{apiId}/{stage}/{httpVerb}/[{resource}/[{child-resources}]]"
      }
    ]
  },
  "context": {
    "stringKey": "value",
    "numberKey": "1",
    "booleanKey": "true"
  },
  "usageIdentifierKey": "{api-key}"
}
```

------

 Hier legt eine Richtlinienanweisung fest, ob dem API Gateway-Ausführungs-Service der Aufruf (`Action`) der angegebenen API-Methode (`Resource`) erlaubt oder verweigert wird (`Effect`). Je nach Ihrem Autorisierer müssen Sie möglicherweise den Zugriff auf mehrere Ressourcen kontrollieren. Sie können einen Platzhalter (`*`) verwenden, um einen Ressourcentyp (Methode) anzugeben. Weitere Informationen zum Festlegen von gültigen Richtlinien für das Aufrufen einer API finden Sie unter [Anweisungsreferenz für IAM-Richtlinien zur Ausführung der API in API Gateway](api-gateway-control-access-using-iam-policies-to-invoke-api.md#api-gateway-calling-api-permissions). 

Für Methoden-ARNs mit Autorisierung, z. B. `arn:aws:execute-api:{regionId}:{accountId}:{apiId}/{stage}/{httpVerb}/[{resource}/[{child-resources}]]` beträgt die maximale Länge 1 600 Bytes. Die Pfadparameterwerte, deren Größe zur Laufzeit ermittelt wird, können dazu führen, dass die Länge des ARN dieses Limit übersteigt. Wenn dies geschieht, empfängt der API-Client die Antwort `414 Request URI too long`. 

Darüber hinaus ist der Ressourcen-ARN, wie in der Richtlinienanweisungsausgabe des Genehmigers gezeigt, derzeit auf 512 Zeichen begrenzt. Aus diesem Grund können Sie die URI nicht mit einem längeren JWT-Token in einer Anforderungs-URI verwenden. Übergeben Sie das JWT-Token stattdessen sicher im Anforderungs-Header.

 Sie können auf den `principalId`-Wert in einer Mapping-Vorlage unter Verwendung der `$context.authorizer.principalId`-Variablen zugreifen. Dies ist nützlich, wenn Sie den Wert an das Backend übergeben möchten. Weitere Informationen finden Sie unter [Kontextvariablen für Datentransformationen](api-gateway-mapping-template-reference.md#context-variable-reference). 

 Sie können auf den `stringKey`-, `numberKey`- oder `booleanKey`-Wert (z. B. `"value"`, `"1"` oder `"true"`) der `context`-Zuweisung in einer Mapping-Vorlage zugreifen, indem Sie `$context.authorizer.stringKey`, `$context.authorizer.numberKey` bzw. `$context.authorizer.booleanKey` aufrufen. Die zurückgegebenen Werte werden alle in Text umgewandelt. Beachten Sie, dass Sie kein JSON-Objekt oder -Array als gültigen Wert eines Schlüssels in der `context`-Zuweisung festlegen können. 

 Sie können das `context`-Mapping verwenden, um im Cache abgelegte Anmeldeinformationen vom Genehmiger unter Verwendung einer Mapping-Vorlage für die Integrationsanfrage an das Backend zurückzugeben. Dies ermöglicht dem Backend, durch Nutzung der im Cache gespeicherten Anmeldeinformationen, um die Notwendigkeit für den Zugriff auf die geheimen Schlüssel zu reduzieren und die Autorisierungs-Token für jede Anforderung zu öffnen, eine verbesserte Benutzerumgebung bereitzustellen. 

 Für die Lambda-Proxy-Integration übergibt API Gateway das `context`-Objekt von einem Lambda-Genehmiger direkt an die Backend-Lambda-Funktion als Teil der Eingabe `event`. Sie können die `context`-Schlüssel-/Wert-Paare in der Lambda-Funktion durch den Aufruf von `$event.requestContext.authorizer.key` abrufen. 

`{api-key}` steht für einen API-Schlüssel im Nutzungsplan der API-Stufe. Weitere Informationen finden Sie unter [Nutzungspläne und API-Schlüssel für REST APIs in API Gateway](api-gateway-api-usage-plans.md).

 Im Folgenden wird die Beispielausgabe aus dem Beispiel-Lambda-Genehmiger gezeigt. Die Beispielausgabe enthält eine Richtlinienanweisung zum Blockieren (`Deny`) von `GET` Methodenaufrufen für die `dev` Phase einer API (`ymy8tbxw7b`) eines AWS Accounts (). `123456789012`

------
#### [ JSON ]

****  

```
{
  "principalId": "user",
  "policyDocument": {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
      {
        "Action": "execute-api:Invoke",
        "Effect": "Deny",
        "Resource": "arn:aws:execute-api:us-west-2:123456789012:ymy8tbxw7b/dev/GET/"
      }
    ]
  }
}
```

------