IAP anpassen

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

  • Kompatibilität mit Anthos und Istio in Google Kubernetes Engine
  • Verarbeitung von CORS-Preflight-Anfragen
  • Authentifizierung von Nutzern
  • Die Fehlerseite, die Nutzer sehen, falls der Zugriff verweigert wird.

Einstellungen verwalten

Sie können die Einstellungen über die Cloud Console, die IAP API oder das gcloud-Befehlszeilentool aufrufen und aktualisieren.

So verwalten Sie IAP-Einstellungen:

Console

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

  1. Rufen Sie die Seite Identity-Aware Proxy auf.
    Zur Seite "Identity-Aware Proxy"
  2. Suchen Sie im Tab HTTPS-Ressourcen Ihre Ressource.
  3. Öffnen Sie das Dreipunkt-Menü und klicken Sie auf Einstellungen.
  4. Nachdem Sie die gewünschten Änderungen vorgenommen haben, klicken Sie auf Speichern

gcloud

Verwenden Sie gcloud iap settings get und gcloud iap settings set wie unten gezeigt, um Einstellungen mit dem gcloud-Befehlszeilentool abzurufen und zu ändern:

  • Verwenden Sie folgende Befehle, um Einstellungen für ein Projekt, einen Ordner oder eine Organisation abzurufen. Weitere Informationen finden sich unter gcloud iap settings get:
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

Um Einstellungen mit der IAP API abzurufen und zu ändern, stellen Sie mit den HTTP-Verben GET oder PATCH Anfragen an den gewünschten Ressourcenendpunkt in Google Cloud. Zum Abrufen oder Ändern einer Einstellung kombinieren Sie das Pfadsuffix :iapSettings, einen Ressourcenpfad (wie in Ressourcen und Berechtigungen beschrieben) und eine entsprechende HTTP-Methode. Weitere Informationen finden sich 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

Zugriffssteuerung für Einstellungen verstehen

Zum Aufrufen und Ändern der IAP-Einstellungen sind bestimmte Berechtigungen erforderlich. In der Tabelle unten sind die Berechtigungen aufgeführt, um die Einstellungen für die jeweiligen Ressourcentypen aufrufen und ändern zu können. 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
Webdiensttyp iap.webTypes.getSettings iap.webTypes.updateSettings
Webdienst iap.webServices.getSettings iap.webServices.updateSettings
Version des Webdienstes iap.webServiceVersions.getSettings iap.webServiceVersions.updateSettings

Die Rolle Administrator IAP-Einstellungen (roles/iap.settingsAdmin) gewährt alle diese Berechtigungen, ebenso die Rolle Projektbearbeiter (roles/editor). Die Rolle Projektbetrachter (roles/viewer) gewährt alle getSettings-Berechtigungen.

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 G Suite-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 RCTokens für Anthos und Istio ausgeben
access_settings.gcip_settings Authentifizieren bei Identity Platform

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.

Wenn Sie access_settings.cors_settings.allow_http_options als Beispiel verwenden, 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-OPTIONEN-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. Sendet Ihre Anwendung keine entsprechende Preflight-Antwort, die die erforderlichen Access-Control-*-Antwort-Header enthält, wird die Anfrage vom Browser mit einer Fehlermeldung blockiert. 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.

Authentifizierung mit einer Google Workspace-Domain

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. Dies hat mehrere Vorteile:

  • Ist ein Nutzer mit mehreren Konten angemeldet (z. B. ein Arbeitskonto und ein privates Konto), wählt das System automatisch das Arbeitskonto aus, statt die UI für die Kontoauswahl anzuzeigen.

  • Ist ein Nutzer nicht mit seinem Google-Konto angemeldet, wird die Domain der E-Mail-Adresse in der Anmelde-UI automatisch eingefügt. Dies bedeutet, dass der Nutzer zum Beispiel statt alice@example.com nur alice eingeben muss.

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

Zur Aktivierung dieses Verhaltens müssen Sie den Wert von access_settings.oauth_settings.login_hint auf den Namen Ihrer Google Workspace-Domain festlegen (z. B. example.com).

Ist diese Einstellung aktiviert, können Nutzer, die sich nicht in der angegebenen Google Arbeitsbereich-Domain befinden, generell keine Verbindung zu Ihrer Anwendung herstellen. Zum Authentifizieren von Nutzern außerhalb der Domain können Sie die programmatische Authentifizierung verwenden.

Weitere Informationen finden Sie in der Dokumentation zu OpenID Connect.

Benutzerdefinierte Fehlerseite „Zugriff verweigert“ einrichten

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.

RCToken-Mesh-IDs für Anthos und Istio ausgegeben

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.

Mit Identity Platform authentifizieren

Feld Standardwert
access_settings.gcip_settings null

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

Einstellungen in der Ressourcenhierarchie übernehmen

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. Die Einstellungen werden in der Reihenfolge angewendet, in der sie ermittelt werden. Werte, die auf einer höheren Ebene festgelegt wurden, werden also durch Werte überschrieben, die auf einer niedrigeren Ebene angegeben wurden. Wenn für access_settings.cors_settings.allow_http_options auf Projektebene beispielsweise die Einstellung true festgelegt ist, auf Dienstebene aber die Einstellung false, dann ist der gültige Wert false.

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