x-amazon-apigateway-authorizer Objekt - 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.

x-amazon-apigateway-authorizer Objekt

Definiert einen Lambda-Autorisierer, einen Amazon Cognito Cognito-Benutzerpool oder einen JWT Autorisierer, der für die Autorisierung von Methodenaufrufen in Gateway angewendet werden soll. API Diese Erweiterung gilt für die Sicherheitsdefinition in Open 2 und Open 3. API API

Name der Eigenschaft Typ Beschreibung
type string

Der Typ des Genehmigers. Diese Eigenschaft ist erforderlich.

Geben Sie token für einen Autorisierer an RESTAPIs, 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 Autorisierer an, der einen Amazon Cognito Cognito-Benutzerpool verwendet, um den Zugriff auf Ihren zu kontrollieren. API

Geben Sie request für HTTP APIs einen Lambda-Autorisierer mit der Anruferidentität an, die in den Anforderungsparametern enthalten ist. Geben Sie jwt für einen Autorisierer an. JWT

authorizerUri string

Der Uniform Resource Identifier (URI) der Autorisierungs-Lambda-Funktion. Die Syntax ist wie folgt:

"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"
authorizerCredentials string

Die Anmeldeinformationen, die für den Aufruf des Autorisierers erforderlich sind, sofern vorhanden, in Form ARN einer Ausführungsrolle. IAM Zum Beispiel „arn:aws:iam::account-id:IAM_role".

authorizerPayloadFormatVersion string

For gibt das Format der Daten an HTTPAPIs, die API Gateway an einen Lambda-Autorisierer sendet, und gibt an, wie API Gateway die Antwort von Lambda interpretiert. Weitere Informationen hierzu finden Sie unter Nutzlastformatversion.

enableSimpleResponses Boolean

For gibt an HTTPAPIs, ob ein request Autorisierer einen booleschen Wert oder eine Richtlinie zurückgibt. IAM 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.

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 Emittenten und die Zielgruppen für einen Autorisierer an. JWT Weitere Informationen finden Sie JWTConfigurationin der API Gateway Version API 2-Referenz. Wird nur unterstützt für HTTPAPIs.

identityValidationExpression string

Ein regulärer Ausdruck für die Validierung des Tokens als eingehende Identität. Beispiel: "^x-[a-z]+". Wird nur für TOKEN Autorisierer für unterstützt. REST 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 dieCOGNITO_USER_POOLS.

x-amazon-apigateway-authorizer Beispiele für REST APIs

Das folgende Beispiel für offene API Sicherheitsdefinitionen spezifiziert einen Lambda-Autorisierer vom Typ „Token“ mit dem Namen. 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 } } }

Der folgende API Open-Operation-Objektausschnitt legt fest, GET /http dass der vorherige Lambda-Autorisierer verwendet wird.

"/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 offene API Sicherheitsdefinitionen spezifiziert einen Lambda-Autorisierer vom Typ „Anfrage“ 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 offene API Sicherheitsdefinitionen spezifiziert einen Lambda-Autorisierer vom Typ „Anfrage“ 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 Beispiel für offene API Sicherheitsdefinitionen spezifiziert einen API Gateway-Lambda-Autorisierer vom Typ „Anfrage“ mit einer einstufigen Variablen (stage) als Identitätsquelle.

"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 API Open-Sicherheitsdefinition spezifiziert einen Amazon Cognito Cognito-Benutzerpool als Autorisierer.

"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 Ausschnitt aus dem Objekt „APIOperation öffnen“ legt festGET /http, dass der vorherige Amazon Cognito Cognito-Benutzerpool als Autorisierer verwendet wird, ohne benutzerdefinierte Bereiche.

"/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

Das folgende Open API 3.0-Beispiel erstellt einen JWT Authorizer für einen HTTPAPI, der 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" } } }

Das folgende Open API 3.0-Beispiel erzeugt denselben JWT Authorizer wie das vorherige Beispiel. In diesem Beispiel wird jedoch die API openIdConnectUrl Open-Eigenschaft verwendet, um den Emittenten automatisch zu erkennen. 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-Autorisierer für einen. 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 } } }