x-amazon-apigateway-authorizer objet - APIPasserelle Amazon

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 et Open API 3.

Nom de la propriété Type Description
type string

Type du mécanisme d'autorisation. Cette propriété est requise.

Pour RESTAPIs, spécifiez token un autorisateur avec l'identité de l'appelant intégrée dans un jeton d'autorisation. Spécifiez request pour un mécanisme d'autorisation avec l'identité de l'appelant contenue dans les paramètres de la demande. Spécifiez cognito_user_pools un autorisateur qui utilise un groupe d'utilisateurs Amazon Cognito pour contrôler l'accès à votre. API

Pour HTTPAPIs, spécifiez request un autorisateur Lambda avec l'identité de l'appelant contenue dans les paramètres de demande. Spécifiez jwt un JWT autorisateur.

authorizerUri string

L'identifiant de ressource uniforme (URI) de la fonction Lambda de l'autorisateur. La syntaxe est la suivante :

"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

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 : :account-id:IAM_role".

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 request autorisateur renvoie une valeur booléenne ou une politique. IAM Prise en charge uniquement pour les mécanismes d'autorisation avec un authorizerPayloadFormatVersion de 2.0. Si cette option est activée, la fonction du mécanisme d'autorisation Lambda renvoie une valeur booléenne. Pour en savoir plus, consultez la section Réponse de la fonction Lambda pour le format 2.0.

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 request et jwt uniquement.

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 TOKEN autorisateurs pour RESTAPIs.

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. COGNITO_USER_POOLS

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 } } }