Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
x-amazon-apigateway-authorizer objet
Définit un autorisateur Lambda, un groupe d'utilisateurs Amazon Cognito ou un JWT autorisateur à appliquer pour autoriser les appels de méthodes dans Gateway. API Cette extension s'applique à la définition de sécurité dans Open API 2
Nom de la propriété | Type | Description |
---|---|---|
type |
string |
Type du mécanisme d'autorisation. Cette propriété est requise. Pour RESTAPIs, spécifiez Pour HTTPAPIs, spécifiez |
authorizerUri |
string |
L'identifiant de ressource uniforme (URI) de la fonction Lambda de l'autorisateur. La syntaxe est la suivante :
|
authorizerCredentials |
string |
Les informations d'identification requises pour invoquer l'autorisateur, le cas échéant, sous la forme d'un rôle ARN d'IAMexécution. Par exemple, « arn:aws:iam : : |
authorizerPayloadFormatVersion |
string |
Pour HTTPAPIs, spécifie le format des données que API Gateway envoie à un autorisateur Lambda et la manière dont API Gateway interprète la réponse de Lambda. Pour en savoir plus, consultez Version du format de charge utile. |
enableSimpleResponses |
Boolean |
Pour HTTPAPIs, indique si un |
identitySource |
string |
Liste (séparée par des virgules) des expressions de mappage des paramètres de la demande en tant que source d'identité. Applicable pour le mécanisme d'autorisation de types |
jwtConfiguration |
Object |
Spécifie l'émetteur et le public d'un JWT autorisateur. Pour en savoir plus, consultez le JWTConfigurationmanuel de API référence de la version 2 de API Gateway. Pris en charge uniquement pour HTTPAPIs. |
identityValidationExpression |
string |
Expression régulière permettant de valider le jeton en tant qu'identité entrante. Par exemple, « ^x-[a-z]+ ». Pris en charge uniquement pour les |
authorizerResultTtlInSeconds |
string |
Nombre de secondes pendant lesquelles le résultat du mécanisme d'autorisation est mis en cache. |
providerARNs |
Tableau d'éléments string |
Une liste du groupe d'utilisateurs Amazon Cognito ARNs pour le. |
x-amazon-apigateway-authorizer exemples pour REST APIs
L'exemple API de définitions de sécurité ouvertes suivant spécifie un autorisateur Lambda du type « jeton » et nommé. 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 } } }
L'extrait d'objet Open API operation suivant définit le GET /http
pour qu'il utilise l'autorisateur Lambda précédent.
"/http" : { "get" : { "responses" : { }, "security" : [ { "test-authorizer" : [ ] } ], "x-amazon-apigateway-integration" : { "type" : "http", "responses" : { "default" : { "statusCode" : "200" } }, "httpMethod" : "GET", "uri" : "http://api.example.com" } } }
L'exemple API de définitions de sécurité ouvertes suivant spécifie un autorisateur Lambda du type « request », avec un seul paramètre d'en-tête (auth
) comme source d'identité. L'exemple securityDefinitions
est nommé 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 } } }
L'exemple API de définitions de sécurité ouvertes suivant spécifie un autorisateur Lambda du type « request », avec un en-tête (HeaderAuth1
) et un paramètre de chaîne de requête QueryString1
comme sources d'identité.
"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 } } }
L'exemple API de définitions de sécurité ouvertes suivant spécifie un autorisateur API Gateway Lambda du type « request », avec une variable d'étape unique (stage
) comme source d'identité.
"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 } } }
L'exemple de définition API de sécurité ouverte suivant spécifie un groupe d'utilisateurs Amazon Cognito en tant qu'autorisateur.
"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" ] } }
L'extrait d'objet Open API operation suivant définit le groupe GET /http
d'utilisateurs Amazon Cognito précédent comme autorisateur, sans étendue personnalisée.
"/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 exemples pour HTTP APIs
L'exemple Open API 3.0 suivant crée un JWT autorisateur pour un utilisateur HTTP API qui utilise Amazon Cognito comme fournisseur d'identité, avec Authorization
l'en-tête comme source d'identité.
"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" } } }
L'exemple Open API 3.0 suivant produit le même JWT autorisateur que l'exemple précédent. Toutefois, cet exemple utilise la API openIdConnectUrl
propriété Open pour détecter automatiquement l'émetteur. Le openIdConnectUrl
doit être entièrement formé.
"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" } } }
L'exemple suivant crée un autorisateur Lambda pour un. HTTP API Cet exemple de mécanisme d'autorisation utilise l'en-tête Authorization
comme source d'identité. Le mécanisme d'autorisation utilise la version de format de charge utile 2.0
et renvoie une valeur booléenne, car enableSimpleResponses
est défini sur true
.
"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 } } }