Hostnamen- und Pfadbedingungen verwenden

Auf dieser Seite werden die IAM-Bedingungen (Identity and Access Management) von Hostnamen und Pfaden beschrieben.

Sie können IAP-Ressourcen (Identity-Aware Proxy) mit dem Hostnamen und Pfad einer Anfrage-URL sichern. Beispielsweise kann die IAM-Bedingung request.path.startsWith dazu verwendet werden, Mitarbeitern der Gruppe Privilegierter Zugriff nur dann Zugriff zu gewähren, wenn der URL-Pfad mit /admin beginnt.

Weitere Informationen zur Verwendung von Hostnamen- und Pfadbedingungen finden Sie unter Anfrageattribute.

Stringnormalisierung

Eine URL hat einen Hostnamen und einen Pfad. Beispielsweise enthält die URL https://sheets.google.com/create?query=param einen Hostnamen von sheets.google.com und einen Pfad von /create.

Back-Ends können Hostnamen und Pfade auf verschiedene Arten interpretieren. IAP normalisiert beim Prüfen der Richtlinien Hostnamen und Pfadstrings, um Mehrdeutigkeiten zu beseitigen.

IAP führt zwei Richtlinienprüfungen durch, wenn eine Anfrage einen nicht normalisierten Pfad enthält. Wenn der nicht normalisierte Pfad die Richtlinienprüfung besteht, normalisiert IAP den Pfad und eine zweite Richtlinienprüfung wird ausgeführt. Der Zugriff wird gewährt, wenn sowohl der nicht normalisierte als auch der normalisierte Pfad die Richtlinienprüfung bestehen.

Wenn eine Anfrage beispielsweise den Pfad /internal;some_param/admin enthält, führt IAP zuerst eine Richtlinienprüfung für den nicht normalisierten Pfad (/internal) aus. Wenn diese Prüfung bestanden wird, führt IAP eine zweite Richtlinienprüfung für den normalisierten Pfad (/internal/admin) aus.

Hostnamen

Die Normalisierung des Hostnamens umfasst Folgendes:

  • Punkte am Ende entfernen
  • Umwandlung in Kleinbuchstaben durchführen
  • Umwandlung in ASCII durchführen

Hostnamen, die Nicht-ASCII-Zeichen enthalten, werden mithilfe von Punycode weiter normalisiert. Sie müssen Punycode verwenden, um den String Ihres Hostnamens für den Abgleich zu normalisieren.

Verwenden Sie einen Converter wie Punycoder, um den Hostnamenstring mit Punycode zu normalisieren.

Im Folgenden finden Sie Beispiele für normalisierte Hostnamen:

  • FOO.com wird auf foo.com normalisiert
  • café.fr wird auf xn--caf-dma.fr normalisiert

Pfade

Die Pfadnormalisierung umfasst Folgendes:

  • Pfadparameter entfernen
  • Relative Pfade in ihre absolute Entsprechung auflösen

Ein Pfadparameter enthält alle Zeichen von einem ; bis entweder zum nächsten / oder zum Ende des Pfads.

Anfragen, die Pfadabschnitte enthalten, die mit ..; beginnen, gelten als ungültig. Beispiel: /..;bar/ und /bar/..;/ geben den Fehler HTTP 400: Bad Request zurück.

Im Folgenden finden Sie Beispiele für normalisierte Pfade:

  • /internal;some_param/admin wird auf /internal/admin normalisiert
  • /a/../b wird auf /b normalisiert
  • /bar;param1/baz;baz;param2 wird auf /bar/baz normalisiert

Subdomain-Endungen

Eine mit request.host.endsWith("google.com") festgelegte Richtlinie entspricht sowohl sub_domain.google.com wie auch testgoogle.com. Wenn Sie Ihre Richtlinie auf nur Subdomains beschränken möchten, die mit google.com enden, legen Sie Ihre Richtlinie auf request.host.endsWith(".google.com") fest.