IAP anpassen

In diesem Dokument wird beschrieben, wie Sie die Einstellungen für Identity-Aware Proxy (IAP) anpassen. Mit diesen Einstellungen können Sie Verhalten steuern, darunter:

* Kompatibilität mit Cloud Service Mesh und Istio in Google Kubernetes Engine. * Die Verarbeitung von CORS-Preflight-Anfragen. * Wie Nutzer authentifiziert werden. * Die Fehlerseite, die Nutzern angezeigt wird, wenn der Zugriff verweigert wird.

Einstellungen verwalten

Sie können IAP-Einstellungen für Load Balancer und App Engine-Anwendungen über die Google Cloud Console, die IAP API oder die Google Cloud CLI aufrufen und aktualisieren.

Wenn Sie IAP-Einstellungen für alle Ressourcen aktualisieren möchten, einschließlich Ordnern, Projekten und Organisationen, verwenden Sie die Google Cloud CLI oder die API.

So verwalten Sie IAP-Einstellungen:

Console

So rufen Sie Einstellungen in der Google Cloud Console auf und ändern sie:

  1. Rufen Sie die Seite Identity-Aware Proxy auf.
    Zur Seite "Identity-Aware Proxy"
  2. Suchen Sie auf dem Tab ANWENDUNGEN nach Ihrer Ressource.
  3. Öffnen Sie das Dreipunkt-Menü und klicken Sie auf Einstellungen.
  4. Klicken Sie auf Speichern.

gcloud

Wenn Sie Einstellungen mit der Google Cloud CLI abrufen und ändern möchten, verwenden Sie die Befehle gcloud iap settings get und gcloud iap settings set so:

  • Verwenden Sie folgende Befehle, um Einstellungen für ein Projekt, einen Ordner oder eine Organisation abzurufen. Informationen zum Konfigurieren der IAP-Einstellungen mit der Google Cloud Console oder der gcloud CLI finden Sie unter IAP anpassen.
gcloud iap settings get --project=PROJECT-ID
gcloud iap settings get --folder=FOLDER-ID
gcloud iap settings get --organization=ORGANIZATION-ID
  • So rufen Sie Einstellungen für bestimmte IAP-Ressourcentypen unter einem Projekt ab:
gcloud iap settings get --project=PROJECT-ID \
  --resource-type=RESOURCE-TYPE-NAME
  • Um Einstellungen für ein Projekt, einen Ordner, eine Organisation oder einen IAP-Ressourcentyp unter einem Projekt festzulegen erstellen Sie eine JSON- oder YAML-Datei, die die gewünschten neuen Einstellungen enthält, und geben den Pfad zu der Datei an. Weitere Informationen finden sich unter dem Thema gcloud iap settings set:
gcloud iap settings set SETTING_FILE --project=PROJECT-ID \
  --resource-type=RESOURCE-TYPE-NAME

API

Wenn Sie Einstellungen über die IAP API abrufen und ändern möchten, senden Sie Anfragen mit den HTTP-Verben GET oder PATCH an den ausgewählten Ressourcenendpunkt in Google Cloud. Kombinieren Sie das Pfadsuffix :iapSettings, einen Ressourcenpfad (wie unter Ressourcen und Berechtigungen beschrieben) und eine geeignete HTTP-Methode, um eine Einstellung abzurufen oder zu ändern. Weitere Informationen finden Sie unter getIapSettings() und updateIapSettings().

  • Zum Abrufen oder Festlegen von Einstellungen für einen bestimmten IAP-Ressourcentyp unter einem Projekt:
    https://iap.googleapis.com/v1/projects/PROJECT-ID/iap_web/appengine-APP-ID/services/SERVICE-ID/versions/VERSION-ID:iapSettings
    
  • Um Einstellungen für ein Projekt zu erhalten oder festzulegen:

    https://iap.googleapis.com/v1/projects/PROJECT-ID:iapSettings
  • Zum Abrufen oder Festlegen von Einstellungen für einen Ordner:

    https://iap.googleapis.com/v1/folders/FOLDER-ID:iapSettings
  • Um Einstellungen für eine Organisation zu erhalten oder festzulegen:

    https://iap.googleapis.com/v1/organizations/ORGANIZATION-ID:iapSettings

Rollen und Berechtigungen für IAP-Einstellungen

In diesem Abschnitt werden die Rollen und Berechtigungen beschrieben, die zum Aufrufen und Aktualisieren von IAP-Einstellungen erforderlich sind.

Rollen für Einstellungen

Sie können die Rolle IAP Settings Admin (roles/iap.settingsAdmin) auf Organisations-, Ordner- und Projektebene zuweisen. Informationen zu den Berechtigungen, die die Rolle „IAP-Einstellungen-Administrator“ gewährt, finden Sie unter Berechtigungen für Einstellungen.

Weitere Informationen zu Rollen und Berechtigungen für IAP finden Sie unter Identity-Aware Proxy-Rollen und -Berechtigungen.

