arrow_back

Nutzerauthentifizierung: Identity-Aware Proxy

Anmelden Teilnehmen
Zugriff auf über 700 Labs und Kurse nutzen

Nutzerauthentifizierung: Identity-Aware Proxy

Lab 1 Stunde universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
info Dieses Lab kann KI-Tools enthalten, die den Lernprozess unterstützen.
Zugriff auf über 700 Labs und Kurse nutzen

GSP499

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Überblick

In diesem Lab erstellen Sie mit Google App Engine eine einfache Webanwendung und erfahren, wie Sie mithilfe von Identity-Aware Proxy (IAP) den Zugriff auf die Anwendung einschränken und Informationen zur Nutzeridentität für sie bereitstellen. Mit der Anwendung können Sie Folgendes tun:

  • Eine Begrüßungsseite anzeigen lassen
  • Auf Informationen zur Nutzeridentität zugreifen, die von IAP bereitgestellt werden
  • Mithilfe von kryptografischer Überprüfung das Spoofing von Informationen zur Nutzeridentität verhindern

Lerninhalte

  • Mit Python eine einfache App Engine-Anwendung schreiben und bereitstellen
  • IAP aktivieren und deaktivieren, um den Zugriff auf die Anwendung einzuschränken
  • Informationen zur Nutzeridentität von IAP auf die Anwendung übertragen
  • Informationen von IAP zum Schutz vor Spoofing kryptografisch überprüfen

Voraussetzungen

Grundkenntnisse in der Programmiersprache Python sind für dieses Lab von Vorteil.

In diesem Lab liegt der Fokus auf Google App Engine und IAP. Irrelevante Konzepte und Codeblöcke werden nicht beachtet und stehen zum einfachen Kopieren und Einfügen zur Verfügung.

Einführung in Identity-Aware Proxy

Das Authentifizieren der Nutzer von Webanwendungen ist häufig notwendig und erfordert in der Regel eine spezielle Programmierung. Bei Google Cloud-Anwendungen können Sie diese Aufgaben an den Dienst Identity-Aware Proxy übergeben. Wenn Sie den Zugriff nur für bestimmte Nutzer einschränken müssen, sind keine Änderungen an der Anwendung erforderlich. Falls die Anwendung die Identität eines Nutzers erkennen soll (z. B. um die Nutzereinstellungen serverseitig beizubehalten), kann Identity-Aware Proxy diese Information mit minimalem Anwendungscode bereitstellen.

Was ist Identity-Aware Proxy?

Identity-Aware Proxy (IAP) ist ein Google Cloud-Dienst, der an Ihre Anwendung gesendete Webanfragen abfängt, den anfragenden Nutzer über den Google Identity Service authentifiziert und die Anfragen nur weiterleitet, wenn sie von einem von Ihnen autorisierten Nutzer stammen. Außerdem kann der Dienst Anfrageheader so ändern, dass sie Informationen über den authentifizierten Nutzer enthalten.

Einrichtung und Anforderungen

Vor dem Klick auf „Start Lab“ (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange Google Cloud-Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus (empfohlen), um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Verwenden Sie für dieses Lab nur das Teilnehmerkonto. Wenn Sie ein anderes Google Cloud-Konto verwenden, fallen dafür möglicherweise Kosten an.

Lab starten und bei der Google Cloud Console anmelden

  1. Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Dialogfeld geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich „Details zum Lab“ mit diesen Informationen:

    • Schaltfläche „Google Cloud Console öffnen“
    • Restzeit
    • Temporäre Anmeldedaten für das Lab
    • Ggf. weitere Informationen für dieses Lab
  2. Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).

    Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite „Anmelden“ geöffnet.

    Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.

    Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
  3. Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.

    {{{user_0.username | "Username"}}}

    Sie finden den Nutzernamen auch im Bereich „Details zum Lab“.

  4. Klicken Sie auf Weiter.

  5. Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.

    {{{user_0.password | "Password"}}}

    Sie finden das Passwort auch im Bereich „Details zum Lab“.

  6. Klicken Sie auf Weiter.

    Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
  7. Klicken Sie sich durch die nachfolgenden Seiten:

    • Akzeptieren Sie die Nutzungsbedingungen.
    • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
    • Melden Sie sich nicht für kostenlose Testversionen an.

Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.

