Dieses Dokument enthält Informationen zur Fehlerbehebung und Antworten auf häufig gestellte Fragen zu 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 untersuchen, um das Problem zu diagnostizieren.
Netzwerkverkehr prüfen
- Öffnen Sie in Ihrem Browser ein neues Inkognitofenster (Chrome) oder privates Fenster.
- Öffnen Sie die Entwicklertools Ihres Browsers und rufen Sie den Tab Netzwerk auf.
- Wählen Sie die Option Preserve log aus, um alle Anfragen während der Weiterleitungen zu erfassen.
- Reproduzieren Sie das Problem, indem Sie die URL aufrufen, bei der Probleme auftreten.
- Sehen Sie sich die Netzwerkanfragen im Log an, um zu ermitteln, wo der Fehler aufgetreten ist.
Netzwerkverkehr analysieren
Wenn Sie auf eine IAP-geschützte Anwendung zugreifen, werden Sie zur Anmeldeseite weitergeleitet. Nach der erfolgreichen 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 und Sie zur Anwendung weitergeleitet werden.
Sie können Fehler anhand der Domain beheben, in der sie auftreten:
- Fehler auf
iap.googleapis.com: Wenn auf 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 Ihre Einstellungen an. Wenn Clientfehler auftreten, die Sie nicht beheben können, oder wenn Sie Serverfehler sehen, öffnen Sie ein Google Cloud Support-Ticket. - Fehler in Ihrer Anwendungsdomain: Wenn ein Fehler auftritt, nachdem Sie zu Ihrer IAP-geschützten 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-Apps mit HTTP(S)-Load-Balancing-Back-End-Diensten
- Cloud Run mit einem Klick und ohne Load-Balancing-Backend-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 kommt in der Regel vor, wenn Ihren Anfragen keine Cookies angehängt werden. Bei JavaScript-Methoden werden Anfragen standardmäßig keine Cookies angehängt.
Für die verschiedenen Anfrageverfahren sind unterschiedliche Ansätze erforderlich:
- Legen Sie für
XMLHttpRequestden WertwithCredentialsauftruefest. - Legen Sie für die Fetch API
credentialsaufincludeodersame-originfest.
Informationen zur Behandlung von sitzungsbezogenen Fehlern finden Sie unter Cloud IAP-Sitzungen verwalten.
Warum erhalte ich eine HTTP 401 Unauthorized anstelle einer 302 Redirect?
IAP sendet 302 Redirect nur, wenn Ihr Client für die Verarbeitung von Weiterleitungen konfiguriert ist.
Fügen Sie Ihren Anfrageheadern HTTP Accept="text/html,*/*" 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 mit IAP gesicherte Ressourcen Folgendes ein:
- 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 Rolle „Inhaber“ (roles/owner) nur eingeschränkt verwenden und stattdessen detailliertere Berechtigungen zuweisen. 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 Google-eigenen Domains:
tunnel.cloudproxy.appmtls.tunnel.cloudproxy.app(wenn zertifikatbasierter Zugriff aktiviert ist)
Warum erhalte ich Server Error?
Wenn Folgendes angezeigt wird:
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 IPs Ihr Backend nicht erreichen können, sind Ihre Anwendungen nicht zugänglich.
Bei IAP-TCP-Verbindungen zu bestimmten VMs muss die VM auch Verbindungen aus dem Bereich 35.235.240.0/20 akzeptieren.
Warum erhalte ich zeitweise interne Serverfehler?
Meldungen wie An internal server error occurred while authorizing your request.
Error code X weisen auf Backend-Fehler hin.
Die Fehlercodes 1, 30, 62, 63, 64 oder 703 weisen in der Regel auf vorübergehende Probleme hin. Implementieren Sie einen exponentiellen Backoff für Wiederholungsversuche.
Wie kann ich Fehler des Typs „Kontingent überschritten“ (Fehlercode 429) beheben?
Der Fehlercode 429 tritt auf, wenn Ihre Anwendung die Anforderungslimits für IAP-Abrechnung ü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 derer ohne Anmeldedaten) werden als Browseranfragen betrachtet.
Diese Limits gelten kollektiv für alle IAP-geschützten Ressourcen in Ihrem Projekt.
Wenn Sie Fehler im Zusammenhang mit Kontingenten erhalten, 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 Service-to-Service-Traffic 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 das Kontingent zu erhöhen, wenn das Problem durch organisches Wachstum verursacht wird.
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 | Leere OAuth-Client-ID oder leeres Secret | Rufen Sie die Seite „Anmeldedaten“ auf, um Ihre Client-ID und Ihr Secret zu überprüfen. Wenn sie korrekt angezeigt werden, aber nicht funktionieren, verwenden Sie API-Methoden, um die Einstellungen zu prüfen (GET für Compute Engine, GET für App Engine) und setzen Sie sie mit PATCH zurück. |
| 9 | Fehler bei der OAuth-Weiterleitung | Dies ist ein interner Fehler, der automatisch protokolliert wurde. Sie müssen nichts tun. |
| 9 (mit Regeln zum Umschreiben von Pfaden) | Fehler bei der OAuth-Weiterleitung | Die Regeln zum Umschreiben von Pfaden 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 diese Einstellung mit dem Befehl gcloud compute backend-services update aktualisieren. |
| 9 (mit Pfad-Routingregeln) | Fehler bei der OAuth-Weiterleitung | Erstellen Sie Pfadregelvarianten für beide Versionen jedes Pfads (mit und ohne abschließenden Schrägstrich) und leiten Sie sie an dasselbe Backend 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 Ihr Secret auf der Seite „Anmeldedaten“. Wenn sie korrekt angezeigt werden, aber nicht funktionieren, verwenden Sie API-Methoden, um die Einstellungen zu prüfen (GET für Compute Engine, GET für App Engine) und setzen Sie sie mit PATCH zurück. |
| 13 | Ungültiges OIDC-Token | Rufen Sie die Seite „Anmeldedaten“ auf, um zu prüfen, ob Ihre Client-ID gelöscht oder falsch geändert wurde. |
| 51 | Browser unterstützt kein Verbindungs-Pooling | Bitten Sie Endnutzer, ihre Browser auf die aktuelle Version zu aktualisieren. Weitere Informationen zu den Verbindungsanforderungen finden Sie unter Ressourcenzugriff einschrä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 Ressourcenzugriff einschränken. |
| 52 (mit primärem Eintrag der Zertifikatszuordnung) | Hostname/SSL-Zertifikat stimmen nicht überein | IAP unterstützt keine primären Zertifikatszuordnungen. Verwenden Sie separate Einträge, um jedes Zertifikat dem richtigen Hostnamen zuzuordnen. Eine Anleitung finden Sie unter Eintrag in der Zertifikatzuordnung erstellen. |
| 53 | Hostname nicht in zulässigen Domains | Ein Administrator muss Ihren Hostnamen der Liste der zulässigen Domains hinzufügen. Eine Anleitung finden Sie unter Ressourcenzugriff einschränken. |
| 253, HTTP 429 | Anfragekontingent überschritten | Sie haben die Anfragelimits erreicht (360.000 Anfragen pro Minute für jeden Anfragetyp). Sie können Workloads auf mehrere Projekte verteilen, die Anfragebegrenzung auf Clientseite implementieren oder bei Bedarf eine Kontingenterhöhung beim Support 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 sie an einem Ort gemäß der Anleitung unter Für Compute Engine aktivieren. |
| 700, 701 | Probleme mit Personalpoolanbietern | Konfigurieren Sie genau einen Anbieter für Ihren Personalpool. Detaillierte Anforderungen finden Sie unter Einschränkungen für Workforce-Pools. |
| 705 | OAuth-Client-ID für Arbeitsidentität fehlt | Führen Sie den gesamten Einrichtungsprozess aus: Erstellen Sie zuerst eine OAuth-Client-ID und aktualisieren Sie dann Ihre IAP-Einstellungen. |
| 708 | Ungültiger Name des Personalpools | 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 der 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 durch Ziel geschlossen | Setzen Sie die VM zurück. Wenn die Probleme weiterhin bestehen, untersuchen Sie auth.log (normalerweise in /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 „Tunnel User“ für die Ressource zugewiesen ist, und ob die VM vorhanden ist und ausgeführt wird. |
| 4047 | Instanz ist nicht vorhanden oder wurde beendet | Prüfen Sie, ob Ihre VM eingeschaltet ist und die Startsequenz vollständig abgeschlossen hat. |
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.