Fehlerbehebung und häufig gestellte Fragen

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, können Sie das Problem durch Prüfen des Netzwerkverkehrs Ihres Browsers diagnostizieren.

Netzwerkverkehr prüfen

  1. Öffnen Sie in Ihrem Browser ein neues Inkognitofenster (Chrome) oder privates Fenster.
  2. Öffnen Sie die Entwicklertools Ihres Browsers und rufen Sie den Tab Netzwerk auf.
  3. Wählen Sie die Option Protokoll beibehalten aus, um alle Anfragen während Weiterleitungen zu erfassen.
  4. Reproduzieren Sie das Problem, indem Sie die URL aufrufen, bei der Probleme auftreten.
  5. Prüfen Sie die Netzwerkanfragen im Protokoll, um festzustellen, wo der Fehler aufgetreten ist.

Netzwerkverkehr analysieren

Wenn Sie auf eine durch 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 und Sie zur Anwendung weitergeleitet werden.

Sie können Fehler anhand der Domain beheben, in der der Fehler auftritt:

  • Fehler auf iap.googleapis.com: Wenn auf der Domain iap.googleapis.com ein Fehler auftritt, wird auf der Seite eine detaillierte Fehlermeldung angezeigt. Wenn der Fehler mit Ihren IAP-Einstellungen zusammenhängt, z. B. mit OAuth-Client-Problemen, passen Sie Ihre Einstellungen an. Wenn Clientfehler auftreten, die Sie nicht beheben können, oder wenn Serverfehler auftreten, öffnen Sie ein Google Cloud -Support-Ticket.
  • Fehler in Ihrer Anwendungsdomain: Wenn ein Fehler auftritt, nachdem Sie zu Ihrer IAP-gesicherten Anwendungsdomain weitergeleitet wurden, wird ein Fehlercode angezeigt. Im Abschnitt Fehlercodes finden Sie Details zu häufigen Fehlern. Wenn Sie das Problem nicht beheben können, öffnen Sie ein Google Cloud -Support-Ticket.

Welche Anwendungen kann ich mit IAP schützen?

