Auf dieser Seite wird gezeigt, wie Sie mit Identity-Aware Proxy (IAP) die Identität eines Nutzers abrufen. Durch das Abrufen der Identität des Nutzers kann Ihre Anwendung prüfen, ob eine Anfrage über IAP erfolgt ist. Zur ordnungsgemäßen Sicherung der Anwendung müssen Sie immer die mit IAP authentifizierte Nutzeridentität mit einem der im Folgenden aufgeführten Verfahren abrufen.
Identität des Nutzers mit signiertem Header abrufen
Ihre Anwendung muss für jede Anfrage den HTTP-Anfrageheader x-goog-iap-jwt-assertion
prüfen, um festzustellen, ob eine Anfrage an Compute Engine, GKE, Cloud Run, die Standardumgebung von App Engine oder die flexible App Engine-Umgebung von IAP autorisiert wurde.
Weitere Informationen zum Schützen Ihrer App mit signierten Headern
Außerdem leitet IAP in den HTTP-Headern der Tabelle unten die Identität des Nutzers an den Back-End-Dienst weiter. Diese Header müssen das Namespace-Präfix accounts.google.com
haben. Die Header sind aus Kompatibilitätsgründen vorhanden und sollten nicht als Sicherheitslösung verwendet werden. Wenn Sie diese Header verwenden, müssen Sie sie mit den Identitätsdaten aus dem oben aufgeführten authentifizierten JWT-Header vergleichen.
Name des Headers | Beschreibung | Beispielwert |
---|---|---|
X-Goog-Authenticated-User-Email
|
Die E-Mail-Adresse des Nutzers |
accounts.google.com:example@gmail.com
|
X-Goog-Authenticated-User-Id
|
Eine dauerhafte, eindeutige Kennzeichnung für den Nutzer |
accounts.google.com:userIDvalue
|
Nutzeridentität mit der Users API der App Engine-Standardumgebung abrufen
Wenn Sie mit einer App Engine-Standardumgebung arbeiten, können Sie auch die User API zum Abrufen der Identität des Nutzers in Ihrem Anwendungscode verwenden.
Wenn Ihre Anwendung diese API bereits verwendet, müssen Sie nichts ändern. IAP stellt die Identität des Nutzers bereit. Der Wert für die Nutzer-ID der Users API jedes Nutzers ändert sich aber, wenn IAP aktiviert wird.
Für den Abruf der von IAP geprüften Nutzeridentität rufen Sie die Users API auf, um den aktuellen Nutzer zurückzugeben. Wenn die Funktion einen Nutzer wie req.getUserPrincipal() != null
in Java zurückgibt, wurde der Nutzer durch IAP authentifiziert.
Zustimmungsbildschirm
Wenn IAP aktiviert ist, wird ein Nutzer, der zum ersten Mal auf Ihre Anwendung zugreift, zu einem Zustimmungsbildschirm weitergeleitet. Hier muss er bestätigen, dass er seine Identität mit Ihrer Anwendung freigibt. Dies geschieht auch dann, wenn der Nutzer vor der Aktivierung von IAP der Anwendung seine Zustimmung gegeben hat, und wenn Sie IAP deaktivieren und dann wieder aktivieren.
Wenn Sie die Users API verwenden, wird der Zustimmungsbildschirm in der Regel unterdrückt, wenn Anwendung und Nutzer sich in derselben Google Workspace-Domain befinden. Wenn Sie IAP aktivieren, wird der Zustimmungsbildschirm nicht automatisch unterdrückt. Um den Zustimmungsbildschirm bei aktiviertem IAP zu unterdrücken, führen Sie die folgenden Schritte aus:
- Rufen Sie die Admin-Konsole auf.
Zur Admin-Konsole - Wählen Sie in der Liste der Steuerelemente die Option Sicherheit aus.
- Wenn die Option Sicherheit nicht angezeigt wird, wählen Sie in der grauen Leiste am unteren Rand der Seite Mehr Widgets und in der Liste, die dann eingeblendet wird, Sicherheit aus.
- Wenn Sie die Steuerelemente nicht sehen können, achten Sie darauf, dass Sie als Administrator für die Domain angemeldet sind.
- Wählen Sie in der Optionsliste Weitere anzeigen und anschließend Erweiterte Einstellungen.
- Wählen Sie im Abschnitt Authentifizierung die Option API-Client-Zugriff verwalten aus.
- Geben Sie im Feld Clientname die IAP-Client-ID für OAuth 2.0 ein. Sie finden die IAP-Client-ID auf der Seite "Anmeldedaten".
Zur Seite "IAP-Anmeldedaten" - Geben Sie im Feld Ein oder mehrere API-Bereiche den Wert
email, openid
ein. - Klicken Sie auf Autorisieren.
Zur Vereinfachung dieses Vorgangs können Sie mit einem API-Aufruf eine einzelne IAP-Client-ID für OAuth 2.0 für alle Anwendungen verwenden. Mit der Google Cloud Console ist es nicht möglich, die Client-ID anzugeben, die mit IAP verwendet werden soll.