arrow_back

Nutzerauthentifizierung: Identity-Aware Proxy

Anmelden Teilnehmen
Quick tip: Review the prerequisites before you run the lab
Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the student account, which may cause extra charges incurred to your personal account.
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

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.
Testen und teilen Sie Ihr Wissen mit unserer Community.
done
Sie erhalten Zugriff auf über 700 praxisorientierte Labs, Skill-Logos und Kurse

GSP499

Ü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.

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 .

Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre 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

Sie erstellen mit Python eine App Engine-Standardanwendung, in der eine einfache Begrüßungsseite mit dem Titel „Hello, World“ angezeigt wird. Sie werden die Anwendung bereitstellen und testen und anschließend mithilfe von IAP den Zugriff darauf beschränken.

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:

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ü  auf Sicherheit > Identity-Aware Proxy.

  2. Klicken Sie auf API aktivieren.

  3. Klicken Sie auf Zum Identity-Aware Proxy.

  4. Klicken Sie auf Zustimmungsbildschirm konfigurieren.

  5. Wählen Sie als Nutzertyp Intern aus und klicken Sie auf Erstellen.

  6. Füllen Sie die erforderlichen Felder mit den entsprechenden Werten aus:

Feld

Wert

App-Name

IAP-Beispiel

E‑Mail-Adresse für Nutzersupport

Wählen Sie Ihre E-Mail-Adresse für das Lab aus dem Drop-down-Menü aus.

Startseite der Anwendung

Die URL, die Sie zum Anzeigen der Anwendung verwendet haben. Sie finden diese, indem Sie noch einmal den Befehl „gcloud app browse“ in Cloud Shell ausführen.

Link zur Datenschutzerklärung der Anwendung

Der Link zur Datenschutzseite der Anwendung; entspricht dem Link zur Startseite plus der Endung /privacy.

Autorisierte Domains

Klicken Sie auf + Domain hinzufügen. Der Hostname-Abschnitt der URL der Anwendung, z. B. iap-example-999999.appspot.com. Sie können den Abschnitt in der Adressleiste der zuvor geöffneten „Hello World“-Webseite sehen. Geben Sie dabei nicht das einleitende https:// oder das nachfolgende Zeichen / aus der URL an.

Kontaktdaten des Entwicklers

Geben Sie mindestens eine E-Mail-Adresse ein

  1. Klicken Sie auf Speichern und fortfahren.

  2. Klicken Sie unter Bereiche auf Speichern und fortfahren.

  3. Klicken Sie unter Zusammenfassung auf Zurück zum Dashboard.

Sie werden möglicherweise aufgefordert, Anmeldedaten zu erstellen. Für dieses Lab müssen Sie keine Anmeldedaten erstellen und können diesen Browsertab daher einfach schließen.

  1. 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 eine Standardumgebung und eine flexible Umgebung, 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 gehen Sie zur URL der Anwendung. 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 E-Mail-Adresse als Kursteilnehmer 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.

  1. Klicken Sie auf Speichern.

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

Klicken Sie auf Fortschritt prüfen. Richtlinie aktualisieren 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 Bildschirm „Über Google anmelden“, 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:

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 werden gewarnt, dass dies allen Nutzern den Zugriff auf die Anwendung ermöglicht.

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

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 neuen Informationen befinden 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 Anfrage-Header 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 sich Ihre Anwendung mit dem Befehl gcloud app browse anzeigen lassen 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:

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:

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 15. April 2024 aktualisiert

Lab zuletzt am 28. Februar 2024 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.

Before you begin

  1. Labs create a Google Cloud project and resources for a fixed time
  2. Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
  3. On the top left of your screen, click Start lab to begin

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

One lab at a time

Confirm to end all existing labs and start this one

Use private browsing to run the lab

Use an Incognito or private browser window to run this lab. This prevents any conflicts between your personal account and the Student account, which may cause extra charges incurred to your personal account.