IAP kann mit Folgendem verwendet werden:

  • Anwendungen in der App Engine-Standardumgebung und der flexiblen App Engine-Umgebung

  • Compute Engine-Instanzen mit Backend-Diensten für HTTP(S)-Load-Balancing

  • Google Kubernetes Engine-Container

  • Cloud Run-Anwendungen mit HTTP(S)-Load-Balancing-Backend-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 möglicherweise 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 sind. JavaScript-Methoden hängen standardmäßig keine Cookies an.

    Für die verschiedenen Anfragemethoden sind unterschiedliche Ansätze erforderlich:

    • Legen Sie für XMLHttpRequest den Wert withCredentials auf true fest.

    • Legen Sie für die Fetch API credentials auf include oder same-origin fest.

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

    Warum erhalte ich ein HTTP 401 Unauthorized anstelle eines 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 für Weiterleitungen anzugeben.

    Warum lösen POST-Anfragen keine Weiterleitungen aus?

    Browser leiten nicht als Antwort auf POST-Anfragen weiter. 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:

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

    Ja, durch IAP gesicherte Ressourcen bleiben zugänglich, 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) zugunsten detaillierterer Berechtigungen einschränken. 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-Domains:

    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 Backend 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 gelegentlich interne Serverfehler?

    Nachrichten 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.

    Identity Platform-Fehler beheben (Fehlercode 38)

    Der Fehlercode 38 gibt an, dass die Identity Platform-Authentifizierungs-URL für Ihre externe Identität in IAP nicht richtig konfiguriert ist.

    So finden Sie die URL:

    1. Rufen Sie die Seite „IAP“ auf.

      Zu IAP

    2. Klicken Sie auf den Tab Anwendungen.

    3. Suchen Sie in der Spalte Ressource nach Ihrer Anwendung und setzen Sie ein Häkchen.

    4. 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 vom Typ „Kontingent überschritten“ (Fehlercode 429) beheben?

    Der Fehlercode 429 tritt auf, wenn Ihre Anwendung die Anfragelimits von 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 ist eine Anfrage, die einen AUTHORIZATION- oder PROXY-AUTHORIZATION-Header und kein IAP-Cookie enthält. Alle anderen Anfragen (einschließlich solcher ohne Anmeldedaten) werden als Browseranfragen betrachtet.

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

    Wenn kontingentbezogene Fehler auftreten, können Sie die folgenden Lösungen ausprobieren:

    • Vermeiden Sie Lasttests in der Produktion. Verwenden Sie stattdessen alternative Netzwerkpfade, die IAP umgehen.

    • Implementieren Sie für den Dienst-zu-Dienst-Traffic einen exponentiellen Backoff, um 429-Fehler ordnungsgemäß zu verarbeiten.

    • 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 erhalten, wenn das Problem durch organisches Wachstum verursacht wird.

    Anmeldeprobleme oder unerwartetes Verhalten bei IAP mit der Identity Platform

    Wenn Sie einen externen Identitätsanbieter (IdP) mit Identity Platform verwenden, können große Anspruchsdaten im ID-Token dazu führen, dass das IAP-Sitzungscookie die Größenbeschränkungen des Browsers (normalerweise etwa 4 KB) überschreitet. IAP speichert Sitzungsinformationen, einschließlich dieser Anforderungen, in Browser-Cookies.

    Wenn das Größenlimit für Sitzungscookies überschritten wird, kann dies zu Anmeldefehlern oder unendlichen Anmeldeschleifen führen. Um diese Probleme zu vermeiden, sollten Sie Folgendes tun:

    • Ansprüche reduzieren: Konfigurieren Sie Ihren externen IdP so, dass nur wichtige Ansprüche an Identity Platform gesendet werden. Minimieren Sie die Größe und Anzahl der im Token enthaltenen Anforderungen.

    • 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 gesetzt wurden. Suchen Sie nach Warnungen zur Cookie-Größe, insbesondere für IAP-bezogene Cookies.

    • Minimale Anforderungen testen: Konfigurieren Sie den IdP vorübergehend so, dass er die kleinstmögliche Anzahl von Anforderungen sendet. Wenn das Problem dadurch behoben wird, ist die Cookie-Größenbeschränkung die Ursache.

    Warum erhalte ich den HTTP-Fehler 502 mit der Meldung „Empty Google Account OAuth client ID(s)/secret(s)“?

    Wenn Sie auf Ihre durch IAP gesicherte Anwendung zugreifen und einen HTTP 502 Bad Gateway-Fehler 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 normalerweise in den folgenden Szenarien auf:

    • Das Projekt gehört zu keiner Organisation: Der von Google verwaltete Standard-OAuth-Client ist nur für Projekte verfügbar, die zu einerGoogle 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 überprü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 OAuth-Weiterleitung fehlgeschlagen Dies ist ein interner Fehler, der automatisch protokolliert wurde. Sie müssen nichts tun.
    9 (mit Regeln zur Pfadumschreibung) Fehlgeschlagene OAuth-Weiterleitung Die Regeln für das 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 dies mit dem Befehl gcloud compute backend-services update aktualisieren.
    9 (mit Pfadroutingregeln) Fehlgeschlagene OAuth-Weiterleitung Erstellen Sie Pfadregelvarianten für beide Versionen jedes Pfads (mit und ohne abschließende Schrägstriche) 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 Ihren Clientschlüssel auf der Seite „Anmeldedaten“. Wenn sie korrekt aussehen, 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 fälschlicherweise geändert wurde.
    51 Browser unterstützt kein Connection Pooling Bitten Sie die 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 Zertifikatszuordnungseintrag) Hostname/SSL-Zertifikat stimmen nicht überein IAP unterstützt keine primären Zertifikatszuordnungseinträge. Verwenden Sie separate Einträge, um jedes Zertifikat dem richtigen Hostnamen zuzuordnen. Eine Anleitung finden Sie unter Zertifikatszuordnungseintrag 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/Min. für jeden Anfragetyp). Sie können Arbeitslasten auf mehrere Projekte verteilen, clientseitige Anfragebeschränkungen implementieren oder sich an den Support wenden, um Kontingenterhöhungen anzufordern, 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 Standort gemäß der Anleitung unter Für Compute Engine aktivieren.
    700, 701 Probleme mit Personalpoolanbietern Konfigurieren Sie genau einen Anbieter für Ihren Workforce-Pool. Detaillierte Anforderungen finden Sie unter Einschränkungen für Personalpools.
    705 Fehlende OAuth-Client-ID für Workforce Identity Führen Sie den gesamten Einrichtungsvorgang aus: Erstellen Sie zuerst eine OAuth-Client-ID und aktualisieren Sie dann Ihre IAP-Einstellungen.
    708 Ungültiger Name für Personalpool Prüfen Sie, ob Ihr Personalpool vorhanden ist und das richtige Format hat: 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 über diesen Port zulassen.
    4010 Verbindung vom Ziel geschlossen Setzen Sie die VM zurück. Wenn die Probleme weiterhin bestehen, prüfen 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 „Tunnelnutzer“ 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 der Fehler nicht auf dieser Seite aufgeführt ist, wenden Sie sich an Cloud Customer Care. Geben Sie dabei eine Beschreibung des Fehlers und die Antwort an, die Sie von einem GET-Aufruf der API erhalten. Entfernen Sie den Clientschlüssel aus der Antwort.