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

Damit eine Anfrage an Ihre Compute Engine-, GKE-, Cloud Run-, App Engine-Standardumgebung oder Anwendung in der flexiblen App Engine-Umgebung von IAP autorisiert wird, muss Ihre Anwendung jede Anfrage validieren. Dazu prüfen Sie den HTTP-Anfrageheader x-goog-iap-jwt-assertion. Weitere Informationen finden Sie unter App mit signierten Headern sichern.

IAP übergibt die Identität des Nutzers außerdem in den folgenden HTTP-Headern an den Back-End-Dienst. 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.

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. Gehen Sie zur Admin-Konsole.
    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. Sie können die Client-ID für die Verwendung mit IAP nicht über die Google Cloud Console angeben.

Nächste Schritte