x-amazon-apigateway-authtype-Eigenschaft
Bei REST-APIs kann diese Erweiterung verwendet werden, um einen benutzerdefinierten Typ eines Lambda-Genehmigers zu definieren. In diesem Fall liegt der Wert in Freiform vor. Beispielsweise kann eine API mehrere Lambda-Genehmiger haben, die verschiedene interne Schemata verwenden. Sie können diese Erweiterung verwenden, um das interne Schema eines Lambda-Genehmigers zu identifizieren.
In HTTP-APIs und REST-APIs kann es häufiger auch verwendet werden, um die IAM-Genehmigung für mehrere Vorgänge zu definieren, die dasselbe Sicherheitsschema verwenden. In diesem Fall ist der Begriff awsSigv4
ein reservierter Begriff, zusammen mit jedem Begriff, dem ein Präfix aws
vorangestellt ist.
Diese Erweiterung gilt für das Sicherheitsschema des Typs apiKey
in OpenAPI 2
x-amazon-apigateway-authtype-Beispiel
Das folgende OpenAPI 3-Beispiel definiert die IAM-Genehmigung für mehrere Ressourcen in einer REST-API oder HTTP API:
{ "openapi" : "3.0.1", "info" : { "title" : "openapi3", "version" : "1.0" }, "paths" : { "/operation1" : { "get" : { "responses" : { "default" : { "description" : "Default response" } }, "security" : [ { "sigv4Reference" : [ ] } ] } }, "/operation2" : { "get" : { "responses" : { "default" : { "description" : "Default response" } }, "security" : [ { "sigv4Reference" : [ ] } ] } } }, "components" : { "securitySchemes" : { "sigv4Reference" : { "type" : "apiKey", "name" : "Authorization", "in" : "header", "x-amazon-apigateway-authtype": "awsSigv4" } } } }
Das folgende OpenAPI 3-Beispiel definiert einen Lambda-Genehmiger mit einem benutzerdefinierten Schema für eine REST-API:
{ "openapi" : "3.0.1", "info" : { "title" : "openapi3 for REST API", "version" : "1.0" }, "paths" : { "/protected-by-lambda-authorizer" : { "get" : { "responses" : { "200" : { "description" : "Default response" } }, "security" : [ { "myAuthorizer" : [ ] } ] } } }, "components" : { "securitySchemes" : { "myAuthorizer" : { "type" : "apiKey", "name" : "Authorization", "in" : "header", "x-amazon-apigateway-authorizer" : { "identitySource" : "method.request.header.Authorization", "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", "authorizerResultTtlInSeconds" : 300, "type" : "request", "enableSimpleResponses" : false }, "x-amazon-apigateway-authtype": "Custom scheme with corporate claims" } } }, "x-amazon-apigateway-importexport-version" : "1.0" }