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 500 su 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 HTTP 500 o 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:

  1. Nel log degli accessi, trovare la richiesta e prendere nota del valore opcRequestId.

  2. Verificare che lo stato della risposta visibile al client sia HTTP 500.

  3. Cercare nel log di esecuzione lo stesso valore opcRequestId.

  4. 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:

  1. Inviare di nuovo la stessa richiesta API.

  2. Verificare che la richiesta non restituisca più HTTP 500 durante l'autenticazione.

  3. Verificare che il log di esecuzione non mostri più authentication.idpCallFailed per la richiesta.

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