Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Sortie d’un mécanisme d’autorisation Lambda API Gateway

Mode de mise au point
Sortie d’un mécanisme d’autorisation Lambda API Gateway - Amazon API Gateway

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.

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.

La sortie de la fonction du mécanisme d’autorisation Lambda est un objet de type dictionnaire, qui doit inclure l’identifiant principal (principalId) et un document de politique (policyDocument) contenant la liste des déclarations de politique. La sortie peut également inclure un mappage context contenant des paires clé-valeur. Si l’API applique un plan d’utilisation (apiKeySource est défini sur AUTHORIZER), la fonction du mécanisme d’autorisation Lambda doit renvoyer l’une des clés d’API du plan d’utilisation comme valeur de la propriété usageIdentifierKey.

Voici un exemple de sortie de ce type.

{   "principalId": "yyyyyyyy", // The principal user identification associated with the token sent by the client. "policyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "execute-api:Invoke", "Effect": "Allow|Deny", "Resource": "arn:aws:execute-api:{regionId}:{accountId}:{apiId}/{stage}/{httpVerb}/[{resource}/[{child-resources}]]" } ] }, "context": { "stringKey": "value", "numberKey": "1", "booleanKey": "true" }, "usageIdentifierKey": "{api-key}" }

Dans cet exemple, une déclaration de politique indique s’il faut permettre ou interdire (Effect) au service d’exécution API Gateway d’appeler (Action) la méthode d’API spécifiée (Resource). Vous pouvez utiliser un caractère générique (*) pour spécifier un type de ressource (méthode). Pour plus d’informations sur le paramétrage des politiques valides pour appeler une API, consultez Référence de déclaration de politique IAM pour l’exécution des API dans API Gateway.

Pour un ARN de méthode activé par autorisation, par exemple arn:aws:execute-api:{regionId}:{accountId}:{apiId}/{stage}/{httpVerb}/[{resource}/[{child-resources}]], la longueur maximale est de 1 600 octets. Les valeurs de paramètre de chemin, dont la taille est déterminée au moment de l’exécution, peuvent entraîner un dépassement de limite de la longueur de l’ARN. Dans ce cas, le client API reçoit une réponse 414 Request URI too long.

De plus, l’ARN de ressources, comme indiqué dans la sortie de déclaration de politique par l’autorisateur, est actuellement limitée à 512 caractères. Pour cette raison, vous ne devez pas utiliser d’URI avec un jeton JWT d’une longueur significative dans une URI de demande. Vous pouvez plutôt transmettre le jeton JWT en toute sécurité dans un en-tête de demande.

Vous pouvez accéder à la valeur principalId d’un modèle de mappage à l’aide de la variable $context.authorizer.principalId. C’est utile si vous souhaitez transmettre la valeur au backend. Pour de plus amples informations, veuillez consulter $contextVariables pour les modèles de données, les autorisateurs, les modèles de mappage et la journalisation des CloudWatch accès.

Vous pouvez accéder à la valeur stringKey, numberKey ou booleanKey (par exemple, "value", "1" ou "true") du mappage context d’un modèle de mappage en appelant $context.authorizer.stringKey, $context.authorizer.numberKey ou $context.authorizer.booleanKey, respectivement. Les valeurs renvoyées sont toutes obtenues à l’aide de stringify. Notez que vous ne pouvez pas définir un objet ou un tableau JSON comme valeur valide d’une clé dans le mappage context.

Vous pouvez utiliser le mappage context pour renvoyer les informations d’identification mises en cache depuis le mécanisme d’autorisation vers le backend, via un modèle de mappage de demande d’intégration. En exploitant les informations d’identification mises en cache, le backend offre une meilleure expérience utilisateur et évite ainsi d’accéder aux clés secrètes et d’ouvrir des jetons d’autorisation pour chaque demande.

Pour l’intégration du proxy Lambda, API Gateway transmet l’objet context depuis un mécanisme d’autorisation Lambda directement à la fonction Lambda du backend via l’entrée event. Vous pouvez récupérer les paires clé-valeur context de la fonction Lambda en appelant $event.requestContext.authorizer.key.

{api-key} représente une clé d’API dans le plan d’utilisation de l’étape d’API. Pour de plus amples informations, veuillez consulter Plans d'utilisation et clés d'API pour REST APIs dans API Gateway.

L’exemple de mécanisme d’autorisation Lambda renvoie l’exemple de sortie suivant. L'exemple de sortie contient une déclaration de politique visant à bloquer (Deny) les appels à la GET méthode pour l'devétape d'une API (ymy8tbxw7b) d'un AWS compte (123456789012).

{ "principalId": "user", "policyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "execute-api:Invoke", "Effect": "Deny", "Resource": "arn:aws:execute-api:us-west-2:123456789012:ymy8tbxw7b/dev/GET/" } ] } }
ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.