Identität des Nutzers abrufen

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, die Standardumgebung von App Engine oder die flexible App Engine-Umgebung von IAP autorisiert wurde. Weitere Informationen finden Sie unter Anwendung mit signierten Headern sichern.

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. Beachten Sie, dass die Users API Python 3 nicht unterstützt.

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.

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:

  1. Öffnen Sie die Admin-Konsole von Google Workspace.
    Zur Admin-Konsole
  2. Wählen Sie in der Liste der Steuerelemente die Option Sicherheit aus.
    1. 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.
    2. Wenn Sie die Steuerelemente nicht sehen können, achten Sie darauf, dass Sie als Administrator für die Domain angemeldet sind.
  3. Wählen Sie in der Optionsliste Weitere anzeigen und anschließend Erweiterte Einstellungen.
  4. Wählen Sie im Abschnitt Authentifizierung die Option API-Client-Zugriff verwalten aus.
  5. 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"
  6. Geben Sie im Feld Ein oder mehrere API-Bereiche den Wert email, openid ein.
  7. 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 Cloud Console ist es nicht möglich, die Client-ID anzugeben, die mit IAP verwendet werden soll.

Weitere Informationen