Die folgenden einfachen Rollen bieten diese Berechtigungen:

  • Die Rolle „Projektbetrachter“ (roles/viewer) gewährt alle getSettings-Berechtigungen.

  • Die Rolle „Bearbeiter“ (roles/editor) gewährt alle in der Tabelle beschriebenen Berechtigungen.

Berechtigungen für Einstellungen

In der folgenden Tabelle sind die IAM-Berechtigungen aufgeführt, die zum Lesen und Ändern von Einstellungen für die einzelnen Ressourcentypen erforderlich sind. Eine Beschreibung der verschiedenen Ressourcentypen finden Sie unter Ressourcen und Berechtigungen.

Ressource Berechtigung zum Aufrufen der Einstellungen Berechtigung zum Ändern der Einstellungen
Organisation iap.organizations.getSettings iap.organizations.updateSettings
Ordner iap.folders.getSettings iap.folders.updateSettings
Projekt iap.projects.getSettings iap.projects.updateSettings
Alle Webdienste iap.web.getSettings iap.web.updateSettings
Webtypen iap.webTypes.getSettings iap.webTypes.updateSettings
Webdienste iap.webServices.getSettings iap.webServices.updateSettings
Webdienstversionen iap.webServiceVersions.getSettings iap.webServiceVersions.updateSettings
Webtypen iap.webTypes.getSettings iap.webTypes.updateSettings

Weitere Informationen zum Zuweisen von IAM-Rollen finden Sie unter Zugriff auf Ressourcen erteilen, ändern und entziehen.

IAP-Einstellungen anpassen

IAP bietet die folgenden Anpassungseinstellungen:

Feld Beschreibung
access_settings.cors_settings.allow_http_options Steuerung der HTTP-OPTIONEN (CORS-Preflight)
access_settings.oauth_settings.login_hint Anmeldung für Nutzer einer Google Workspace-Domain vereinfachen
application_settings.access_denied_page_settings.access_denied_page_uri Benutzerdefinierte Fehlerseite anzeigen, falls der Zugriff verweigert wird
application_settings.csm_settings.rctoken_aud Cloud Service Mesh- und Istio-RCTokens ausstellen
access_settings.gcip_settings Authentifizieren bei Identity Platform
access_settings.ReauthSettings Legen Sie eine Richtlinie für die erneute Authentifizierung fest. Weitere Informationen finden Sie unter Erneute Authentifizierung konfigurieren.

Sie können Einstellungen auf Projektebene oder auf einer beliebigen niedrigeren IAP-Ressourcenebene anwenden.

Sie können Einstellungen für webbasierte IAP-Ressourcen konfigurieren, aber nicht für Ressourcen, die mit IAP für TCP-Weiterleitung aufgerufen werden.

Am Beispiel von access_settings.cors_settings.allow_http_options können Sie die Anpassungseinstellungen so konfigurieren:

YAML

access_settings:
  cors_settings:
    allow_http_options: "false"

JSON

{
  "access_settings": {
    "cors_settings": {
      "allow_http_options": "false"
    }
  }
}

In den folgenden Abschnitten finden Sie weitere Informationen zu den einzelnen Einstellungen.

HTTP-OPTIONS-Anfragen zulassen (CORS-Preflight)

Feld Standardwert
access_settings.cors_settings.allow_http_options false

Die Same-Origin-Richtlinie für das Web verhindert, dass Browser AJAX-Anfragen zwischen Websites senden. Standardmäßig kann JavaScript mit AJAX keine Anfrage an eine mit IAP gesicherte Anwendung senden, wenn der Ursprungsort der bereitgestellten Seite vom IAP-Hoststandort abweicht.

In einigen Fällen versuchen Browser automatisch, eine Anfrage auszuführen. Der Inhalt der Antwort wird aber verworfen, wenn sie keinen Access-Control-Allow-Origin-Header enthält. Damit diese Art von Anfragen zulässig ist, müssen Sie einen solchen Header in die Antworten Ihrer Anwendung einfügen.

In anderen Fällen sendet der Browser vor der Cross-Origin-Anfrage eine CORS-Preflight-Anfrage, eine Art HTTP-OPTIONS-Anfrage. Wenn Ihre Anwendung nicht mit einer entsprechenden Preflight-Antwort (mit den erforderlichen Access-Control-*-Antwortheadern) antwortet, blockiert der Browser die Anfrage mit einem Fehler. Da Preflight-Anfragen nicht mit Authentifizierungsdaten wie etwa einem IAP-Sitzungscookie gesendet werden, antwortet IAP ebenfalls mit einer Fehlermeldung.

So lassen Sie diese Anfragen zu:

  1. Fügen Sie Ihrer Anwendung Code hinzu, mit dem OPTIONS-Anfragen beantwortet werden.

  2. Ändern Sie die Einstellung access_settings.cors_settings.allow_http_options in true, damit IAP OPTIONS-Anfragen an Ihre Anwendung weiterleitet.