Hinweis: Wenn Sie auf Google Cloud-Produkte und ‑Dienste zugreifen möchten, klicken Sie auf das Navigationsmenü oder geben Sie den Namen des Produkts oder Dienstes in das Feld Suchen ein. Symbol für das Navigationsmenü und Suchfeld

Cloud Shell aktivieren

Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  1. Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren Symbol für Cloud Shell-Aktivierung.

  2. Klicken Sie sich durch die folgenden Fenster:

    • Fahren Sie mit dem Informationsfenster zu Cloud Shell fort.
    • Autorisieren Sie Cloud Shell, Ihre Anmeldedaten für Google Cloud API-Aufrufe zu verwenden.

Wenn eine Verbindung besteht, sind Sie bereits authentifiziert und das Projekt ist auf Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:

Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  1. (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
  1. Klicken Sie auf Autorisieren.

Ausgabe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Um das aktive Konto festzulegen, führen Sie diesen Befehl aus: $ gcloud config set account `ACCOUNT`
  1. (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Hinweis: Die vollständige Dokumentation für gcloud finden Sie in Google Cloud in der Übersicht zur gcloud CLI.

Code herunterladen

Klicken Sie in Cloud Shell auf den Befehlszeilenbereich, damit Sie Befehle eingeben können.

Laden Sie den Code aus einem öffentlichen Storage-Bucket herunter und wechseln Sie dann in den Ordner mit dem Code:

gsutil cp gs://spls/gsp499/user-authentication-with-iap.zip . unzip user-authentication-with-iap.zip cd user-authentication-with-iap

Dieser Ordner enthält für jeden Schritt in diesem Lab einen Unterordner. Sie werden bei jedem Schritt in den entsprechenden Ordner wechseln.

Aufgabe 1: Anwendung bereitstellen und mit IAP schützen

Die App Engine-Standardanwendung in Python zeigt eine einfache Begrüßungsseite mit dem Titel „Hello, World“ an. Sie stellen die Anwendung bereit und testen sie. Anschließend beschränken Sie den Zugriff mithilfe von IAP.

Anwendungscode überprüfen

  • Wechseln Sie vom Hauptprojektordner in den Unterordner 1-HelloWorld, der den Code für diesen Schritt enthält.
cd 1-HelloWorld

Der Anwendungscode befindet sich in der Datei main.py. Er verwendet das Flask-Webframework, um auf Webanfragen mit dem Inhalt einer Vorlage zu antworten. Die Vorlagendatei befindet sich unter templates/index.html und enthält für diesen Schritt nur einfaches HTML. Eine zweite Vorlagendatei unter templates/privacy.html enthält eine beispielhafte einfache Datenschutzrichtlinie.

Es gibt noch zwei weitere Dateien: In requirements.txt sind alle nicht standardmäßigen Python-Bibliotheken aufgelistet, die von der Anwendung verwendet werden, und mit app.yaml wird Google Cloud mitgeteilt, dass es sich um eine in Python geschriebene App Engine-Anwendung handelt.

Sie können mit dem folgenden cat-Befehl jede Datei in der Shell auflisten:

cat main.py

Alternativ können Sie in Cloud Shell den Code-Editor starten, indem Sie rechts oben im Cloud Shell-Fenster auf das Stiftsymbol klicken, und so den Code abrufen.

Sie müssen für diesen Schritt keine Dateien ändern.

Auf der App Engine bereitstellen

  1. Ändern Sie die Python-Laufzeit in python39.
sed -i 's/python37/python39/g' app.yaml
  1. Stellen Sie die Anwendung in der App Engine-Standardumgebung für Python bereit.
gcloud app deploy
  1. Wählen Sie die Region aus.

  2. Wenn Sie gefragt werden, ob Sie fortfahren möchten, geben Sie Y für „yes“ ein.

Hinweis: Wenn Ihnen eine Fehlermeldung im Zusammenhang mit der Gaia-Weitergabe angezeigt wird, führen Sie den Befehl gcloud app deploy noch einmal aus.

Die Bereitstellung dauert ein paar Minuten. Sie erhalten eine Meldung, dass Sie sich die Anwendung mit gcloud app browse anzeigen lassen können.

  1. Geben Sie diesen Befehl ein:
gcloud app browse
  1. Klicken Sie auf den angezeigten Link, um ihn in einem neuen Tab zu öffnen, oder kopieren Sie ihn, wenn nötig, in einen manuell geöffneten neuen Tab. Da diese Anwendung zum ersten Mal ausgeführt wird, dauert es beim Starten einer Cloud-Instanz einige Sekunden, bis sie angezeigt wird. Sie sollten dann das folgende Fenster sehen:

IAP-Seite „Hello World“ mit Tabs

Sie können dieselbe URL von jedem Computer aus aufrufen, der mit dem Internet verbunden ist, um diese Webseite zu öffnen. Der Zugriff ist noch nicht eingeschränkt.

Klicken Sie auf Fortschritt prüfen. App Engine-Anwendung bereitstellen

Zugriff mit IAP beschränken

  1. Klicken Sie im Fenster der Cloud Console im Navigationsmenü Symbol für Navigationsmenü auf Sicherheit > Identity-Aware Proxy.

  2. Klicken Sie auf API aktivieren.

  3. Klicken Sie auf Zum Identity-Aware Proxy.

  4. Den OAuth-Zustimmungsbildschirm Ihres Projekts können Sie unter OAuth-Zustimmungsbildschirm konfigurieren.

  5. Klicken Sie auf Jetzt starten.

  6. Geben Sie als Anwendungsname IAP-Beispiel ein.

  7. Klicken Sie auf E‑Mail-Adresse für Nutzersupport, dann auf die E‑Mail-Adresse des Teilnehmers und anschließend auf Weiter.

  8. Wählen Sie für Zielgruppe die Option Intern aus und klicken Sie auf Weiter.

    Nutzer mit Zugriff auf das Projekt sollten sich in der App anmelden können.

  9. Kopieren Sie im linken Bereich der Lab-Anleitung den Nutzernamen.

  10. Fügen Sie unter Kontaktdaten den kopierten Nutzernamen ein.

  11. Klicken Sie auf Weiter.

  12. Aktivieren Sie das Kästchen, um der Richtlinie zu Nutzerdaten zuzustimmen, und klicken Sie auf Weiter und dann auf Erstellen.

    Der Zustimmungsbildschirm ist jetzt eingerichtet.

  13. Führen Sie in Cloud Shell den folgenden Befehl aus, um die Flex API zu deaktivieren:

gcloud services disable appengineflex.googleapis.com Hinweis: Die App Engine hat Standard- und flexible Umgebungen, die jeweils für unterschiedliche Anwendungsarchitekturen optimiert sind. Wenn IAP für die App Engine aktiviert wird und die Flex API ebenfalls aktiviert ist, sucht Google Cloud nach einem Flex-Dienstkonto. Für dieses Lab-Projekt wurden vorab bereits verschiedene APIs aktiviert. Dies führt jedoch dazu, dass die Flex API aktiviert ist, ohne dass ein Dienstkonto erstellt wurde.
  1. Kehren Sie zur Seite „Identity-Aware Proxy“ zurück und aktualisieren Sie sie. Sie sollten nun eine Liste der Ressourcen sehen, die Sie schützen können.

Klicken Sie auf die Ein/Aus-Schaltfläche in der IAP-Spalte in der Zeile mit der App Engine-Anwendung, um IAP zu aktivieren.

  1. Die Domain wird durch IAP geschützt. Klicken Sie auf Aktivieren.

Testen, ob IAP aktiviert ist

  1. Öffnen Sie einen Browsertab und rufen Sie die Anwendung anhand der URL auf. Die Seite „Über Google anmelden“ wird angezeigt, auf der Sie aufgefordert werden, sich anzumelden, um auf die Anwendung zuzugreifen.

  2. Melden Sie sich mit dem Konto an, mit dem Sie sich bei der Console angemeldet haben. Der Zugriff wird verweigert.

Sie haben Ihre Anwendung erfolgreich mit IAP geschützt. Als Nächstes legen Sie fest, welche Konten zugelassen werden sollen.

  1. Kehren Sie in der Console zur Seite „Identity-Aware Proxy“ zurück, klicken Sie das Kästchen neben der App Engine-Anwendung an und sehen Sie sich rechts die App Engine-Seitenleiste an.

Jede E-Mail‑ oder Google Groups-Adresse und jeder Workspace-Domainname, der bzw. dem Zugriff gewährt werden soll, muss als Mitglied hinzugefügt werden.

  1. Klicken Sie auf Hauptkonto hinzufügen.

  2. Geben Sie Ihre Kursteilnehmer-E-Mail-Adresse ein.

  3. Wählen Sie dann unter Cloud IAP die Rolle Nutzer von IAP-gesicherten Web-Apps aus, um sie dieser Adresse zuzuweisen.

Sie können auf die gleiche Weise weitere Adressen oder Workspace-Domains eingeben.

Hauptkonten im Dialogfeld „App Engine-Anwendung“ unter „Cloud IAP“ zur Rolle „Nutzer von IAP-gesicherten Web-Apps“ hinzufügen

  1. Klicken Sie auf Speichern.

Die Meldung „Richtlinie aktualisiert“ wird am unteren Rand des Fensters angezeigt.

Klicken Sie auf Fortschritt prüfen. Richtlinie aktivieren und zu IAP hinzufügen

Zugriff testen

Gehen Sie zurück zur Anwendung und laden Sie die Seite neu. Sie sollten nun Ihre Webanwendung sehen, da Sie bereits als ein von Ihnen autorisierter Nutzer angemeldet sind.

Wenn Ihnen weiterhin die Meldung „You don't have access“ (Sie haben keinen Zugriff) angezeigt wird, hat IAP Ihre Autorisierung noch nicht wieder überprüft. Führen Sie in diesem Fall die folgenden Schritte aus:

  1. Öffnen Sie mit Ihrem Webbrowser die Startseite und fügen Sie am Ende der URL /_gcp_iap/clear_login_cookie hinzu, sodass die URL https://iap-example-999999.appspot.com/_gcp_iap/clear_login_cookie lautet.
  2. Es erscheint ein neuer „Über Google anmelden“-Bildschirm, auf dem Ihr Konto bereits angezeigt wird. Klicken Sie nicht auf das Konto, sondern auf „Anderes Konto verwenden“ und geben Sie Ihre Anmeldedaten noch einmal ein.
Hinweis: Die Rollenänderung dauert etwa eine Minute. Wenn Ihnen nach Ausführung der genannten Schritte weiterhin die Meldung „Sie haben keinen Zugriff“ angezeigt wird, warten Sie eine Minute und aktualisieren Sie dann die Seite.

IAP überprüft nun noch einmal Ihre Zugriffsrechte und Sie sollten den Startbildschirm der Anwendung sehen.

Wenn Sie auf einen anderen Browser zugreifen oder den Inkognitomodus in Ihrem Browser verwenden können und ein weiteres Gmail‑ oder Workspace-Konto haben, können Sie über diesen Browser zur Seite Ihrer Anwendung gehen und sich mit diesem Konto anmelden. Da dieses Konto nicht autorisiert wurde, wird Ihnen anstelle Ihrer Anwendung die Meldung „Sie haben keinen Zugriff“ angezeigt.

Aufgabe 2: Auf Informationen zur Nutzeridentität zugreifen

Sobald eine Anwendung durch IAP geschützt ist, kann sie bereitgestellte Informationen zur Identität des Nutzers verwenden, die IAP in den Headern der Webanfragen weiterleitet. In diesem Schritt erhält die Anwendung die E-Mail-Adresse des angemeldeten Nutzers und eine dauerhafte eindeutige Nutzer-ID, die vom Google Identity Service zugewiesen wird. Diese Daten werden dem Nutzer auf der Begrüßungsseite angezeigt.

  • Wechseln Sie in Cloud Shell zum Ordner für diesen Schritt:
cd ~/user-authentication-with-iap/2-HelloUser

Auf der App Engine bereitstellen

  1. Ändern Sie die Python-Laufzeit in python39.
sed -i 's/python37/python39/g' app.yaml
  1. Da die Bereitstellung einige Minuten dauert, stellen Sie die Anwendung zuerst in der App Engine-Standardumgebung für Python bereit:
gcloud app deploy
  1. Wenn Sie gefragt werden, ob Sie fortfahren möchten, geben Sie Y für „yes“ ein.

Die Bereitstellung sollte in wenigen Minuten abgeschlossen sein. Während Sie warten, können Sie sich die Anwendungsdateien wie unten beschrieben ansehen.

Klicken Sie auf Fortschritt prüfen. Auf Informationen zur Nutzeridentität zugreifen

Anwendungsdateien ansehen

Dieser Ordner enthält die gleichen Dateien wie in der zuvor bereitgestellten Anwendung 1-HelloWorld, aber zwei wurden verändert: main.py und templates/index.html. Das Programm wurde geändert, damit es Informationen zu Nutzern abrufen kann, die IAP in den Anfrageheadern bereitstellt. In der Vorlage werden diese Daten nun angezeigt.

Es gibt in main.py zwei Zeilen, die die von IAP bereitgestellten Informationen zur Nutzeridentität empfangen:

user_email = request.headers.get('X-Goog-Authenticated-User-Email') user_id = request.headers.get('X-Goog-Authenticated-User-ID')

Die X-Goog-Authenticated-User-Header werden von IAP zur Verfügung gestellt. In den Namen wird die Groß-/Kleinschreibung nicht berücksichtigt, sodass sie je nach Präferenz auch vollständig in Groß- oder Kleinschreibung angegeben werden können. Die Anweisung „render_template“ beinhaltet jetzt diese Werte, damit sie angezeigt werden können:

page = render_template('index.html', email=user_email, id=user_id)

In der Vorlage „index.html“ werden diese Werte angezeigt, indem die Namen in doppelte geschweifte Klammern eingeschlossen werden:

Hello, {{ email }}! Your persistent ID is {{ id }}.

Wie Sie sehen, wird den bereitgestellten Daten accounts.google.com vorangestellt. Dies gibt an, woher die Daten stammen. Ihre Anwendung kann bei Bedarf alles bis einschließlich des Doppelpunkts entfernen, um die Rohwerte zu erhalten.

Aktualisierten IAP testen

Wenn Sie zur Bereitstellung zurückkehren, nachdem sie abgeschlossen wurde, erscheint die Meldung, dass Sie sich Ihre Anwendung mit gcloud app browse anzeigen lassen können.

  1. Geben Sie diesen Befehl ein:
gcloud app browse
  1. Wenn sich in Ihrem Browser kein neuer Tab öffnet, kopieren Sie den angezeigten Link und öffnen Sie ihn in einem neuen Tab. Sie sollten eine Seite sehen, die in etwa so aussieht:

Seite „IAP Hello User“ mit Tabs

Möglicherweise müssen Sie einige Minuten warten, bis die neue Version Ihrer Anwendung die vorherige Version ersetzt. Aktualisieren Sie die Seite bei Bedarf, sodass eine Seite angezeigt wird, die so ähnlich wie die Seite oben aussieht.

IAP deaktivieren

Was passiert mit dieser Anwendung, wenn IAP deaktiviert ist oder auf irgendeine Weise umgangen wird (z. B. durch andere Anwendungen, die in demselben Cloud-Projekt ausgeführt werden)? Deaktivieren Sie IAP, um es zu erfahren.

  1. Klicken Sie im Fenster der Cloud Console im Navigationsmenü auf Sicherheit > Identity-Aware Proxy.
  2. Klicken Sie auf die Ein/Aus-Schaltfläche für IAP neben der App Engine-Anwendung, um IAP zu deaktivieren. Klicken Sie auf Deaktivieren.

Sie erhalten eine Warnung, dass somit allen Nutzern der Zugriff auf die Anwendung ermöglicht wird.

  1. Aktualisieren Sie die Webseite der Anwendung. Sie sollten dieselbe Seite sehen, jedoch ohne Nutzerinformationen:

„IAP Hello User“-Seite mit Tabs, die keine Nutzerinformationen enthält

Da die Anwendung jetzt ungeschützt ist, kann ein Nutzer eine Webanfrage senden, die scheinbar IAP durchlaufen hat. Sie können beispielsweise den folgenden curl-Befehl in Cloud Shell ausführen (ersetzen Sie <your-url-here> durch die richtige URL für Ihre App):

curl -X GET <your-url-here> -H "X-Goog-Authenticated-User-Email: totally fake email"

Die Webseite wird in der Befehlszeile angezeigt und sieht so aus:

<!doctype html> <html> <head> <title>IAP Hello User</title> </head> <body> <h1>Hello World</h1> <p> Hello, totally fake email! Your persistent ID is None. </p> <p> This is step 2 of the User Authentication with IAP</em> codelab. </p> </body> </html>

Die Anwendung kann nicht erkennen, dass IAP deaktiviert oder umgangen wurde. In Fällen, in denen dies ein potenzielles Risiko darstellt, bietet die kryptografische Überprüfung eine Lösung.

Aufgabe 3: Kryptografische Überprüfung verwenden

Wenn die Gefahr besteht, dass IAP deaktiviert oder umgangen wird, kann Ihre Anwendung überprüfen, ob die empfangenen Informationen zur Nutzeridentität gültig sind. Dabei wird ein dritter Webanfrage-Header mit dem Namen X-Goog-IAP-JWT-Assertion von IAP hinzugefügt. Der Wert des Headers ist ein kryptografisch signiertes Objekt, das auch die Daten zur Nutzeridentität enthält. Ihre Anwendung kann die digitale Signatur überprüfen und anhand der in diesem Objekt bereitgestellten Daten feststellen, ob sie unverändert von IAP bereitgestellt wurden.

Die Überprüfung der digitalen Signatur erfordert mehrere zusätzliche Schritte, z. B. das Abrufen der neuesten öffentlichen Schlüssel von Google. Sie entscheiden, ob Ihre Anwendung diese zusätzlichen Schritte benötigt – je nachdem, wie hoch das Risiko ist, dass jemand IAP deaktiviert oder umgeht, und je nachdem, ob die Anwendung vertrauliche Informationen empfängt oder nicht.

  • Wechseln Sie in Cloud Shell zum Ordner für diesen Schritt:
cd ~/user-authentication-with-iap/3-HelloVerifiedUser

Auf der App Engine bereitstellen

  1. Ändern Sie die Python-Laufzeit in python39.
sed -i 's/python37/python39/g' app.yaml
  1. Stellen Sie die Anwendung in der App Engine-Standardumgebung für Python bereit:
gcloud app deploy
  1. Wenn Sie gefragt werden, ob Sie fortfahren möchten, geben Sie Y für „yes“ ein.

Die Bereitstellung sollte in wenigen Minuten abgeschlossen sein. Während Sie warten, können Sie sich die Anwendungsdateien wie unten beschrieben ansehen.

Klicken Sie auf Fortschritt prüfen. Kryptografische Überprüfung verwenden

Anwendungsdateien ansehen

Dieser Ordner enthält die gleichen Dateien wie 2-HelloUser, jedoch wurden zwei Dateien verändert und eine neue hinzugefügt. Die neue Datei heißt auth.py und bietet eine user()-Methode zum Abrufen und Überprüfen der kryptografisch signierten Identitätsinformationen. Die veränderten Dateien sind main.py und templates/index.html, die nun die Ergebnisse dieser Methode verwenden. Zum Vergleich werden auch die nicht überprüften Header angezeigt, die in der letzten Bereitstellung gefunden wurden.

  • Die neue Funktionalität befindet sich hauptsächlich in der user()-Funktion:
def user(): assertion = request.headers.get('X-Goog-IAP-JWT-Assertion') if assertion is None: return None, None info = jwt.decode( assertion, keys(), algorithms=['ES256'], audience=audience() ) return info['email'], info['sub']

Die assertion-Daten sind die kryptografisch signierten Daten, die im angegebenen Anfrageheader bereitgestellt wurden. Sie werden mithilfe einer Bibliothek überprüft und decodiert. Bei der Überprüfung werden die öffentlichen Schlüssel verwendet, die Google zur Überprüfung der signierten Daten bereitstellt. Außerdem wird die Zielgruppe ermittelt, für die die Daten vorbereitet wurden (im Wesentlichen das zu schützende Google Cloud-Projekt). Mit den Hilfsfunktionen keys() und audience() werden diese Werte gesammelt und zurückgegeben.

Das signierte Objekt enthält zwei Datenwerte, die Sie benötigen: die geprüfte E-Mail-Adresse und den eindeutigen ID-Wert (angegeben im Standardfeld sub, das für „subscriber“ steht).

Damit ist Schritt 3 abgeschlossen.

Kryptografische Überprüfung testen

Wenn die Bereitstellung abgeschlossen ist, erscheint die Meldung, dass Sie Ihre Anwendung mit dem Befehl gcloud app browse aufrufen können.

  • Geben Sie diesen Befehl ein:
gcloud app browse

Wenn sich in Ihrem Browser kein neuer Tab öffnet, kopieren Sie den angezeigten Link und öffnen Sie ihn in einem neuen Tab.

Denken Sie daran, dass Sie zuvor IAP deaktiviert haben. Die Anwendung stellt daher keine IAP-Daten bereit. Sie sollten eine Seite sehen, die in etwa so aussieht:

IAP-Seite „Hello Verified“ mit Tabs, ID is None

Es kann wieder einige Minuten dauern, bis die neue Version der Seite angezeigt wird.

Da IAP deaktiviert ist, sind keine Informationen über die Nutzer verfügbar. Aktivieren Sie IAP nun wieder.

  1. Klicken Sie im Fenster der Cloud Console im Navigationsmenü auf Sicherheit > Identity-Aware Proxy.

  2. Klicken Sie auf den Ein/Aus-Schalter für IAP neben der App Engine-Anwendung, um IAP wieder zu aktivieren. Klicken Sie auf Aktivieren.

  3. Aktualisieren Sie die Seite. Sie sollte in etwa so aussehen:

Seite „Hello Verified User“ mit Tabs, you have an ID

Beachten Sie, dass die E-Mail-Adresse, die mit der Überprüfungsmethode bereitgestellt wurde, nicht das Präfix accounts.google.com: enthält.

Wenn IAP deaktiviert oder umgangen wird, fehlen die überprüften Daten oder sind ungültig, da sie nur dann eine gültige Signatur haben, wenn sie vom Inhaber der privaten Schlüssel von Google erstellt wurden.

Das wars! Sie haben das Lab erfolgreich abgeschlossen.

Sie haben eine App Engine-Webanwendung bereitgestellt. Zuerst haben Sie den Zugriff auf die Anwendung auf die von Ihnen ausgewählten Nutzer beschränkt. Anschließend haben Sie die Identität derjenigen Nutzer abgerufen und anzeigen lassen, denen IAP Zugriff auf Ihre Anwendung gewährt hat. Sie haben dann gesehen, wie diese Informationen gefälscht werden können, wenn IAP deaktiviert oder umgangen wird. Zuletzt haben Sie kryptografisch signierte Assertions zur Identität des Nutzers überprüft, die nicht gefälscht werden können.

Weitere Informationen

Google Cloud-Schulungen und -Zertifizierungen

In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.

Anleitung zuletzt am 18. Juni 2025 aktualisiert

Lab zuletzt am 18. Juni 2025 getestet

© 2025 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.

Vorbereitung

  1. Labs erstellen ein Google Cloud-Projekt und Ressourcen für einen bestimmten Zeitraum
  2. Labs haben ein Zeitlimit und keine Pausenfunktion. Wenn Sie das Lab beenden, müssen Sie von vorne beginnen.
  3. Klicken Sie links oben auf dem Bildschirm auf Lab starten, um zu beginnen

Privates Surfen verwenden

  1. Kopieren Sie den bereitgestellten Nutzernamen und das Passwort für das Lab
  2. Klicken Sie im privaten Modus auf Konsole öffnen

In der Konsole anmelden

  1. Melden Sie sich mit Ihren Lab-Anmeldedaten an. Wenn Sie andere Anmeldedaten verwenden, kann dies zu Fehlern führen oder es fallen Kosten an.
  2. Akzeptieren Sie die Nutzungsbedingungen und überspringen Sie die Seite zur Wiederherstellung der Ressourcen
  3. Klicken Sie erst auf Lab beenden, wenn Sie das Lab abgeschlossen haben oder es neu starten möchten. Andernfalls werden Ihre bisherige Arbeit und das Projekt gelöscht.

Diese Inhalte sind derzeit nicht verfügbar

Bei Verfügbarkeit des Labs benachrichtigen wir Sie per E-Mail

Sehr gut!

Bei Verfügbarkeit kontaktieren wir Sie per E-Mail

Es ist immer nur ein Lab möglich

Bestätigen Sie, dass Sie alle vorhandenen Labs beenden und dieses Lab starten möchten

Privates Surfen für das Lab verwenden

Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.