Configuration d'un mécanisme d'autorisation Lambda à l'aide de la console 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.

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é Custom Authorizer) 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, puis choisissez Mécanismes d’autorisation.

  3. Choisissez Créer un mécanisme d'autorisation.

  4. Pour Nom du mécanisme d’autorisation, entrez un nom pour le mécanisme d’autorisation.

  5. Pour Type de mécanisme d'autorisation, sélectionnez Lambda.

  6. Pour la fonction Lambda, sélectionnez l' Région AWS endroit où vous avez créé votre fonction d'autorisation Lambda, puis entrez le nom de la fonction.

  7. Laissez Rôle d'appel Lambda vide pour que la console API Gateway définisse une politique 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 d'entrer 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.

  8. Pour Charge utile d'événement Lambda, sélectionnez Jeton pour un mécanisme d'autorisation TOKEN ou Effectuer une 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 l'option Jeton, procédez comme suit :

      • Pour Source de jeton, entrez le nom de l'en-tête contenant le jeton d'autorisation. 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.

      • Pour la validation du jeton, entrez éventuellement une RegEx instruction. 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 contribue à réduire le nombre d'appels à votre API.

      • Pour mettre en cache la politique d'autorisation générée par le mécanisme d'autorisation, maintenez active l'option Mise en cache des autorisations. 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 politique. Si la mise en cache de la politique est activée, le nom de l'en-tête spécifié dans Source de jeton devient la clé de cache. Si plusieurs valeurs sont transmises à cet en-tête dans la demande, toutes les valeurs deviennent la clé de cache, l'ordre étant préservé.

        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 Type de source d'identité, sélectionnez un type de paramètre. Les types de paramètre pris en charge sont Header, Query string, Stage variable et Context. Pour ajouter des sources d'identité supplémentaires, choisissez Ajouter un paramètre.

      • Pour mettre en cache la politique d'autorisation générée par le mécanisme d'autorisation, maintenez active l'option Mise en cache des autorisations. 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 politique.

        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. Si un en-tête à plusieurs valeurs est transmis dans la demande, toutes les valeurs font partie de la clé de cache, l'ordre étant préservé.

      • Lorsque la mise en cache est désactivée, il n'est pas nécessaire de spécifier une source d'identité. API Gateway transmet directement la demande à la fonction Lambda de l'autorisateur.

    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 politique spécifique à la méthode, vous pouvez désactiver Mise en cache des autorisations.

  10. Choisissez Créer un mécanisme d'autorisation.

  11. Une fois le mécanisme d'autorisation créé pour l'API, vous pouvez le tester avant qu'il soit configuré sur une méthode. Pour tester un mécanisme d'autorisation, sélectionnez son nom.

    1. Pour le mécanisme d'autorisation TOKEN, sous Valeur de jeton, entrez un jeton valide. Choisissez Tester le mécanisme d'autorisation. Le jeton sera transmis à la fonction Lambda comme l'en-tête que vous avez spécifié dans le paramètre Source du jeton du mécanisme d'autorisation.

    2. Pour le mécanisme d'autorisation REQUEST, sous Type de source d'identité, sélectionnez un type de paramètre et entrez une valeur. Pour ajouter d'autres paramètres, sélectionnez Ajouter un paramètre. Choisissez Tester le mécanisme d'autorisation.

    Outre l'utilisation de la console API Gateway, vous pouvez utiliser AWS CLI un AWS SDK pour API Gateway afin de tester l'appel d'un autorisateur. Pour ce faire, utilisez le AWS CLI, voir 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'invocation d'une méthode à l'aide du AWS CLI, voir 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. Sélectionnez Ressources. Choisissez une nouvelle méthode ou choisissez une méthode existante. Si nécessaire, créez une ressource.

  2. Dans l'onglet Demande de méthode, sous Paramètres de demande de méthode, choisissez Modifier.

  3. Pour Mécanisme d'autorisation, dans le menu déroulant, sélectionnez le mécanisme d'autorisation Lambda que vous venez de créer.

  4. (Facultatif) Si vous souhaitez transmettre le jeton d'autorisation au backend, choisissez En-têtes de demande HTTP. Choisissez Ajouter un en-tête, puis ajoutez le nom de l'en-tête d'autorisation. Dans Nom, entrez le nom de l'en-tête qui correspond au nom de Source de jeton que vous avez spécifié lorsque vous avez créé le mécanisme d'autorisation Lambda pour l'API. Cette étape ne s'applique pas aux mécanismes d'autorisation REQUEST.

  5. Choisissez Enregistrer.

  6. 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 la page Étapes.