
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Deploy an App Engine application
/ 20
Enable and add policy to IAP
/ 30
Access User Identity Information
/ 25
Use Cryptographic Verification
/ 25
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:
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.
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.
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.
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:
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:
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.
Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.
Sie finden den Nutzernamen auch im Bereich „Details zum Lab“.
Klicken Sie auf Weiter.
Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.
Sie finden das Passwort auch im Bereich „Details zum Lab“.
Klicken Sie auf Weiter.
Klicken Sie sich durch die nachfolgenden Seiten:
Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.
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.
Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID,
gcloud
ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.
Ausgabe:
Ausgabe:
gcloud
finden Sie in Google Cloud in der Übersicht zur gcloud CLI.
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:
Dieser Ordner enthält für jeden Schritt in diesem Lab einen Unterordner. Sie werden bei jedem Schritt in den entsprechenden Ordner wechseln.
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.
1-HelloWorld
, der den Code für diesen Schritt enthält.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:
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.
python39
.Wählen Sie die Region
Wenn Sie gefragt werden, ob Sie fortfahren möchten, geben Sie Y für „yes“ ein.
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.
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.
Klicken Sie im Fenster der Cloud Console im Navigationsmenü auf Sicherheit > Identity-Aware Proxy.
Klicken Sie auf API aktivieren.
Klicken Sie auf Zum Identity-Aware Proxy.
Klicken Sie auf Zustimmungsbildschirm konfigurieren.
Wählen Sie als Nutzertyp Intern aus und klicken Sie auf Erstellen.
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 |
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 |
Kontaktdaten des Entwicklers |
Geben Sie mindestens eine E-Mail-Adresse ein |
Klicken Sie auf Speichern und fortfahren.
Klicken Sie unter Bereiche auf Speichern und fortfahren.
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.
Klicken Sie auf die Ein/Aus-Schaltfläche in der IAP-Spalte in der Zeile mit der App Engine-Anwendung, um IAP zu aktivieren.
Ö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.
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.
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.
Klicken Sie auf Hauptkonto hinzufügen.
Geben Sie Ihre E-Mail-Adresse als Kursteilnehmer ein.
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.
Die Meldung „Richtlinie aktualisiert“ wird am unteren Rand des Fensters angezeigt.
Klicken Sie auf Fortschritt prüfen.
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:
/_gcp_iap/clear_login_cookie
hinzu, sodass die URL https://iap-example-999999.appspot.com/_gcp_iap/clear_login_cookie
lautet.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.
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.
python39
.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.
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:
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:
In der Vorlage „index.html“ werden diese Werte angezeigt, indem die Namen in doppelte geschweifte Klammern eingeschlossen werden:
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.
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.
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.
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.
Sie werden gewarnt, dass dies allen Nutzern den Zugriff auf die Anwendung ermöglicht.
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):
Die Webseite wird in der Befehlszeile angezeigt und sieht so aus:
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.
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.
python39
.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.
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.
user()
-Funktion: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.
Wenn die Bereitstellung abgeschlossen ist, erscheint die Meldung, dass Sie sich Ihre Anwendung mit dem Befehl gcloud app browse
anzeigen lassen können.
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.
Klicken Sie im Fenster der Cloud Console im Navigationsmenü auf Sicherheit > Identity-Aware Proxy.
Klicken Sie auf den Ein/Aus-Schalter für IAP neben der App Engine-Anwendung, um IAP wieder zu aktivieren. Klicken Sie auf Aktivieren.
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.
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.
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.
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