Configuration d'un mécanisme d'autorisation Lambda à l'aide de la console API Gateway - Amazon API Gateway

Configuration d'un mécanisme d'autorisation Lambda à l'aide de la console API Gateway

Après avoir créé la fonction Lambda et vérifié qu'elle fonctionne, vous pouvez configurer le mécanisme d'autorisation Lambda API Gateway (anciennement appelé mécanisme d'autorisation personnalisée) dans la console API Gateway en effectuant la procédure suivante.

Pour configurer un mécanisme d'autorisation Lambda à l'aide de la console API Gateway

  1. Connectez-vous à la console API Gateway.

  2. Créez une API ou sélectionnez une API existante et choisissez Authorizers sous l'entrée relative à cette API.

  3. Choisissez Créer une nouveau mécanisme d'autorisation.

  4. Pour l'option Create Authorizer, saisissez le nom d'un mécanisme d'autorisation dans le champ de saisie Name.

  5. Dans Type, choisissez l'option Lambda.

  6. Pour Lambda Function (Fonction Lambda), choisissez une région, puis choisissez une fonction de mécanisme d'autorisation Lambda disponible située dans votre compte.

  7. Laissez Lambda Invoke Role (Rôle d'appel Lambda) vide pour que la console API Gateway définisse une stratégie basée sur les ressources. La stratégie accorde des autorisations API Gateway pour appeler la fonction Lambda du mécanisme d'autorisation. Vous pouvez également choisir de saisir le nom d'un rôle IAM pour autoriser API Gateway à appeler la fonction Lambda du mécanisme d'autorisation. Pour voir un exemple de rôle, consultez Création d'un rôle IAM assumable.

    Si vous choisissez de laisser la console API Gateway définir la stratégie basée sur les ressources, la boîte de dialogue Add Permission to Lambda Function (Ajouter une autorisation à une fonction Lambda) s'affiche. Choisissez OK. Une fois l'autorisation Lambda créée, vous pouvez la tester avec les valeurs de jeton d'autorisation appropriées pour vérifier qu'elle fonctionne comme prévu.

  8. Pour Lambda Event Payload (Charge utile d'événement Lambda), choisissez Token (Jeton) pour un mécanisme d'autorisation TOKEN ou Request (Demande) pour un mécanisme d'autorisation REQUEST. (Ceci équivaut à définir la propriété type sur TOKEN ou REQUEST.)

  9. Selon le choix effectué à l'étape précédente, réalisez l'une des actions suivantes :

    1. Pour les options Token, procédez comme suit :

      • Saisissez le nom d'un en-tête dans Token Source. Le client d'API doit inclure un en-tête portant ce nom pour envoyer le jeton d'autorisation au mécanisme d'autorisation Lambda.

      • Le cas échéant, indiquez une instruction RegEx dans le champ de saisie Token Validation. API Gateway effectue la validation initiale du jeton d'entrée en fonction de cette expression et appelle le mécanisme d'autorisation quand la validation aboutit. Cela permet de limiter le risque de facturation de jetons non valides.

      • Pour Authorization Caching, activez ou désactivez l'option Enabled, selon que vous voulez mettre en cache la stratégie d'autorisation générée par le mécanisme d'autorisation ou non. Quand la mise en cache de la stratégie est activée, vous pouvez choisir de remplacer la valeur TTL. Le fait de définir TTL sur zéro désactive la mise en cache de la stratégie. Si la mise en cache de la stratégie est activée, le nom de l'en-tête spécifié dans Token Source devient la clé du cache.

        Note

        La valeur TTL par défaut est de 300 secondes. Actuellement, sa valeur maximale est de 3 600 secondes ; elle ne peut pas être augmentée.

    2. Pour l'option Request, effectuez les opérations suivantes :

      • Pour Identity Sources, saisissez un nom de paramètre de demande pour le type de paramètre choisi. Les types de paramètre pris en charge sont Header, Query String, Stage Variable et Context. Pour ajouter d'autres sources d'identité, choisissez Add Identity Source.

        API Gateway utilise les sources d'identité spécifiées comme clé de mise en cache du mécanisme d'autorisation de la demande. Lorsque la mise en cache est activée, API Gateway appelle la fonction Lambda du mécanisme d'autorisation uniquement si toutes les sources d'identité spécifiées sont présentes lors de l'exécution. Si une source d'identité spécifiée est absente, nulle ou vide, API Gateway renvoie une réponse 401 Unauthorized sans appeler la fonction Lambda du mécanisme d'autorisation.

        Lorsque plusieurs sources d'identité sont définies, elles sont toutes utilisées pour obtenir la clé du cache du mécanisme d'autorisation. Si une partie de la clé du cache est modifiée, le mécanisme d'autorisation ignore le document de la stratégie mis en cache et en génère un nouveau.

      • Pour Authorization Caching, activez ou désactivez l'option Enabled, selon que vous voulez mettre en cache la stratégie d'autorisation générée par le mécanisme d'autorisation ou non. Quand la mise en cache de la stratégie est activée, vous pouvez choisir de remplacer la valeur TTL par défaut (300). La configuration TTL=0 désactive la mise en cache de la stratégie.

        Lorsque la mise en cache est désactivée, il n'est pas nécessaire de spécifier une source d'identité.

    Note

    Pour activer la mise en cache, votre mécanisme d'autorisation doit renvoyer une stratégie applicable à toutes les méthodes d'une API. Pour appliquer une stratégie spécifique à la méthode, vous pouvez affecter la valeur zéro à la durée de vie pour désactiver la mise en cache de stratégie pour l'API.

  10. Choisissez Create (Créer) pour créer un mécanisme d'autorisation Lambda pour l'API choisie.

  11. Une fois le mécanisme d'autorisation créé pour l'API, vous pouvez, si vous le souhaitez, appeler le mécanisme pour le tester avant qu'il soit configuré pour une méthode.

    Pour le mécanisme d'autorisation TOKEN, saisissez un jeton valide dans le champ de saisie textuelle Identity token et sélectionnez Test. Le jeton est transmis à la fonction Lambda comme l'en-tête que vous avez spécifié dans le paramètre Identity token source (Source du jeton d'identité) du mécanisme d'autorisation.

    Pour le mécanisme d'autorisation REQUEST, saisissez des paramètres de demande valides qui correspondent aux sources d'identité spécifiées, puis sélectionnez Test.

    En plus de la console API Gateway, vous pouvez utiliser l'interface de ligne de commande AWS ou un kit SDK AWS pour API Gateway afin de tester l'appel d'un mécanisme d'autorisation. Pour utiliser l'interface de ligne de commande AWS, veuillez consulter test-invoke-authorizer.

    Note

    Les processus test-invoke pour les exécutions de méthodes et les mécanismes d'autorisation sont indépendants.

    Pour tester l'appel d'une méthode à l'aide de la console API Gateway, veuillez consulter Utilisez la console pour tester une méthode de l'API REST.. Pour tester l'appel d'une méthode à l'aide de l'interface de ligne de commande AWS, veuillez consulter test-invoke-method.

    Pour tester l'appel d'une méthode et d'un mécanisme d'autorisation configuré, déployez l'API, puis utilisez cURL ou Postman pour appeler la méthode, en fournissant le jeton requis ou les paramètres de la demande.

La procédure suivante montre comment configurer une méthode d'API pour utiliser le mécanisme d'autorisation Lambda.

Pour configurer une méthode d'API pour utiliser un mécanisme d'autorisation Lambda

  1. Revenez à l'API. Créez une méthode ou choisissez une méthode existante. Si nécessaire, créez une ressource.

  2. Dans le volet Method Execution, sélectionnez le lien Method Request.

  3. Sous Settings (Paramètres), développez la liste déroulante Authorization (Autorisation) pour sélectionner le mécanisme d'autorisation Lambda que vous venez de créer (par exemple, myTestApiAuthorizer), puis sélectionnez l'icône représentant une coche pour enregistrer votre choix.

  4. Toujours sur la page Method Request (Demande de méthode), vous pouvez éventuellement sélectionner Add header (Ajouter un en-tête) si vous souhaitez également transmettre le jeton d'autorisation au backend. Dans Name (Nom), saisissez un nom d'en-tête qui correspond au nom de Token Source (Source de jeton) que vous avez spécifié lorsque vous avez créé le mécanisme d'autorisation Lambda pour l'API. Sélectionnez ensuite l'icône représentant une coche pour enregistrer les paramètres. Cette étape ne s'applique pas aux mécanismes d'autorisation REQUEST.

  5. Sélectionnez Deploy API pour déployer l'API jusqu'à une étape. Notez la valeur Invoke URL. Vous en aurez besoin lors de l'appel de l'API. Pour un mécanisme d'autorisation REQUEST utilisant les variables d'étape, vous devez également définir les variables d'étape requises et spécifier leurs valeurs dans Stage Editor (Éditeur d'étape).