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 HTTP500oder 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:
-
Suchen Sie im Zugriffslog die Anforderung, und notieren Sie sich den Wert
opcRequestId. -
Vergewissern Sie sich, dass der Client-sichtbare Antwortstatus HTTP
500ist. -
Durchsuchen Sie das Ausführungslog nach demselben
opcRequestId-Wert. -
Prüfen Sie, ob das Ausführungslog
authentication.idpCallFailedmeldet.
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_endpointidentifiziert, 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
500zurü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:
-
Senden Sie dieselbe API-Anforderung erneut.
-
Stellen Sie sicher, dass die Anforderung während der Authentifizierung keine HTTP-
500mehr zurückgibt. -
Stellen Sie sicher, dass im Ausführungslog
authentication.idpCallFailedfür die Anforderung nicht mehr angezeigt wird. -
Bestätigen Sie, dass die Anforderung den erwarteten Backend-Service erreicht, wenn das Token gültig ist.
Weitere Informationen
Weitere Informationen finden Sie unter: