Come posso risolvere gli errori 403 "Token di autenticazione mancante" di un endpoint REST API di API Gateway?
Ultimo aggiornamento: 06/01/2023
Quando cerco di richiamare la mia REST API in Amazon API Gateway, ricevo i messaggi di errore 403 "Token di autenticazione mancante". Come posso risolvere questi errori?
Breve descrizione
Gli endpoint REST API in API Gateway restituiscono il messaggio di errore Token di autenticazione mancante per i seguenti motivi:
- La richiesta API viene effettuata a un metodo o a una risorsa inesistente.
- La richiesta API non viene firmata quando l'autenticazione AWS Identity and Access Management (IAM) è attiva per il metodo API.
- L'API potrebbe essere configurata con una risposta Gateway modificata o la risposta proviene da un'integrazione back-end.
Per risolvere altri errori 403 per API Gateway, consulta Come posso risolvere gli errori HTTP 403 dall’API Gateway?
Risoluzione
Conferma l’esistenza di un metodo e di una risorsa configurati nel percorso risorse in API Gateway
Segui le istruzioni riportate in Impostazione di un metodo utilizzando la console API Gateway. Per ulteriori informazioni, consulta Configurazione delle risorse API.
Nota: affinché le modifiche abbiano effetto è necessario implementare l'PI.
Per le API con integrazione di una risorsa proxy in cui il metodo di richiesta viene inviato alla risorsa root, verifica che esista un metodo configurato nella risorsa root.
Verifica 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. Controllare i registri di esecuzione e i registri di backend di API Gateway.
Conferma che la richiesta API sia firmata se l'autenticazione IAM è attiva per il metodo API
Per ulteriori informazioni, consulta Firmare le richieste di API AWS ed Elementi di una firma di richiesta API AWS.
Conferma l'invio della richiesta del metodo HTTP corretta all'endpoint REST API
Il test di un endpoint API REST direttamente da un browser Web invia automaticamente una richiesta del metodo GET HTTP.
Per testare un metodo POST HTTP, utilizza un client HTTP differente. Ad esempio, Postman o 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 invio di richieste curl POST 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
Questo articolo è stato utile?
Hai bisogno della fattura o di supporto tecnico?