

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Configurazione di un sistema di autorizzazione Lambda di Gateway API
<a name="configure-api-gateway-lambda-authorization"></a>

Dopo aver creato una funzione Lambda, configuri la funzione Lambda come sistema di autorizzazione per la tua API. Quindi configuri il metodo per invocare il sistema di autorizzazione Lambda per stabilire se un chiamante può invocare il tuo metodo. Puoi creare una funzione Lambda nello stesso account o in un account diverso da quello da cui hai creato l'API.

Puoi testare il sistema di autorizzazione Lambda utilizzando gli strumenti integrati nella console Gateway API o utilizzando [Postman](https://www.postman.com/). Per istruzioni su come utilizzare Postman per testare la funzione del sistema di autorizzazione Lambda, consulta [Chiamata di un'API con il sistema di autorizzazione Lambda di Gateway API](call-api-with-api-gateway-lambda-authorization.md).

## Configurazione di un sistema di autorizzazione Lambda (console)
<a name="configure-api-gateway-lambda-authorization-with-console"></a>

 La procedura seguente illustra come creare un sistema di autorizzazione Lambda nella console REST API di Gateway API. Per ulteriori informazioni sui diversi tipi di sistemi di autorizzazione Lambda, consulta [Scelta di un tipo di sistema di autorizzazione Lambda](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-choose). 

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

**Configurazione di un sistema di autorizzazione Lambda `REQUEST`**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Seleziona un'API, quindi scegli **Autorizzazioni**. 

1. Scegli **Crea autorizzazioni**. 

1. In **Nome del provider di autorizzazioni**, immetti il nome di un provider di autorizzazioni.

1. In **Tipo di autorizzazione**, seleziona **Lambda**. 

1. Per la **funzione Lambda**, seleziona il Regione AWS luogo in cui hai creato la funzione di autorizzazione Lambda, quindi inserisci il nome della funzione.

1. Non specificare nulla in **Ruolo di richiamo Lambda** per consentire alla console REST API di Gateway API di impostare una policy basata sulle risorse. La policy concede a Gateway API le autorizzazioni per invocare la funzione del sistema di autorizzazione Lambda. Puoi anche scegliere di immettere il nome di un ruolo IAM per consentire a Gateway API di invocare la funzione del sistema di autorizzazione Lambda. Per un ruolo di esempio, consulta [Creazione di un ruolo IAM prevedibile](integrating-api-with-aws-services-lambda.md#api-as-lambda-proxy-setup-iam-role-policies). 

1. In **Payload evento Lambda**, scegli **Richiesta**.

1. In **Tipo di origine identità**, seleziona un tipo di parametro. I tipi di parametri supportati sono `Header`, `Query string`, `Stage variable` e `Context`. Per aggiungere altre origini di identità, scegli **Aggiungi parametro**. 

1. Per memorizzare nella cache la policy di autorizzazione generata dalla funzione di autorizzazione, attiva l'opzione **Autorizzazione caching**. Quando il caching delle policy è abilitato, puoi modificare il valore **TTL**. L'impostazione dell'opzione **TTL** su zero disabilita la memorizzazione nella cache delle policy.

   Per abilitare il caching, il sistema di autorizzazione deve restituire una policy applicabile a tutti i metodi di un'API. Per applicare una policy specifica del metodo, utilizza le variabili di contesto `$context.path` e `$context.httpMethod`.

1. Scegli **Crea autorizzazioni**.

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

**Configurazione di un sistema di autorizzazione Lambda `TOKEN`**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Seleziona un'API, quindi scegli **Autorizzazioni**. 

1. Scegli **Crea autorizzazioni**. 

1. In **Nome del provider di autorizzazioni**, immetti il nome di un provider di autorizzazioni.

1. In **Tipo di autorizzazione**, seleziona **Lambda**. 

1. Per la **funzione Lambda**, seleziona il Regione AWS luogo in cui hai creato la funzione di autorizzazione Lambda, quindi inserisci il nome della funzione.

1. Non specificare nulla in **Ruolo di richiamo Lambda** per consentire alla console REST API di Gateway API di impostare una policy basata sulle risorse. La policy concede a Gateway API le autorizzazioni per invocare la funzione del sistema di autorizzazione Lambda. Puoi anche scegliere di immettere il nome di un ruolo IAM per consentire a Gateway API di invocare la funzione del sistema di autorizzazione Lambda. Per un ruolo di esempio, consulta [Creazione di un ruolo IAM prevedibile](integrating-api-with-aws-services-lambda.md#api-as-lambda-proxy-setup-iam-role-policies). 

1. In **Payload evento Lambda**, scegli **Token**.

1. In **Origine token**, immetti il nome dell'intestazione contenente il token di autorizzazione. Il client API deve includere un'intestazione con questo nome per inviare il token di autorizzazione al sistema di autorizzazione Lambda.

1. (Facoltativo) Per la **convalida del token**, inserisci una dichiarazione. RegEx API Gateway esegue la convalida iniziale del token di input per l'espressione e, se la convalida ha esito positivo, richiama l'autorizzazione.

1. Per memorizzare nella cache la policy di autorizzazione generata dalla funzione di autorizzazione, attiva l'opzione **Autorizzazione caching**. Quando la memorizzazione della policy nella cache è abilitata, il nome dell'intestazione specificato in **Origine token** diventa la chiave della cache. Quando il caching delle policy è abilitato, puoi modificare il valore **TTL**. L'impostazione dell'opzione **TTL** su zero disabilita la memorizzazione nella cache delle policy. 

   Per abilitare il caching, il sistema di autorizzazione deve restituire una policy applicabile a tutti i metodi di un'API. Per applicare policy specifiche del metodo, puoi disattivare l'opzione **Memorizzazione nella cache dell'autorizzazione**.

1. Scegli **Crea autorizzazioni**.

------

Dopo aver creato il sistema di autorizzazione Lambda, puoi testarlo. La procedura seguente illustra come testare il sistema di autorizzazione Lambda.

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

**Per testare un sistema di autorizzazione Lambda `REQUEST`**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Seleziona il nome del sistema di autorizzazione.

1. In **Testa autorizzazioni**, inserisci un valore per la tua origine di identità.

   Se utilizzi [Esempio di funzione del sistema di autorizzazione `REQUEST` Lambda](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-request-lambda-function-create), procedi nel modo seguente:

   1. Seleziona **Intestazione** e immetti **headerValue1**, quindi scegli **Aggiungi parametro**.

   1. In **Tipo di origine identità**, seleziona **Stringa di query** e immetti **queryValue1**, quindi scegli **Aggiungi parametro**.

   1. In **Tipo di origine identità**, seleziona **Variabile di fase** e immetti **stageValue1**.

   Non puoi modificare le variabili di contesto per l'invocazione di test, ma puoi modificare il modello di evento di test **Sistema di autorizzazione di Gateway API** per la tua funzione Lambda. Quindi, puoi testare la funzione del sistema di autorizzazione Lambda con variabili di contesto modificate. Per ulteriori informazioni, consulta [Testing Lambda functions in the console](https://docs.aws.amazon.com/lambda/latest/dg/testing-functions.html) nella *Guida per gli sviluppatori di AWS Lambda *.

1. Scegli **Testa autorizzazioni**.

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

**Per testare un sistema di autorizzazione Lambda `TOKEN`**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Seleziona il nome del sistema di autorizzazione.

1. In **Testa autorizzazioni**, inserisci un valore per il token.

   Se utilizzi [Esempio di funzione del sistema di autorizzazione `TOKEN` Lambda](apigateway-use-lambda-authorizer.md#api-gateway-lambda-authorizer-token-lambda-function-create), procedi nel modo seguente:

   1. Per **authorizationToken**, inserisci **allow**.

1. Scegli **Testa autorizzazioni**.

    Se il sistema di autorizzazione Lambda nega correttamente una richiesta nell'ambiente di test, il test restituisce una risposta HTTP `200 OK`. Esternamente all'ambiente di test, invece, Gateway API restituisce una risposta HTTP `403 Forbidden` e la richiesta di metodo ha esito negativo.

------

## Configurazione di un sistema di autorizzazione Lambda (AWS CLI)
<a name="configure-api-gateway-lambda-authorization-cli"></a>

Il seguente comando [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html) mostra come creare un sistema di autorizzazione Lambda tramite AWS CLI.

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

Il comando [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html) seguente crea un sistema di autorizzazione `REQUEST` e utilizza l’intestazione `Authorizer` e la variabile di contesto `accountId` come origini di 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 ]

Il comando [create-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-authorizer.html) seguente crea un sistema di autorizzazione `TOKEN` e utilizza l’intestazione `Authorization` come origine di 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
```

------

Dopo aver creato il sistema di autorizzazione Lambda, puoi testarlo. Il [test-invoke-authorizer](https://docs.aws.amazon.com/cli/latest/reference/apigateway/test-invoke-authorizer.html)comando seguente verifica un autorizzatore Lambda:

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

## Configurazione di un metodo per utilizzare un sistema di autorizzazione Lambda (console)
<a name="configure-api-gateway-lambda-authorization-method-console"></a>

Dopo aver configurato il sistema di autorizzazione Lambda, devi collegarlo a un metodo per l'API. Se il sistema di autorizzazione utilizza il caching delle autorizzazioni, è necessario aggiornare la policy per controllare l’accesso del metodo aggiuntivo.

**Configurazione di un metodo API per utilizzare le autorizzazioni Lambda**

1. Accedi alla console API Gateway all'indirizzo [https://console.aws.amazon.com/apigateway.](https://console.aws.amazon.com/apigateway)

1. Seleziona un'API.

1. Seleziona **Risorse**, quindi scegli un nuovo metodo o scegline uno esistente.

1. Nella scheda **Richiesta metodo**, in **Impostazioni richiesta metodo**, scegli **Modifica**. 

1. In **Autorizzazioni**, nel menu a discesa, seleziona la funzione di autorizzazione Lambda appena creata. 

1.  (Facoltativo) Se desideri passare il token di autorizzazione al back-end, scegli **Intestazioni di richiesta HTTP**. Scegli **Aggiungi intestazione**, quindi aggiungi il nome dell'intestazione di autorizzazione. In **Nome** immetti il nome dell'intestazione corrispondente al nome specificato in **Origine token** al momento della creazione della funzione di autorizzazione Lambda per l'API. Questo passaggio non si applica alle autorizzazioni `REQUEST`. 

1. Scegli **Save** (Salva).

1. Seleziona **Deploy API (Distribuisci API)** per distribuire l'API in una fase. Per una funzione di autorizzazione basata su `REQUEST` che usa variabili di fase, devi anche definire le variabili di fase richieste e specificare i relativi valori in **Fasi**.

## Configurazione di un metodo per utilizzare un sistema di autorizzazione Lambda (AWS CLI)
<a name="configure-api-gateway-lambda-authorization-method-cli"></a>

Dopo aver configurato il sistema di autorizzazione Lambda, devi collegarlo a un metodo per l'API. Puoi creare un nuovo metodo o utilizzare un'operazione di patch per collegare un sistema di autorizzazione a un metodo esistente. Se il sistema di autorizzazione utilizza il caching delle autorizzazioni, è necessario aggiornare la policy per controllare l’accesso del metodo aggiuntivo.

Il comando [put-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/put-method.html) seguente crea un nuovo metodo che utilizza un sistema di autorizzazione Lambda:

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

Il comando [update-method](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-method.html) seguente aggiorna un metodo esistente in modo da utilizzare un sistema di autorizzazione 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"
```