Mit einer Google Workspace-Domain authentifizieren

Feld Standardwert
access_settings.oauth_settings.login_hint ""

Wenn Ihre Anwendung nur Mitglieder einer bestimmten Google Workspace-Domain verwenden, können Sie IAP für einen optimalen Authentifizierungsablauf konfigurieren. Das bringt mehrere Vorteile mit sich:

  • Wenn ein Nutzer mit mehreren Konten angemeldet ist (z. B. mit einem Arbeitskonto und einem privaten Konto), wählt das System automatisch das Arbeitskonto aus, anstatt die Benutzeroberfläche für die Kontoauswahl anzuzeigen.

  • Wenn ein Nutzer nicht in seinem Google-Konto angemeldet ist, wird in der Benutzeroberfläche für die Anmeldung automatisch der Domainteil der E‑Mail-Adresse ausgefüllt. Der Nutzer muss dann beispielsweise nur alice anstelle von alice@example.com eingeben.

  • Wenn Ihre Google Workspace-Domain für die Verwendung eines externen SSO-Anbieters konfiguriert ist, zeigt das System statt der Anmeldeseite von Google die entsprechende benutzerdefinierte Anmeldeseite.

Wenn Sie dieses Verhalten aktivieren möchten, legen Sie den Wert von access_settings.oauth_settings.login_hint auf Ihren Google Workspace-Domainnamen fest (z. B. example.com). Die Domaininhaberschaft muss bestätigt worden sein: Sie können keine beliebigen Internet-DNS-Domains verwenden, deren Inhaber Sie sind. Domains, die als primäre oder sekundäre Google Workspace-Domain hinzugefügt wurden, sind bestätigt und können hier verwendet werden.

Wenn Sie Nutzer außerhalb der Domain authentifizieren müssen, können Sie die programmatische Authentifizierung verwenden.

Weitere Informationen finden Sie in der Dokumentation zu OpenID Connect.

Benutzerdefinierte Fehlerseite für verweigerten Zugriff festlegen

Hinweis: Diese Funktion ist nur im Rahmen eines kostenpflichtigen Enterprise-Sicherheitsabos verfügbar. Bei Interesse können Sie sich hier registrieren.
Feld Standardwert
application_settings.access_denied_page_settings.access_denied_page_uri ""

Sie können in diesem Feld eine URL festlegen, die Nutzer zu einer benutzerdefinierten Seite anstelle der standardmäßigen IAP-Fehlerseite weiterleitet, wenn der Zugriff von einer Richtlinie verweigert wird.

Sie können mit dieser Funktion auch die URL zur Fehlerbehebung einbetten. Weitere Informationen finden Sie unter URL zur Fehlerbehebung für die benutzerdefinierte Fehlerseite „Zugriff verweigert“ aktivieren.

Cloud Service Mesh- und Istio-RCToken-Mesh-IDs ausstellen

Feld Standardwert
application_settings.csm_settings.rctoken_aud ""

Wenn Sie Istio in GKE verwenden, können Sie IAP so konfigurieren, dass ein mit Istio kompatibles RCToken erstellt wird. Ist für dieses Feld ein nicht leerer String festgelegt, fügt IAP einen Ingress-Authorization-HTTP-Header mit einem RCToken hinzu. Für die Anforderung aud wird der Wert des Felds festgelegt.

Authentifizieren bei Identity Platform

Feld Standardwert
access_settings.gcip_settings null

Standardmäßig verwendet IAP das integrierte Identitätssystem von Google. Ist für dieses Feld ein Wert festgelegt, verwendet IAP für die Authentifizierung der Nutzer stattdessen Identity Platform.

IAP mit Terraform anpassen

Informationen zum Einrichten von IAP mit Terraform finden Sie unter google_iap_settings.

Übernahme von Einstellungen in der Ressourcenhierarchie

Anfragen für eine bestimmte Version eines Webdienstes werden von IAP immer evaluiert. Dieser Ressourcentyp befindet sich auf der untersten Ebene der Ressourcenhierarchie, die so aufgebaut ist:

- Organization
  - Folder
    - Project
      - All web services
        - Web service type
          - Web service
            - Web service version

Zum Festlegen der Einstellungen für die Version eines Webdienstes beginnt IAP mit einem Standardsatz von Werten und durchläuft die Hierarchie dann von oben nach unten. Einstellungen werden so angewendet, wie sie gefunden werden. Werte, die auf einer niedrigeren Ebene festgelegt sind, überschreiben also Werte, die auf einer höheren Ebene festgelegt sind. Wenn access_settings.cors_settings.allow_http_options beispielsweise auf Projektebene auf true, aber auf Dienstebene auf false festgelegt ist, ist der effektive Wert false.

Weitere Informationen zur IAP-Ressourcenhierarchie finden Sie unter Ressourcen und Berechtigungen.