Fehler bei Authentifizierungsprovideraufrufen werden als HTTP 500 angezeigt

Erfahren Sie, wie Sie Fehler bei Authentifizierungsprovideraufrufen beheben, die beim Aufrufen von APIs HTTP 500-Fehler zurückgeben, nachdem API-Gateways und API-Deployments erfolgreich mit dem API-Gateway-Service erstellt wurden.

Wenn API Gateway während der Authentifizierung HTTP 500 zurückgibt, verläuft die Anforderung möglicherweise nicht erfolgreich, bevor sie den Backend-Service erreicht. Prüfen Sie in diesem Fall den konfigurierten Aufrufpfad des Identitätsproviders.

Problemsymptome

Möglicherweise sehen Sie eines oder mehrere der folgenden Symptome:

  • Ein Client erhält eine HTTP-500-Antwort auf einer Route, die Tokenauthentifizierung verwendet.

  • Der Backend-Service zeigt keine übereinstimmende Anforderung für den nicht erfolgreichen API-Aufruf an.

  • Der Fehler tritt bei der Tokenintrospektion, Discovery oder Remote-JSON Web Key Set-(JWKS-)Validierung auf.

  • Der Fehler tritt nur auf Routen auf, die von einem externen Identitätsprovider abhängen.

Mögliche Gründe

Dieses Problem hat in der Regel eine der folgenden Ursachen:

  • Der konfigurierte introspection_endpoint-, Discovery-Endpunkt oder JWKS-Endpunkt gibt HTTP 500 oder eine andere unerwartete Antwort zurück.

  • API Gateway kann keine Verbindung zum Identitätsproviderendpunkt herstellen, weil die Verbindung wegen Timeout abgebrochen wird oder abgelehnt wird.

  • Der Identitätsprovider gibt eine Antwort zurück, die API Gateway nicht parsen kann.

  • Die Authentifizierungs-Policy referenziert den falschen Providerendpunkt.

  • Die für die Tokenintrospektion konfigurierten Clientzugangsdaten sind falsch oder werden vom Identitätsprovider nicht akzeptiert.

Nicht erfolgreiche Authentifizierungsanforderungen prüfen

Mit der nicht erfolgreichen Anforderung können Sie bestätigen, wo der Fehler auftritt:

  1. Suchen Sie im Zugriffslog die Anforderung, und notieren Sie sich den Wert opcRequestId.

  2. Vergewissern Sie sich, dass der Client-sichtbare Antwortstatus HTTP 500 ist.

  3. Durchsuchen Sie das Ausführungslog nach demselben opcRequestId-Wert.

  4. Prüfen Sie, ob das Ausführungslog authentication.idpCallFailed meldet.

Wenn das Ausführungslog authentication.idpCallFailed meldet, beheben Sie Fehler im Aufrufpfad des Identitätsproviders, bevor Sie Probleme mit der Backend-Route beheben.

Authentifizierungs-Policy prüfen

Prüfen Sie die Authentifizierungs-Policy auf Probleme mit Providerendpunkten und Zugangsdaten:

  • Vergewissern Sie sich, dass die Discovery-, JWKS- oder Introspektionsendpunkt-URI in der Deployment-Spezifikation oder Konsole auf den beabsichtigten Identitätsprovider verweist.

  • Wenn die Logmeldung introspection_endpoint identifiziert, prüfen Sie diesen Endpunkt, bevor Sie andere Providerendpunkte prüfen.

  • Stellen Sie sicher, dass die konfigurierte Client-ID und das Client Secret für den Introspektionsendpunkt gültig sind.

  • Vergewissern Sie sich, dass der Identitätsprovider gültige JSON in dem von der ausgewählten Authentifizierungs-Policy erwarteten Format zurückgibt.

Logmeldungen prüfen

Prüfen Sie das Ausführungslog auf Meldungen, die den nicht erfolgreichen Provideraufruf identifizieren:

  • 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

Mit diesen Nachrichten können Sie ermitteln, ob der Fehler durch die Verfügbarkeit des Providers, die Erreichbarkeit des Netzwerks oder eine ungültige Providerantwort verursacht wird.

Fehler bei Authentifizierungsprovideraufrufen beheben

Wenden Sie die Lösung an, die dem identifizierten Fehler entspricht:

  • Wenn die Providerendpunkt-URI falsch ist, aktualisieren Sie den Discovery-, JWKS- oder Introspektionsendpunkt in der Authentifizierungs-Policy.

  • Wenn der Identitätsprovider HTTP 500 zurückgibt, beheben Sie den providerseitigen Fehler, bevor Sie das Problem als API-Gatewayfehler untersuchen.

  • Wenn die Providerantwort nicht geparst werden kann, aktualisieren Sie den Identitätsprovider so, dass gültige JSON im erwarteten Format zurückgegeben wird.

  • Wenn die Introspektionszugangsdaten falsch sind, aktualisieren Sie die konfigurierten Clientzugangsdaten.

  • Wenn für den Providerendpunkt ein Timeout auftritt oder die Verbindung abgelehnt wird, testen Sie den Endpunkt von einer Compute-Instanz, die denselben Netzwerkpfad wie das Gateway-Subnetz verwendet. Korrigieren Sie anschließend die Firewall, Routentabelle, Sicherheitsregel oder Providerendpunktkonfiguration, mit der die Verbindung blockiert wird.

Authentifizierungsprovideraufrufe prüfen

Nachdem Sie die Providerkonfiguration oder den Netzwerkpfad aktualisiert haben, stellen Sie sicher, dass die Authentifizierung erfolgreich ist:

  1. Senden Sie dieselbe API-Anforderung erneut.

  2. Stellen Sie sicher, dass die Anforderung während der Authentifizierung keine HTTP-500 mehr zurückgibt.

  3. Stellen Sie sicher, dass im Ausführungslog authentication.idpCallFailed für die Anforderung nicht mehr angezeigt wird.

  4. Bestätigen Sie, dass die Anforderung den erwarteten Backend-Service erreicht, wenn das Token gültig ist.

Weitere Informationen

Weitere Informationen finden Sie unter: