Häufig gestellte Fragen und Fehlerbehebung

Dieses Dokument enthält häufig gestellte Fragen zu Identity-Aware Proxy (IAP).

Welche Anwendungen kann ich mit IAP schützen?

IAP kann verwendet werden mit:

  • 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

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?

Das passiert in der Regel, wenn Ihren Anfragen keine Cookies angehängt werden. Bei JavaScript-Methoden werden Anfragen standardmäßig keine Cookies angehängt.

Für verschiedene Anfragemethoden sind unterschiedliche Ansätze erforderlich:

  • Für XMLHttpRequest withCredentials auf true setzen
  • Legen Sie für die Fetch API credentials auf include oder same-origin fest.

Informationen zum Umgang mit sitzungsbezogenen Fehlern finden Sie unter Cloud IAP-Sitzungen verwalten.

Warum erhalte ich eine HTTP 401 Unauthorized anstelle einer 302 Redirect?

IAP sendet nur dann einen 302 Redirect, 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 von 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 POST-Anfragen an mit IAP gesicherte Ressourcen Folgendes hinzu:

Kann ich IAP verwenden, wenn ich die API deaktiviert habe?

Ja, auf mit IAP gesicherte Ressourcen kann auch bei deaktivierter API zugegriffen werden. 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 zuweisen. Weitere Informationen finden Sie in den 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?

Für IAP werden die folgenden Domains von Google verwendet:

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 IP-Adressen Ihr Backend nicht erreichen können, sind Ihre Anwendungen nicht zugänglich.

Achten Sie bei IAP-TCP-Verbindungen zu bestimmten VMs darauf, dass die VM Verbindungen aus dem Bereich 35.235.240.0/20 akzeptiert.

Warum erhalte ich immer wieder 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 sind in der Regel nur vorübergehend. Implementieren Sie einen exponentiellen Backoff für Wiederholungen.

Wie kann ich Fehler beheben, wenn das Kontingent überschritten wurde (Fehlercode 429)?

Der Fehlercode 429 tritt auf, wenn Ihre Anwendung die Anfragelimits der IAP überschreitet. Der Dienst erzwingt 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) gelten als Browseranfragen.

Diese Limits gelten kollektiv für alle IAP-geschützten Ressourcen in Ihrem Projekt.

Wenn Sie kontingentsbedingte Fehler erhalten, haben Sie folgende Möglichkeiten:

  • Vermeiden Sie Lasttests in der Produktionsumgebung – verwenden Sie alternative Netzwerkpfade, die den IAP umgehen
  • Implementieren Sie für Dienst-zu-Dienst-Traffic einen exponentiellen Backoff, um 429-Fehler ordnungsgemäß zu behandeln.
  • Anwendungen mit hohem Traffic auf mehrere Projekte verteilen
  • Apigee oder ähnliche API-Gateway-Lösungen für API-basierte Anwendungen verwenden
  • Wenden Sie sich an den Google Cloud Support, um das Kontingent zu erhöhen, wenn das Problem auf ein organisches Wachstum zurückzuführen ist.

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 erscheinen, aber nicht funktionieren, verwenden Sie API-Methoden, um die Einstellungen zu prüfen (GET für die Compute Engine, GET für die App Engine) und setzen Sie sie mit PATCH zurück.
9 Fehlgeschlagene OAuth-Weiterleitung Dies ist ein interner Fehler, der automatisch protokolliert wurde. Sie müssen nichts tun.
9 (mit Pfad-Umschreibregeln) Fehlgeschlagene OAuth-Weiterleitung Die Pfadüberschreibungsregeln 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 Pfad-Routingregeln) Fehlgeschlagene 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 hinzu.
11 Falsch konfigurierte OAuth-Client-ID Prüfen Sie Ihre Client-ID und Ihr Secret auf der Seite „Anmeldedaten“. Wenn sie korrekt erscheinen, aber nicht funktionieren, verwenden Sie API-Methoden, um die Einstellungen zu prüfen (GET für die Compute Engine, GET für die 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 nicht gelöscht oder fälschlicherweise geändert wurde.
51 Der Browser unterstützt kein Verbindungs-Pooling Bitten Sie die Endnutzer, ihre Browser auf die aktuellen Versionen 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 Einträge in der Zuordnungstabelle für primäre Zertifikate. Verwenden Sie separate Einträge, um jedes Zertifikat dem richtigen Hostnamen zuzuordnen. Weitere Informationen 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.
429 Anfragekontingent überschritten Sie haben das Anfragelimit erreicht (360.000 pro Minute für jeden Anfragetyp). Sie können Workloads auf mehrere Projekte verteilen, die clientseitige Anfragedrosselung implementieren oder sich an den Support wenden, um bei Bedarf eine Kontingenterhöhung zu beantragen.
551 In-App-Aktionen an mehreren Stellen aktiviert Sie können IAP nicht sowohl für die Weiterleitungsregel als auch für den Backend-Dienst aktivieren. Deaktivieren Sie die Funktion an einem Standort. Folgen Sie dazu der Anleitung unter Für Compute Engine aktivieren.
700, 701 Probleme mit dem Personalpoolanbieter Konfigurieren Sie genau einen Anbieter für Ihren Personalpool. Weitere Informationen finden Sie unter Einschränkungen für Workforce Pools.
705 Fehlende OAuth-Client-ID für die Mitarbeiteridentitä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 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 vom Ziel geschlossen Setzen Sie die VM zurück. Wenn die Probleme weiterhin auftreten, prüfen Sie auth.log (normalerweise in /var/log/) oder verwenden Sie die serielle Konsole für eine detailliertere Diagnose.
4033 Problem mit Berechtigungen, Existenz oder VM-Status Prüfen Sie auf der IAP-Seite, ob der Rolle „Nutzer IAP-gesicherter Tunnel“ für die Ressource zugewiesen ist. Prüfen Sie außerdem, ob die VM vorhanden und ausgeführt wird.
4047 Instanz ist nicht vorhanden oder angehalten Achten Sie darauf, dass die VM eingeschaltet ist und der Startvorgang vollständig abgeschlossen wurde.

Wenn Sie das Problem nicht lösen 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. Den Clientschlüssel müssen Sie aus der Antwort entfernen.