

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 API Gateway
<a name="configure-api-gateway-lambda-authorization"></a>

Une fois votre fonction Lambda créée, vous allez la configurer en tant que mécanisme d’autorisation pour votre API. Vous allez ensuite configurer votre méthode pour invoquer votre mécanisme d’autorisation Lambda afin de déterminer si un appelant peut invoquer votre méthode. Vous pouvez créer une fonction Lambda dans le même compte, ou dans un autre compte, que celui dans lequel vous avez créé votre API.

Vous pouvez tester votre mécanisme d’autorisation Lambda à l’aide des outils intégrés de la console API Gateway ou de [Postman](https://www.postman.com/). Pour apprendre à utiliser Postman pour tester votre fonction de mécanisme d’autorisation Lambda, consultez [Appel d’une API avec un mécanisme d’autorisation Lambda API Gateway](call-api-with-api-gateway-lambda-authorization.md).

## Configuration d’un mécanisme d’autorisation Lambda (console)
<a name="configure-api-gateway-lambda-authorization-with-console"></a>

 La procédure suivante montre comment créer un mécanisme d’autorisation Lambda dans la console d’API REST API Gateway. Pour en savoir plus sur les différents types de mécanismes d’autorisation Lambda, consultez [Choix d’un type de mécanisme d’autorisation Lambda](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-choose). 

------
#### [ REQUEST authorizer ]

**Pour configurer un mécanisme d’autorisation Lambda `REQUEST`**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Sélectionnez une API, puis choisissez **Mécanismes d’autorisation**. 

1. Choisissez **Créer un mécanisme d'autorisation**. 

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

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

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

1. Laissez **Rôle d’appel Lambda** vide pour que la console d’API REST API Gateway définisse une politique basée sur les ressources. La politique autorise API Gateway à invoquer 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 à invoquer la fonction du mécanisme d’autorisation Lambda. Pour obtenir un exemple de rôle, consultez [Création d’un rôle IAM assumable](integrating-api-with-aws-services-lambda.md#api-as-lambda-proxy-setup-iam-role-policies). 

1. Pour **Charge utile d’événement Lambda**, sélectionnez **Effectuer une demande**.

1. 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**. 

1. 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 politique est activée, vous pouvez modifier la valeur **TTL**. Le fait de définir **TTL** sur zéro désactive la mise en cache de la politique.

   Si vous activez la mise en cache, votre mécanisme d’autorisation doit renvoyer une politique applicable à toutes les méthodes d’une API. Pour appliquer une politique spécifique à une méthode, utilisez les variables contextuelles `$context.path` et `$context.httpMethod`.

1. Choisissez **Créer un mécanisme d’autorisation**.

------
#### [ TOKEN authorizer ]

**Pour configurer un mécanisme d’autorisation Lambda `TOKEN`**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Sélectionnez une API, puis choisissez **Mécanismes d’autorisation**. 

1. Choisissez **Créer un mécanisme d'autorisation**. 

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

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

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

1. Laissez **Rôle d’appel Lambda** vide pour que la console d’API REST API Gateway définisse une politique basée sur les ressources. La politique autorise API Gateway à invoquer 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 à invoquer la fonction du mécanisme d’autorisation Lambda. Pour obtenir un exemple de rôle, consultez [Création d’un rôle IAM assumable](integrating-api-with-aws-services-lambda.md#api-as-lambda-proxy-setup-iam-role-policies). 

1. Pour **Charge utile d’événement Lambda**, sélectionnez **Jeton**.

1. Pour **Source de jeton**, entrez le nom de l'en-tête contenant le jeton d'autorisation. L’appelant doit inclure un en-tête portant ce nom pour envoyer le jeton d’autorisation au mécanisme d’autorisation Lambda.

1. (Facultatif) Pour la **validation du jeton**, entrez une RegEx déclaration. 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.

1. 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**. 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. Quand la mise en cache de la politique est activée, vous pouvez modifier la valeur **TTL**. Le fait de définir **TTL** sur zéro désactive la mise en cache de la politique. 

   Si vous activez la mise en cache, votre mécanisme d’autorisation doit renvoyer une politique 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**.

1. Choisissez **Créer un mécanisme d’autorisation**.

------

Une fois que vous avez créé votre mécanisme d’autorisation Lambda, vous pouvez le tester. La procédure suivante montre comment tester votre mécanisme d’autorisation Lambda.

------
#### [ REQUEST authorizer ]

**Pour tester un mécanisme d’autorisation Lambda `REQUEST`**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Sélectionnez le nom de votre mécanisme d’autorisation.

1. Sous **Tester le mécanisme d’autorisation**, saisissez une valeur pour votre source d’identité.

   Si vous utilisez l’[Exemple de fonction de mécanisme d’autorisation Lambda `REQUEST`](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-request-lambda-function-create), procédez comme suit :

   1. Sélectionnez **En-tête** et entrez **headerValue1**, puis choisissez **Ajouter un paramètre**.

   1. Sous **Type de source d’identité**, sélectionnez **Chaîne de requête** et entrez **queryValue1**, puis choisissez **Ajouter un paramètre**.

   1. Sous **Type de source d’identité**, sélectionnez **Variable d’étape** et entrez **stageValue1**.

   Vous ne pouvez pas modifier les variables contextuelles pour l’invocation de test, mais vous pouvez modifier le modèle d’événement de test **Mécanisme d’autorisation API Gateway** pour votre fonction Lambda. Vous pouvez ensuite tester la fonction de votre mécanisme d’autorisation Lambda avec des variables contextuelles modifiées. Pour plus d’informations, consultez [Testing Lambda functions in the console](https://docs.aws.amazon.com/lambda/latest/dg/testing-functions.html) dans le *Guide du développeur AWS Lambda *.

1. Choisissez **Tester le mécanisme d'autorisation**.

------
#### [ TOKEN authorizer ]

**Pour tester un mécanisme d’autorisation Lambda `TOKEN`**

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Sélectionnez le nom de votre mécanisme d’autorisation.

1. Sous **Tester le mécanisme d’autorisation**, saisissez une valeur pour votre jeton.

   Si vous utilisez l’[Exemple de fonction de mécanisme d’autorisation Lambda `TOKEN`](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-token-lambda-function-create), procédez comme suit :

   1. Pour **authorizationToken**, saisissez **allow**.

1. Choisissez **Tester le mécanisme d'autorisation**.

    Si votre mécanisme d’autorisation Lambda refuse avec succès une demande dans l’environnement de test, le test répond par une réponse HTTP `200 OK`. En revanche, en dehors de l’environnement de test, API Gateway renvoie une réponse HTTP `403 Forbidden` et la demande de méthode échoue.

------

## Configuration d’un mécanisme d’autorisation Lambda (AWS CLI)
<a name="configure-api-gateway-lambda-authorization-cli"></a>

La commande [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html) suivante montre comment créer un mécanisme d’autorisation Lambda à l’aide de l’ AWS CLI.

------
#### [ REQUEST authorizer ]

La commande [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html) suivante crée un mécanisme d’autorisation `REQUEST`, et utilise l’en-tête `Authorizer` et la variable de contexte `accountId` comme sources d’identité :

```
aws apigateway create-authorizer \
    --rest-api-id 1234123412 \
    --name 'First_Request_Custom_Authorizer' \
    --type REQUEST \
    --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \
    --identity-source 'method.request.header.Authorization,context.accountId' \
    --authorizer-result-ttl-in-seconds 300
```

------
#### [ TOKEN authorizer ]

La commande [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html) suivante crée un mécanisme d’autorisation `TOKEN`, et utilise l’en-tête `Authorization` comme source d’identité :

```
aws apigateway create-authorizer \
    --rest-api-id 1234123412 \
    --name 'First_Token_Custom_Authorizer' \
    --type TOKEN \
    --authorizer-uri 'arn:aws:apigateway:us-west-2:lambda:path/2015-03-31/functions/arn:aws:lambda:us-west-2:123412341234:function:customAuthFunction/invocations' \
    --identity-source 'method.request.header.Authorization' \
    --authorizer-result-ttl-in-seconds 300
```

------

Une fois que vous avez créé votre mécanisme d’autorisation Lambda, vous pouvez le tester. La [test-invoke-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-authorizer.html)commande suivante teste un autorisateur Lambda :

```
aws apigateway test-invoke-authorizer --rest-api-id 1234123412 \
   --authorizer-id efg1234 \
   --headers Authorization='Value'
```

## Configuration d’une méthode pour utiliser un mécanisme d’autorisation Lambda (console)
<a name="configure-api-gateway-lambda-authorization-method-console"></a>

Après avoir configuré votre mécanisme d’autorisation Lambda, vous devez l’attacher à une méthode pour votre API. Si votre mécanisme d’autorisation utilise la mise en cache des autorisations, assurez-vous de mettre à jour la politique afin qu’elle contrôle l’accès à la nouvelle méthode.

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

1. Connectez-vous à la console API Gateway à l'adresse [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Sélectionnez une API.

1. Choisissez **Ressources**, puis sélectionnez une nouvelle méthode ou une méthode existante.

1. Dans l’onglet **Demande de méthode**, sous **Paramètres de requête de méthode**, choisissez **Modifier**. 

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

1.  (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. Pour **Nom**, saisissez le nom de l’en-tête qui correspond au nom **Source du 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`. 

1. Choisissez **Enregistrer**.

1. Sélectionnez **Deploy API** pour déployer l’API dans une étape. 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**.

## Configuration d’une méthode pour utiliser un mécanisme d’autorisation Lambda (AWS CLI)
<a name="configure-api-gateway-lambda-authorization-method-cli"></a>

Après avoir configuré votre mécanisme d’autorisation Lambda, vous devez l’attacher à une méthode pour votre API. Vous pouvez créer une méthode ou utiliser une opération de correctif pour associer un mécanisme d’autorisation à une méthode existante. Si votre mécanisme d’autorisation utilise la mise en cache des autorisations, assurez-vous de mettre à jour la politique afin qu’elle contrôle l’accès à la nouvelle méthode.

La commande [put-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method.html) suivante crée une méthode utilisant un mécanisme d’autorisation Lambda :

```
aws apigateway put-method --rest-api-id 1234123412 \
  --resource-id a1b2c3 \
  --http-method PUT \
  --authorization-type CUSTOM \
  --authorizer-id efg1234
```

La commande [update-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-method.html) suivante met à jour une méthode existante afin qu’elle utilise un mécanisme d’autorisation Lambda :

```
aws apigateway update-method \
    --rest-api-id 1234123412 \
    --resource-id a1b2c3 \
    --http-method PUT \
    --patch-operations op="replace",path="/authorizationType",value="CUSTOM" op="replace",path="/authorizerId",value="efg1234"
```