Dieses Dokument enthält Informationen zur Fehlerbehebung und Antworten auf häufig gestellte Fragen zum Identity-Aware Proxy (IAP).
Fehlerbehebung bei der Webanmeldung
Wenn bei der Anmeldung oder beim Zugriff auf Ihre Anwendung Fehler auftreten, kann es hilfreich sein, den Netzwerkverkehr Ihres Browsers zu prüfen, um das Problem zu diagnostizieren.
Netzwerkverkehr prüfen
- Öffnen Sie in Ihrem Browser ein neues Inkognito -Fenster (Chrome) oder Privates Fenster.
- Öffnen Sie die Entwicklertools Ihres Browsers und rufen Sie den Tab Netzwerk auf.
- Wählen Sie die Option Log beibehalten aus, um alle Anfragen während der Weiterleitungen zu erfassen.
- Reproduzieren Sie das Problem, indem Sie zu der URL navigieren, bei der Probleme auftreten.
- Prüfen Sie die Netzwerkanfragen im Log, um festzustellen, wo der Fehler aufgetreten ist.
Netzwerkverkehr analysieren
Wenn Sie auf eine IAP-gesicherte Anwendung zugreifen, werden Sie zur Anmeldeseite weitergeleitet. Nach erfolgreicher Authentifizierung beim Identitätsanbieter wird eine Anfrage an die Domain https://iap.googleapis.com gesendet, um die Authentifizierung abzuschließen, bevor ein IAP-Cookie ausgestellt wird und Sie zur Anwendung weitergeleitet werden.
Sie können Fehler anhand der Domain beheben, in der sie auftreten:
- Fehler in
iap.googleapis.com: Wenn in der Domainiap.googleapis.comein Fehler auftritt, wird auf der Seite eine detaillierte Fehlermeldung angezeigt. Wenn der Fehler mit Ihren IAP-Einstellungen zusammenhängt, z. B. mit Problemen mit dem OAuth-Client, passen Sie die Einstellungen an. Wenn Clientfehler auftreten, die Sie nicht beheben können, oder wenn Serverfehler auftreten, öffnen Sie ein Google Cloud Supportticket. - Fehler in Ihrer Anwendungsdomain: Wenn ein Fehler auftritt, nachdem Sie zu Ihrer IAP-gesicherten Anwendungsdomain weitergeleitet wurden, wird ein Fehlercode angezeigt. Weitere Informationen zu häufigen Fehlern finden Sie im Abschnitt Fehlercodes. Wenn Sie das Problem nicht beheben können, öffnen Sie ein Google Cloud Supportticket.
Welche Anwendungen kann ich mit IAP schützen?
IAP kann mit Folgendem verwendet werden:
- Anwendungen für die App Engine-Standardumgebung und die flexible App Engine-Umgebung
- Compute Engine-Instanzen mit HTTP(S)-Load-Balancing-Back-End-Diensten
- Google Kubernetes Engine-Container
- Cloud Run-Anwendungen mit HTTP(S)-Load-Balancing-Back-End-Diensten
- Cloud Run mit einem Klick und ohne Load-Balancing-Back-End-Dienste
IAP kann nicht mit Cloud CDN verwendet werden.
Warum steht ein # am Ende meiner URL, nachdem ich mich bei meiner Anwendung angemeldet habe?
In einigen Browsern und unter bestimmten Bedingungen wird nach der Authentifizierung ein # an die URL angehängt. Das hat keine spezielle Bedeutung und verursacht beim Anmelden keine Probleme.
Warum schlagen meine Anfragen fehl und geben 405 Method Not Allowed zurück?
Dies tritt in der Regel auf, wenn Ihren Anfragen keine Cookies angehängt sind. Bei JavaScript-Methoden werden Anfragen standardmäßig keine Cookies angehängt.
Für verschiedene Anfragemethoden sind unterschiedliche Ansätze erforderlich:
- Setzen Sie für
XMLHttpRequest, die OptionwithCredentialsauftrue. - Setzen Sie für die Fetch
API,
setzen Sie
credentialsaufincludeodersame-origin.
Informationen zur Behandlung von sitzungsbezogenen Fehlern finden Sie unter Cloud IAP Sitzungen verwalten.
Warum erhalte ich HTTP 401 Unauthorized anstelle von 302 Redirect?
IAP sendet nur dann eine 302 Redirect-Antwort, wenn Ihr Client für die Verarbeitung von Weiterleitungen konfiguriert ist.
Fügen Sie HTTP Accept="text/html,*/*" Ihren Anfrageheadern hinzu, um die Unterstützung
für Weiterleitungen anzugeben.
Warum lösen POST-Anfragen keine Weiterleitungen aus?
Browser führen keine Weiterleitungen als Antwort auf POST-Anfragen aus. Stattdessen gibt IAP den Statuscode 401 Unauthorized zurück.
Fügen Sie für POST-Anfragen an IAP-gesicherte Ressourcen eine der folgenden Optionen hinzu:
- Ein ID-Token in einem
Authorization: Bearer-Header - Gültige Cookies (siehe Sitzungen aktualisieren)
Kann ich IAP verwenden, wenn ich die API deaktiviert habe?
Ja, auf mit IAP gesicherte Ressourcen kann auch dann zugegriffen werden, wenn die API deaktiviert ist. Sie können jedoch keine IAM-Berechtigungen ändern.
Wie kann ich verhindern, dass Nutzer mit der Rolle „Inhaber“ IAP für TCP verwenden?
Idealerweise sollten Sie die Verwendung der Rolle „Inhaber“ (roles/owner) einschränken und stattdessen detailliertere Berechtigungen verwenden. Weitere Informationen finden Sie unter Best Practices für
IAM.
Wenn das nicht möglich ist, können Sie IAP für TCP mithilfe von Firewallregeln blockieren.
Welche Domain verwendet IAP für TCP?
IAP verwendet die folgenden Domains von Google:
tunnel.cloudproxy.appmtls.tunnel.cloudproxy.app(when certificate-based access is enabled)
Warum erhalte ich Server Error?
Wenn Sie Folgendes sehen:
The server encountered a temporary error and could not complete your request. Please try again in 30 seconds.
Möglicherweise blockiert Ihre Firewall die IP-Adressen des Load-Balancers.
Prüfen Sie, ob Ihre Firewall Traffic von 130.211.0.0/22 und 35.191.0.0/16 zulässt. Wenn diese IP-Adressen Ihr Back-End nicht erreichen können, sind Ihre Anwendungen nicht zugänglich.
Achten Sie bei IAP-TCP-Verbindungen zu bestimmten VMs auch darauf, dass die VM Verbindungen aus dem Bereich 35.235.240.0/20 akzeptiert.
Warum erhalte ich zeitweise interne Serverfehler?
Meldungen wie An internal server error occurred while authorizing your request.
Error code X weisen auf Back-End-Fehler hin.
Die Fehlercodes 1, 30, 62, 63, 64 oder 703 weisen in der Regel auf vorübergehende Probleme hin. Implementieren Sie exponentiellen Backoff für Wiederholungen.
Fehler der Identity Platform beheben (Fehlercode 38)
Der Fehlercode 38 gibt an, dass die Authentifizierungs-URL der Identity Platform für Ihre externe Identität in IAP nicht richtig konfiguriert ist.
So finden Sie die URL:
Zur Seite „IAP“.
Klicken Sie auf den Tab Anwendungen.
Suchen Sie in der Spalte Ressource nach Ihrer Anwendung und wählen Sie das Kästchen aus.
Prüfen Sie, ob die URL unter Authentifizierungs-URL oder Log-in-URL korrekt ist.
Informationen zur Verwendung externer Identitäten mit IAP finden Sie unter Nutzer mit externen Identitäten authentifizieren.
Wie kann ich Fehler aufgrund überschrittener Kontingente beheben (Fehlercode 429)?
Der Fehlercode 429 tritt auf, wenn Ihre Anwendung die Anfragelimits von IAP überschreitet. Für den Dienst gelten separate Kontingente:
- Browserbasierte Anfragen:360.000 pro Minute und Projekt
- Programmatische Anfragen:360.000 pro Minute und Projekt
Eine programmatische Anfrage enthält einen AUTHORIZATION oder
PROXY-AUTHORIZATION Header und kein IAP-Cookie. Alle anderen Anfragen (einschließlich Anfragen ohne Anmeldedaten) werden als Browseranfragen betrachtet.
Diese Limits gelten kollektiv für alle IAP-geschützten Ressourcen in Ihrem Projekt.
Wenn Fehler im Zusammenhang mit Kontingenten auftreten, können Sie Folgendes versuchen:
- Führen Sie keine Lasttests in der Produktion durch. Verwenden Sie stattdessen alternative Netzwerkpfade, die IAP umgehen.
- Implementieren Sie für den Traffic zwischen Diensten exponentiellen Backoff, um 429-Fehler ordnungsgemäß zu behandeln.
- Verteilen Sie Anwendungen mit hohem Traffic auf mehrere Projekte.
- Verwenden Sie Apigee oder ähnliche API-Gateway-Lösungen für API-basierte Anwendungen.
- Wenden Sie sich an den Google Cloud Support, um Kontingenterhöhungen zu beantragen, wenn das Problem durch organisches Wachstum verursacht wird.
Anmeldeprobleme oder unerwartetes Verhalten bei der Verwendung von IAP mit der Identity Platform
Wenn Sie einen externen Identitätsanbieter (IdP) mit der Identity Platform verwenden, können große Anspruchsdaten im ID-Token dazu führen, dass das IAP-Sitzungscookie die Größenlimits des Browsers überschreitet (in der Regel etwa 4 KB). IAP speichert Sitzungsinformationen, einschließlich dieser Ansprüche, in Browsercookies.
Das Überschreiten des Größenlimits für Sitzungscookies kann zu Anmeldefehlern oder unendlichen Anmeldeschleifen führen. Um diese Probleme zu vermeiden, können Sie Folgendes tun:
Ansprüche reduzieren: Konfigurieren Sie Ihren externen Identitätsanbieter so, dass nur wichtige Ansprüche an die Identity Platform gesendet werden. Minimieren Sie die Größe und Anzahl der im Token enthaltenen Ansprüche.
Cookie-Größe prüfen: Verwenden Sie die Entwicklertools des Browsers, um die Größe der Cookies zu prüfen, die in der Domain Ihrer Anwendung festgelegt sind. Suchen Sie nach Warnungen zur Cookie-Größe, insbesondere für IAP-bezogene Cookies.
Minimale Ansprüche testen: Konfigurieren Sie den Identitätsanbieter vorübergehend so, dass er die kleinstmögliche Anzahl von Ansprüchen sendet. Wenn das Problem dadurch behoben wird, ist die Beschränkung der Cookie-Größe die Ursache.
Warum erhalte ich einen HTTP 502-Fehler mit der Meldung „Empty Google Account OAuth client ID(s)/secret(s)“?
Wenn Sie auf Ihre IAP-gesicherte Anwendung zugreifen und den Fehler HTTP 502 Bad Gateway mit der Meldung Empty Google Account OAuth client ID(s)/secret(s). erhalten, kann IAP keine OAuth-Anmeldedaten für Ihre Anwendung finden.
Dieser Fehler tritt in der Regel in den folgenden Szenarien auf:
- Das Projekt gehört nicht zu einer Organisation: Der von Google verwaltete Standard-OAuth-Client ist nur für Projekte verfügbar, die zu einer Google Cloud Organisation gehören. Wenn Ihr Projekt nicht zu einer Organisation gehört, müssen Sie benutzerdefinierte OAuth-Anmeldedaten für App Engine oder für Ihre jeweilige Plattform konfigurieren.
- Die OAuth-Anmeldedaten wurden gelöscht oder nicht konfiguriert: Wenn Sie zuvor benutzerdefinierte OAuth-Anmeldedaten konfiguriert haben und der OAuth-Client gelöscht wurde, erstellen Sie die Anmeldedaten auf der Seite „Anmeldedaten“ neu und aktualisieren Sie Ihre IAP-Einstellungen wie unter Benutzerdefinierte OAuth-Clients mit IAP verwenden beschrieben.
Fehlercodes
In der folgenden Tabelle sind häufig auftretende Fehlercodes und Nachrichten aufgeführt, die beim Konfigurieren und Anwenden von IAP zurückgegeben werden.
| Fehlercode | Beschreibung | Fehlerbehebung |
|---|---|---|
| 7, HTTP 502 | Leere OAuth-Client-ID oder leerer OAuth-Clientschlüssel (Empty Google Account OAuth client ID(s)/secret(s).) |
Wenn Ihr Projekt nicht zu einer Organisation gehört, konfigurieren Sie benutzerdefinierte OAuth-Anmeldedaten. Andernfalls rufen Sie die Seite „Anmeldedaten“ auf, um Ihre Client-ID und Ihren Clientschlüssel zu prüfen, oder prüfen Sie die Einstellungen mit API-Methoden (GET für Compute Engine, GET für App Engine) und setzen Sie sie mit PATCH zurück. Weitere Informationen finden Sie unter HTTP 502-Fehler. |
| 9 | Fehlerhafte OAuth-Weiterleitung | Dies ist ein interner Fehler, der automatisch protokolliert wurde. Sie müssen nichts tun. |
| 9 (mit Regeln zur Pfadumschreibung) | Fehlerhafte OAuth-Weiterleitung | Die Regeln zur Pfadumschreibung Ihres Load-Balancers verhindern den Abschluss von OAuth. Achten Sie darauf, dass alle Back-Ends hinter Ihrem Load-Balancer identische OAuth-Client-IDs verwenden. Sie können dies mit dem Befehl gcloud compute backend-services update aktualisieren. |
| 9 (mit Regeln zur Pfadweiterleitung) | Fehlerhafte OAuth-Weiterleitung | Erstellen Sie Varianten von Pfadregeln für beide Versionen jedes Pfads (mit und ohne nachgestellte Schrägstriche) und leiten Sie sie an dasselbe Back-End weiter. Fügen Sie beispielsweise Regeln für /path/ und /path ein. |
| 11 | Falsch konfigurierte OAuth-Client-ID | Prüfen Sie Ihre Client-ID und Ihren Clientschlüssel auf der Seite „Anmeldedaten“. Wenn sie korrekt erscheinen, aber nicht funktionieren, prüfen Sie die Einstellungen mit API-Methoden (GET für Compute Engine, GET für App Engine) und setzen Sie sie mit PATCH zurück. |
| 13 | Ungültiges OIDC-Token | Prüfen Sie auf der Seite „Anmeldedaten“, ob Ihre Client-ID gelöscht oder falsch geändert wurde. |
| 51 | Browser unterstützt kein Verbindungspooling | Bitten Sie die Endnutzer, ihre Browser auf die aktuelle Version zu aktualisieren. Weitere Informationen zu den Verbindungsanforderungen finden Sie unter Zugriff auf Ressourcen beschränken. |
| 52 | Hostname/SSL-Zertifikat stimmen nicht überein | Ihr Systemadministrator muss das SSL-Zertifikat so aktualisieren, dass es mit dem Hostnamen übereinstimmt. Weitere Informationen finden Sie unter Zugriff auf Ressourcen beschränken. |
| 52 (mit Zertifikatszuordnungseintrag) | Hostname/SSL-Zertifikat stimmen nicht überein | IAP unterstützt keine Einträge für die primäre Zertifikatzuordnung. Verwenden Sie separate Einträge, um jedes Zertifikat dem richtigen Hostnamen zuzuordnen. Weitere Informationen finden Sie unter Zertifikatszuordnungseintrag erstellen. |
| 53 | Hostname nicht in den zulässigen Domains | Ein Administrator muss Ihren Hostnamen der Liste der zulässigen Domains hinzufügen. Eine Anleitung finden Sie unter Zugriff auf Ressourcen beschränken. |
| 253, HTTP 429 | Anfragekontingent überschritten | Sie haben die Anfragelimits erreicht (360.000/Minute für jeden Anfragetyp). Sie können Arbeitslasten auf mehrere Projekte verteilen, die Anfragen auf Clientseite drosseln oder sich an den Support wenden, um Kontingenterhöhungen zu beantragen, wenn dies für ein legitimes Wachstum erforderlich ist. |
| 551 | IAP an mehreren Stellen aktiviert | Sie können IAP nicht sowohl für die Weiterleitungsregel als auch für den Backend-Dienst aktivieren. Deaktivieren Sie es an einer Stelle gemäß der Anleitung unter IAP für Compute Engine aktivieren. |
| 700, 701 | Probleme mit dem Personalpoolanbieter | Konfigurieren Sie genau einen Anbieter für Ihren Personalpool. Detaillierte Anforderungen finden Sie unter Einschränkungen für Personalpools. |
| 705 | Fehlende OAuth-Client-ID für die Personalidentität | Führen Sie die vollständige Einrichtung durch: Erstellen Sie zuerst eine OAuth-Client-ID und aktualisieren Sie dann Ihre IAP-Einstellungen. |
| 708 | Ungültiger Name für den Personalpool | Prüfen Sie, ob Ihr Personalpool vorhanden ist und das richtige Format verwendet: locations/global/workforcePools/WORKFORCE_POOL_ID. |
| 4003 | Verbindungs- oder Firewallproblem | Prüfen Sie, ob Ihr VM-Prozess ausgeführt wird und den erwarteten Port überwacht. Prüfen Sie außerdem, ob Ihre Firewallregeln Verbindungen an diesem Port zulassen. |
| 4010 | Verbindung vom Ziel geschlossen | Setzen Sie die VM zurück. Wenn die Probleme weiterhin auftreten, prüfen Sie auth.log (in der Regel unter /var/log/) oder verwenden Sie die serielle Konsole für eine detailliertere Diagnose. |
| 4033 | Problem mit Berechtigung, Existenz oder VM-Status | Prüfen Sie auf der IAP-Seite, ob Ihnen die Rolle „Tunnelnutzer“ für die Ressource zugewiesen ist, und prüfen Sie, ob die VM vorhanden ist und ausgeführt wird. |
| 4047 | Instanz ist nicht vorhanden oder wurde beendet | Achten Sie darauf, dass Ihre VM eingeschaltet ist und die Startsequenz vollständig abgeschlossen wurde. |
Wenn Sie das Problem nicht beheben können oder Ihr Fehler auf dieser Seite nicht aufgeführt ist, wenden Sie sich mit einer Beschreibung des Fehlers und der Antwort, die Sie beim Aufruf von GET an die API erhalten, an den Cloud Customer Care. Entfernen Sie den Clientschlüssel aus der Antwort.