

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.

# x-amazon-apigateway-authorizer Objekt
<a name="api-gateway-swagger-extensions-authorizer"></a>

 Definiert einen Lambda-Genehmiger, Amazon Cognito-Benutzerpool oder JWT-Genehmiger, der für die Autorisierung von Methodenaufrufen in API Gateway angewendet werden soll. Diese Erweiterung gilt für die Sicherheitsdefinition in [OpenAPI 2](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/2.0.md#security-definitions-object) und das Sicherheitsschema in [OpenAPI 3](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.1.md#security-scheme-object).


| Name der Eigenschaft | Typ | Beschreibung | 
| --- | --- | --- | 
| type | string |  Der Typ des Genehmigers. Diese Eigenschaft ist erforderlich. Geben Sie für REST `token` für einen Autorisierer an APIs, bei dem die Identität des Anrufers in ein Autorisierungstoken eingebettet ist. Geben Sie `request` für einen Genehmiger an, wobei die Aufruferidentität in den Anforderungsparametern enthalten ist. Geben Sie `cognito_user_pools` für einen Genehmiger an, der einen Amazon Cognito-Benutzerpool verwendet, um den Zugriff auf Ihre API zu kontrollieren.  Geben Sie für HTTP APIs `request` für einen Lambda-Authorizer mit der Anruferidentität in den Anforderungsparametern an. Geben Sie `jwt` für einen JWT-Genehmiger an.  | 
| authorizerUri | string |   Der Uniform Resource Identifier (URI) der Lambda-Funktion des Genehmigers. Die Syntax ist wie folgt:  <pre>"arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:account-id:function:auth_function_name/invocations"</pre>  | 
| authorizerCredentials | string |  Für den Aufruf des Genehmigers erforderliche Anmeldeinformationen, sofern vorhanden, in Form eines ARN einer IAM-Ausführungsrolle. Zum Beispiel „arn:aws:iam:::“. *account-id* *IAM\$1role*   | 
| authorizerPayloadFormatVersion | string |  Gibt für HTTP das Format der Daten an APIs, die API Gateway an einen Lambda-Autorisierer sendet, und wie API Gateway die Antwort von Lambda interpretiert. Weitere Informationen hierzu finden Sie unter [Nutzlastformatversion](http-api-lambda-authorizer.md#http-api-lambda-authorizer.payload-format).  | 
| enableSimpleResponses | Boolean |  Gibt für HTTP an APIs, ob ein `request` Autorisierer einen booleschen Wert oder eine IAM-Richtlinie zurückgibt. Wird nur für Genehmiger mit `authorizerPayloadFormatVersion` `2.0` unterstützt. Falls aktiviert, gibt die Lambda-Genehmiger-Funktion einen booleschen Wert zurück. Weitere Informationen hierzu finden Sie unter [Lambda-Funktionsantwort für Format 2.0](http-api-lambda-authorizer.md#http-api-lambda-authorizer.v2).  | 
| identitySource | string |  Eine CSV-Liste der Mapping-Ausdrücke der Anforderungsparameter als Identitätsquelle. Gilt nur für die Genehmiger des Typs `request` und `jwt`.  | 
| jwtConfiguration | Object |  Gibt den Aussteller und die Zielgruppen für einen JWT-Genehmiger an. Weitere Informationen finden Sie [JWTConfiguration](https://docs.aws.amazon.com/apigatewayv2/latest/api-reference/apis-apiid-authorizers-authorizerid.html#apis-apiid-authorizers-authorizerid-model-jwtconfiguration)in der API-Referenz zu API Gateway Version 2. Wird nur für HTTP unterstützt APIs.  | 
| identityValidationExpression | string |   Ein regulärer Ausdruck für die Validierung des Tokens als eingehende Identität. Beispiel: "^x-[a-z]\$1". Wird nur für `TOKEN` Autorisierer für REST unterstützt. APIs  | 
| authorizerResultTtlInSeconds | string |   Die Anzahl der Sekunden, über die hinweg das Genehmiger-Ergebnis zwischengespeichert wird.  | 
| providerARNs | Ein Array von string | Eine Liste des Amazon Cognito Cognito-Benutzerpools ARNs für die`COGNITO_USER_POOLS`. | 

## x-amazon-apigateway-authorizer Beispiele für REST APIs
<a name="api-gateway-swagger-extensions-authorizer-example"></a>

Das folgende Beispiel für OpenAPI-Sicherheitsdefinitionen gibt einen Lambda-Genehmiger des Typs "token" des Namens a `test-authorizer`.

```
  "securityDefinitions" : {
    "test-authorizer" : {
      "type" : "apiKey",                         // Required and the value must be "apiKey" for an API Gateway API.
      "name" : "Authorization",                  // The name of the header containing the authorization token.
      "in" : "header",                           // Required and the value must be "header" for an API Gateway API.
      "x-amazon-apigateway-authtype" : "custom", // Specifies the authorization mechanism for the client.
      "x-amazon-apigateway-authorizer" : {       // An API Gateway Lambda authorizer definition
        "type" : "token",                        // Required property and the value must "token"
        "authorizerUri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:account-id:function:function-name/invocations",
        "authorizerCredentials" : "arn:aws:iam::account-id:role",
        "identityValidationExpression" : "^x-[a-z]+",
        "authorizerResultTtlInSeconds" : 60
      }
    }
  }
```

Das folgende OpenAPI-Operations-Objekt-Snippet legt `GET /http` auf die Verwendung des vorhergehenden Lambda-Genehmigers fest.

```
   "/http" : {
      "get" : {
        "responses" : { },
        "security" : [ {
          "test-authorizer" : [ ]
        } ],
        "x-amazon-apigateway-integration" : {
          "type" : "http",
          "responses" : {
            "default" : {
              "statusCode" : "200"
            }
          },
          "httpMethod" : "GET",
          "uri" : "http://api.example.com"
        }
      }
    }
```

Das folgende Beispiel für OpenAPI-Sicherheitsdefinitionen spezifiziert einen Lambda-Genehmiger des Typs "request" mit einem einzigen Header-Parameter (`auth`) als Identitätsquelle. Die `securityDefinitions` heißt `request_authorizer_single_header`.

```
"securityDefinitions": {
    "request_authorizer_single_header" : {
      "type" : "apiKey",
      "name" : "auth",               // The name of a single header or query parameter as the identity source.
      "in" : "header",               // The location of the single identity source request parameter. The valid value is "header" or "query"
      "x-amazon-apigateway-authtype" : "custom",
      "x-amazon-apigateway-authorizer" : {
        "type" : "request",
        "identitySource" : "method.request.header.auth",   // Request parameter mapping expression of the identity source. In this example, it is the 'auth' header.
        "authorizerCredentials" : "arn:aws:iam::123456789012:role/AWSepIntegTest-CS-LambdaRole",
        "authorizerUri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:APIGateway-Request-Authorizer:vtwo/invocations",
        "authorizerResultTtlInSeconds" : 300
      }
    }
}
```

Das folgende Beispiel für OpenAPI-Sicherheitsdefinitionen spezifiziert einen Lambda-Genehmiger des Typs "request" mit einem Header (`HeaderAuth1`) und einem Abfragezeichenfolgenparameter `QueryString1` als Identitätsquellen.

```
"securityDefinitions": {
    "request_authorizer_header_query" : {
      "type" : "apiKey",
      "name" : "Unused",             // Must be "Unused" for multiple identity sources or non header or query type of request parameters.
      "in" : "header",               // Must be "header" for multiple identity sources or non header or query type of request parameters.
      "x-amazon-apigateway-authtype" : "custom",
      "x-amazon-apigateway-authorizer" : {
        "type" : "request",
        "identitySource" : "method.request.header.HeaderAuth1, method.request.querystring.QueryString1",   // Request parameter mapping expressions of the identity sources.
        "authorizerCredentials" : "arn:aws:iam::123456789012:role/AWSepIntegTest-CS-LambdaRole",
        "authorizerUri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:APIGateway-Request-Authorizer:vtwo/invocations",
        "authorizerResultTtlInSeconds" : 300
      }
    }
}
```

Das folgende OpenAPI-Sicherheitsdefinitionsbeispiel gibt einen API Gateway Lambda-Genehmiger vom Typ "request" mit einer einstufigen Variablen (`stage`) als Identitätsquelle an. 

```
"securityDefinitions": {
    "request_authorizer_single_stagevar" : {
      "type" : "apiKey",
      "name" : "Unused",             // Must be "Unused", for multiple identity sources or non header or query type of request parameters.
      "in" : "header",               // Must be "header", for multiple identity sources or non header or query type of request parameters.
      "x-amazon-apigateway-authtype" : "custom",
      "x-amazon-apigateway-authorizer" : {
        "type" : "request",
        "identitySource" : "stageVariables.stage",   // Request parameter mapping expression of the identity source. In this example, it is the stage variable.
        "authorizerCredentials" : "arn:aws:iam::123456789012:role/AWSepIntegTest-CS-LambdaRole",
        "authorizerUri" : "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:APIGateway-Request-Authorizer:vtwo/invocations",
        "authorizerResultTtlInSeconds" : 300
      }
    }
}
```

Das folgende Beispiel für eine OpenAPI-Sicherheitsdefinition gibt einen Amazon Cognito-Benutzerpool als Genehmiger an.

```
 "securityDefinitions": {
    "cognito-pool": {
      "type": "apiKey",
      "name": "Authorization",
      "in": "header",
      "x-amazon-apigateway-authtype": "cognito_user_pools",
      "x-amazon-apigateway-authorizer": {
        "type": "cognito_user_pools",
        "providerARNs": [
          "arn:aws:cognito-idp:us-east-1:123456789012:userpool/us-east-1_ABC123"
        ]
      }
    }
```

Der folgende OpenAPI-Operationsobjektausschnitt legt `GET /http` fest, um den vorherigen Amazon Cognito-Benutzerpool als Genehmiger ohne benutzerdefinierte Bereiche zu verwenden.

```
   "/http" : {
      "get" : {
        "responses" : { },
        "security" : [ {
          "cognito-pool" : [ ]
        } ],
        "x-amazon-apigateway-integration" : {
          "type" : "http",
          "responses" : {
            "default" : {
              "statusCode" : "200"
            }
          },
          "httpMethod" : "GET",
          "uri" : "http://api.example.com"
        }
      }
    }
```

## x-amazon-apigateway-authorizer Beispiele für HTTP APIs
<a name="api-gateway-openapi-extensions-authorizer-examples-http"></a>

Das folgende OpenAPI 3.0-Beispiel erstellt einen JWT-Genehmiger für eine HTTP-API, die Amazon Cognito als Identitätsanbieter verwendet, mit dem `Authorization`-Header als Identitätsquelle.

```
"securitySchemes": {
  "jwt-authorizer-oauth": {
    "type": "oauth2",
     "x-amazon-apigateway-authorizer": {
       "type": "jwt",
       "jwtConfiguration": {
          "issuer": "https://cognito-idp.region.amazonaws.com/userPoolId",
          "audience": [
            "audience1",
            "audience2"
          ]
        },
        "identitySource": "$request.header.Authorization"
    }
  }
}
```

Im folgenden Beispiel für OpenAPI 3.0 wird derselbe JWT-Genehmiger erstellt wie im vorherigen Beispiel. In diesem Beispiel wird jedoch die OpenAPI-`openIdConnectUrl`-Eigenschaft verwendet, damit der Aussteller automatisch erkannt wird. Die `openIdConnectUrl` muss vollständig gebildet sein.

```
"securitySchemes": {
  "jwt-authorizer-autofind": {
    "type": "openIdConnect",
    "openIdConnectUrl": "https://cognito-idp.region.amazonaws.com/userPoolId/.well-known/openid-configuration",
    "x-amazon-apigateway-authorizer": {
      "type": "jwt",
      "jwtConfiguration": {
        "audience": [
          "audience1",
          "audience2"
        ]
      },
      "identitySource": "$request.header.Authorization"
    }
  }
}
```

Das folgende Beispiel erstellt einen Lambda-Genehmiger für eine HTTP-API. Dieser Beispiel-Genehmiger verwendet den `Authorization`-Header als Identitätsquelle. Der Genehmiger verwendet Nutzlast-Formatversion `2.0` und gibt den booleschen Wert zurück, da `enableSimpleResponses` auf `true` gesetzt ist.

```
"securitySchemes" : {
  "lambda-authorizer" : {
    "type" : "apiKey",
    "name" : "Authorization",
    "in" : "header",
    "x-amazon-apigateway-authorizer" : {
      "type" : "request",
      "identitySource" : "$request.header.Authorization",
      "authorizerUri" : "arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123456789012:function:function-name/invocations",
      "authorizerPayloadFormatVersion" : "2.0",
      "authorizerResultTtlInSeconds" : 300,
      "enableSimpleResponses" : true
    }
  }
}
```