Gli errori di chiamata del provider di autenticazione emergono come HTTP 500
Scopri come risolvere gli errori di chiamata del provider di autenticazione che restituiscono errori HTTP 500 durante la chiamata delle API, dopo aver creato correttamente gateway API e distribuzioni API con il servizio Gateway API.
Quando API Gateway restituisce HTTP 500 durante l'autenticazione, la richiesta potrebbe non riuscire prima di raggiungere il servizio backend. In questo caso, rivedere il percorso di chiamata del provider di identità configurato.
Sintomi problema
Potresti vedere uno o più dei seguenti sintomi:
-
Un client riceve una risposta HTTP
500su un instradamento che utilizza l'autenticazione token. -
Il servizio backend non mostra una richiesta corrispondente per la chiamata API non riuscita.
-
L'errore si verifica durante l'introspezione, la ricerca automatica o la convalida JWKS (JSON Web Key Set) remota.
-
L'errore si verifica solo sugli instradamenti che dipendono da un provider di identità esterno.
Cause possibili
Questo problema in genere ha una delle seguenti cause:
-
L'endpoint
introspection_endpoint, di ricerca automatica o JWKS configurato restituisce HTTP500o un'altra risposta imprevista. -
Il gateway API non è in grado di connettersi all'endpoint del provider di identità perché la connessione scade o viene rifiutata.
-
Il provider di identità restituisce una risposta che il gateway API non è in grado di analizzare.
-
Il criterio di autenticazione fa riferimento all'endpoint del provider errato.
-
Le credenziali client configurate per l'introspezione dei token non sono corrette o non sono accettate dal provider di identità.
Esaminare la richiesta di autenticazione non riuscita
Utilizzare la richiesta di errore per confermare dove si verifica l'errore:
-
Nel log degli accessi, trovare la richiesta e prendere nota del valore
opcRequestId. -
Verificare che lo stato della risposta visibile al client sia HTTP
500. -
Cercare nel log di esecuzione lo stesso valore
opcRequestId. -
Verificare se il log di esecuzione riporta
authentication.idpCallFailed.
Se il log di esecuzione riporta authentication.idpCallFailed, risolvere i problemi relativi al percorso di chiamata del provider di identità prima di risolvere il problema dell'instradamento backend.
Esaminare il criterio di autenticazione
Esaminare il criterio di autenticazione per i problemi dell'endpoint e delle credenziali del provider:
-
Confermare che l'URI dell'endpoint di ricerca automatica, JWKS o introspezione nella specifica di distribuzione o nella console punta al provider di identità previsto.
-
Se il messaggio di log identifica
introspection_endpoint, verificare l'endpoint prima di esaminare altri endpoint del provider. -
Verificare che l'ID client e il segreto client configurati siano validi per l'endpoint di introspezione.
-
Confermare che il provider di identità restituisca un JSON valido nel formato previsto dal criterio di autenticazione selezionato.
Rivedi messaggi di log
Esaminare il log di esecuzione per individuare i messaggi che identificano la chiamata del provider non riuscita:
-
authentication.idpCallFailed -
Unexpected response from the introspection_endpoint uri: <uri>, received (500, Server Error). -
Unable to connect to the introspection_endpoint uri: <uri>, TIMEOUT. Make sure that the URI is accessible on the subnet of the gateway. -
Unable to connect to the introspection_endpoint uri: <uri>, CONNECTION_REFUSED. Make sure that the URI is accessible on the subnet of the gateway. -
Unable to parse response from Identity Provider
Questi messaggi consentono di identificare se l'errore è causato dalla disponibilità del provider, dalla raggiungibilità della rete o da una risposta del provider non valida.
Correggi errori chiamata provider di autenticazione
Applicare la risoluzione corrispondente all'errore identificato:
-
Se l'URI dell'endpoint del provider non è corretto, aggiornare la ricerca automatica, JWKS o l'endpoint di introspezione nel criterio di autenticazione.
-
Se il provider di identità restituisce HTTP
500, risolvere l'errore lato provider prima di analizzare il problema come difetto del gateway API. -
Se non è possibile analizzare la risposta del provider, aggiornare il provider di identità in modo che restituisca un JSON valido nel formato previsto.
-
Se le credenziali di introspezione non sono corrette, aggiornare le credenziali client configurate.
-
Se l'endpoint del provider scade o rifiuta la connessione, eseguire il test dell'endpoint da un'istanza di computazione che utilizza lo stesso percorso di rete della subnet del gateway. Correggere quindi il firewall, la tabella di instradamento, la regola di sicurezza o la configurazione dell'endpoint del provider che blocca la connessione.
Verifica chiamate provider di autenticazione
Dopo aver aggiornato la configurazione del provider o il percorso di rete, verificare che l'autenticazione riesca:
-
Inviare di nuovo la stessa richiesta API.
-
Verificare che la richiesta non restituisca più HTTP
500durante l'autenticazione. -
Verificare che il log di esecuzione non mostri più
authentication.idpCallFailedper la richiesta. -
Confermare che la richiesta raggiunga il servizio backend previsto quando il token è valido.
Per ulteriori informazioni
Per ulteriori informazioni, fare riferimento agli argomenti sotto riportati.