Come posso risolvere gli errori 403 "Token di autenticazione mancante" dell'endpoint REST API di API Gateway?

3 minuti di lettura
0

Quando provo a richiamare la mia REST API di Gateway Amazon API, ricevo messaggi di errore 403 "Token di autenticazione mancante".

Breve descrizione

Gli endpoint REST API di API Gateway restituiscono messaggi di errore Token di autenticazione mancante per i seguenti motivi:

  • La richiesta API viene inviata a un'operazione oppure a una risorsa che non esiste.
  • La richiesta API non viene firmata quando è attiva l'autenticazione AWS Identity and Access Management (IAM) per l'operazione API.
  • L'API potrebbe essere configurata con una risposta gateway modificata oppure la risposta potrebbe provenire da un'integrazione back-end.

Per risolvere altri errori 403 per API Gateway, consulta la sezione Come posso risolvere gli errori HTTP 403 di API Gateway?

Risoluzione

Verifica che nel percorso risorsa di API Gateway ci siano una risorsa e un'operazione configurata

Segui le istruzioni riportate nella sezione Configurazione di un metodo mediante la console API Gateway. Per ulteriori informazioni, consulta la sezione Impostazione delle risorse API.

Importante: perché le modifiche abbiano effetto, è necessario implementare l'API.

Per le API con integrazione di una risorsa proxy in cui l'operazione di richiesta viene inviata alla risorsa root, verifica che esista un'operazione configurata nella risorsa root.

Controlla che le risposte di API Gateway non siano state modificate o che l'integrazione back-end non stia inviando la risposta

Assicurati che le risposte del gateway non siano state modificate nell'API. Inoltre, assicurati che l'errore non provenga dal back-end di integrazione. Controlla i log di esecuzione e i log di back-end di API Gateway.

Se l'autenticazione IAM è attivata, verifica che la richiesta API sia firmata

Per ulteriori informazioni, consulta la sezione Firma delle richieste API AWS ed Elementi di una firma di richiesta dell'API AWS.

Verifica di aver inviato all'endpoint REST API la richiesta per l'operazione HTTP corretta

Esegui il test di un endpoint REST API da un browser web per inviare automaticamente una richiesta per l'operazione GET HTTP.

Per testare una richiesta per l'operazione POST HTTP, utilizza un client HTTP diverso. Ad esempio, usa Postman sul sito web di Postman o curl sul sito web di curl.

Esempio di comando curl che utilizza la richiesta del metodo POST HTTP

$ curl -X POST  <API URL> -d <request body>

Esempio di richiesta di invio con intestazione JSON

$ curl --location -X POST 'https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy' --header 'Content-Type: application/json' --data-raw '{"x":"y"}'

Esempi di richiesta di invio POST curl con autenticazione della firma AWS V4

$ curl -X POST "<ENDPOINT>" -d <data> --user <AWS_ACCESS_KEY>:<AWS_SECRET_KEY> --aws-sigv4 "aws:amz:<REGION>:<SERVICE>"
$ curl -X POST "https://1234WXYZ.execute-api.us-east-1.amazonaws.com/stage/lambda_proxy" -d '{"x":"y"}' --user ABCD:1234 --aws-sigv4 "aws:amz:us-east-1:execute-api"

Informazioni correlate

How do I activate IAM authentication for API Gateway REST APIs?