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.
- 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-Apps über die Google Cloud -Konsole, die IAP API oder die Google Cloud CLI aufrufen und aktualisieren.
Wenn Sie die IAP-Einstellungen für alle Ressourcen, einschließlich Ordner, Projekte und Organisationen, aktualisieren möchten, verwenden Sie die Google Cloud CLI oder API.
So verwalten Sie IAP-Einstellungen:
Console
So rufen Sie Einstellungen in 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 ANWENDUNGEN nach Ihrer Ressource.
- Öffnen Sie das Dreipunkt-Menü und klicken Sie auf Einstellungen.
- 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 über die Google Cloud Console oder die 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 mit der 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 Ansehen und Aktualisieren von IAP-Einstellungen erforderlich sind.
Rollen für Einstellungen
Sie können die Rolle Administrator für IAP-Einstellungen (roles/iap.settingsAdmin) auf Organisations-, Ordner- und Projektebene zuweisen. Informationen zu den Berechtigungen, die mit der Rolle „IAP Settings Admin“ gewährt werden, 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 allegetSettings-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 |
Richtlinie für die erneute Authentifizierung festlegen Weitere Informationen finden Sie unter Reauthentifizierung 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-OPTIONS-Anfragen (CORS-Preflight) zulassen
| 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 App 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:
Fügen Sie Ihrer Anwendung Code hinzu, mit dem
OPTIONS-Anfragen beantwortet werden.Ändern Sie die Einstellung
access_settings.cors_settings.allow_http_optionsintrue, 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.
Wenn ein Nutzer nicht in seinem Google-Konto angemeldet ist, wird im Anmelde-UI automatisch der Domainteil seiner E‑Mail-Adresse ausgefüllt. Der Nutzer muss also nur
aliceanstelle vonalice@example.comeingeben.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.
Um dieses Verhalten zu aktivieren, 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 daher 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 „Zugriff verweigert“ festlegen
| 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 für die Fehlerbehebung einbetten. Weitere Informationen finden Sie unter URL zur Fehlerbehebung für Ihre 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.
Ü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 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.