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 GKE Enterprise 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 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.
Verwenden Sie die Google Cloud CLI oder API, um die IAP-Einstellungen für alle Ressourcen, einschließlich Ordner, Projekte und Organisationen, zu aktualisieren.
So verwalten Sie IAP-Einstellungen:
Console
So rufen Sie Einstellungen mit der Google Cloud Console auf und ändern sie:
- Rufen Sie die Seite Identity-Aware Proxy auf.
Zur Seite "Identity-Aware Proxy" - Suchen Sie auf dem Tab APPLICATIONS (ANWEDNUNGEN) nach Ihrer Ressource.
- Öffnen Sie das Dreipunkt-Menü und klicken Sie auf Einstellungen.
- Klicken Sie auf Speichern.
gcloud
Verwenden Sie gcloud iap settings get
und gcloud iap settings set
wie unten gezeigt, um Einstellungen mit der Google Cloud CLI abzurufen und zu ändern:
- 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
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 |
GKE Enterprise- 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 Re-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.
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. Wenn Ihre Anwendung keine entsprechende Preflight-Antwort, die die erforderlichen Access-Control-*
-Antwort-Header enthält, sendet, blockiert der Browser die Anfrage mit einer Fehlermeldung. 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:
Fügen Sie Ihrer Anwendung Code hinzu, mit dem
OPTIONS
-Anfragen beantwortet werden.Ändern Sie die Einstellung
access_settings.cors_settings.allow_http_options
intrue
, damit IAPOPTIONS
-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
nuralice
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
). Inhaberschaft der Domain 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 „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.
Mit dieser Funktion können Sie auch die URL für die Fehlerbehebung einbetten. Weitere Informationen finden Sie unter Fehlerbehebungs-URL für die Fehlerseite „Zugriff verweigert“ aktivieren.
GKE Enterprise- 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.
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.