GSP499

Opis
W tym module utworzysz niewielką aplikację internetową w Google App Engine, a następnie poznasz różne sposoby ograniczania dostępu do tej aplikacji i przekazywania do niej informacji o tożsamości użytkowników z wykorzystaniem Identity-Aware Proxy (IAP). Twoja aplikacja będzie:
- wyświetlać stronę powitalną,
- uzyskiwać dostęp do pochodzących z IAP informacji o tożsamości użytkowników,
- zapobiegać podszywaniu się i podawaniu fałszywych informacji o tożsamości przy użyciu weryfikacji kryptograficznej.
Czego się nauczysz
- Jak pisać i wdrażać proste aplikacje App Engine w języku Python.
- Jak ograniczać dostęp do aplikacji przy użyciu IAP i wyłączać te ograniczenia.
- Jak pobierać informacje o tożsamości użytkowników z IAP i przekazywać je do aplikacji.
- Jak kryptograficznie sprawdzać informacje z IAP i chronić aplikację przed użytkownikami podszywającymi się pod innych.
Wymagania wstępne
Podstawowa wiedza o programowaniu w języku Python może ułatwić naukę.
Ten moduł dotyczy głównie Google App Engine i IAP. Nieistotne koncepcje i bloki kodu zostały pominięte. Można je po prostu skopiować i wkleić.
Wprowadzenie do Identity-Aware Proxy
Uwierzytelnianie użytkowników aplikacji internetowej jest często niezbędne i zwykle wymaga zaprogramowania aplikacji w specjalny sposób. W przypadku aplikacji Google Cloud za te zadania jest odpowiedzialna usługa Identity-Aware Proxy. Jeśli chcesz przyznać dostęp tylko wybranym użytkownikom, nie musisz wprowadzać w aplikacji żadnych zmian. Jeśli do aplikacji muszą być przekazywane informacje o tożsamości użytkownika (aby na przykład jego preferencje mogły być przechowywane na serwerze), zadanie to może wykonać Identity-Aware Proxy, przy czym wymaga to minimalnej ingerencji w kod aplikacji.
Co to jest Identity-Aware Proxy?
Identity-Aware Proxy (IAP) to usługa Google Cloud, która przechwytuje wysyłane do aplikacji żądania sieciowe, uwierzytelnia użytkownika, przesyłając żądania do usługi tożsamości Google, i przekazuje do aplikacji tylko te z nich, które pochodzą od autoryzowanego użytkownika. Dodatkowo może modyfikować nagłówki żądań, dodając do nich informacje o uwierzytelnionym użytkowniku.
Konfiguracja i wymagania
Zanim klikniesz przycisk Rozpocznij moduł
Zapoznaj się z tymi instrukcjami. Moduły mają limit czasowy i nie można ich zatrzymać. Gdy klikniesz Rozpocznij moduł, na liczniku wyświetli się informacja o tym, na jak długo udostępniamy Ci zasoby Google Cloud.
W tym praktycznym module możesz spróbować swoich sił w wykonywaniu opisywanych działań w prawdziwym środowisku chmury, a nie w jego symulacji lub wersji demonstracyjnej. Otrzymasz nowe, tymczasowe dane logowania, dzięki którym zalogujesz się i uzyskasz dostęp do Google Cloud na czas trwania modułu.
Do ukończenia modułu potrzebne będą:
- Dostęp do standardowej przeglądarki internetowej (zalecamy korzystanie z przeglądarki Chrome).
Uwaga: uruchom ten moduł w oknie incognito (zalecane) lub przeglądania prywatnego. Dzięki temu unikniesz konfliktu między swoim kontem osobistym a kontem do nauki, co mogłoby spowodować naliczanie dodatkowych opłat na koncie osobistym.
- Odpowiednia ilość czasu na ukończenie modułu – pamiętaj, że gdy rozpoczniesz, nie możesz go wstrzymać.
Uwaga: w tym module używaj tylko konta do nauki. Jeśli użyjesz innego konta Google Cloud, mogą na nim zostać naliczone opłaty.
Rozpoczynanie modułu i logowanie się w konsoli Google Cloud
-
Kliknij przycisk Rozpocznij moduł. Jeśli moduł jest odpłatny, otworzy się okno, w którym możesz wybrać formę płatności.
Po lewej stronie znajduje się panel Szczegóły modułu z następującymi elementami:
- przyciskiem Otwórz konsolę Google Cloud;
- czasem, który Ci pozostał;
- tymczasowymi danymi logowania, których musisz użyć w tym module;
- innymi informacjami potrzebnymi do ukończenia modułu.
-
Kliknij Otwórz konsolę Google Cloud (lub kliknij prawym przyciskiem myszy i wybierz Otwórz link w oknie incognito, jeśli korzystasz z przeglądarki Chrome).
Moduł uruchomi zasoby, po czym otworzy nową kartę ze stroną logowania.
Wskazówka: otwórz karty obok siebie w osobnych oknach.
Uwaga: jeśli pojawi się okno Wybierz konto, kliknij Użyj innego konta.
-
W razie potrzeby skopiuj nazwę użytkownika znajdującą się poniżej i wklej ją w oknie logowania.
{{{user_0.username | "Username"}}}
Nazwę użytkownika znajdziesz też w panelu Szczegóły modułu.
-
Kliknij Dalej.
-
Skopiuj podane niżej hasło i wklej je w oknie powitania.
{{{user_0.password | "Password"}}}
Hasło znajdziesz też w panelu Szczegóły modułu.
-
Kliknij Dalej.
Ważne: musisz użyć danych logowania podanych w module. Nie używaj danych logowania na swoje konto Google Cloud.
Uwaga: korzystanie z własnego konta Google Cloud w tym module może wiązać się z dodatkowymi opłatami.
-
Na kolejnych stronach wykonaj następujące czynności:
- Zaakceptuj Warunki korzystania z usługi.
- Nie dodawaj opcji odzyskiwania ani uwierzytelniania dwuskładnikowego (ponieważ konto ma charakter tymczasowy).
- Nie rejestruj się w bezpłatnych wersjach próbnych.
Poczekaj, aż na karcie otworzy się konsola Google Cloud.
Uwaga: aby uzyskać dostęp do produktów i usług Google Cloud, kliknij Menu nawigacyjne lub wpisz nazwę usługi albo produktu w polu Szukaj.
Aktywowanie Cloud Shell
Cloud Shell to maszyna wirtualna oferująca wiele narzędzi dla programistów. Zawiera stały katalog domowy o pojemności 5 GB i działa w Google Cloud. Dzięki wierszowi poleceń Cloud Shell zyskujesz dostęp do swoich zasobów Google Cloud.
-
Kliknij Aktywuj Cloud Shell
na górze konsoli Google Cloud.
-
Kliknij te okna:
- Przejdź przez okno z informacjami o Cloud Shell.
- Zezwól Cloud Shell na używanie Twoich danych logowania w celu wywoływania interfejsu Google Cloud API.
Po połączeniu użytkownik od razu jest uwierzytelniony. Uruchomi się Twój projekt o identyfikatorze Project_ID . Dane wyjściowe zawierają wiersz z zadeklarowanym identyfikatorem Project_ID dla tej sesji:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud
to narzędzie wiersza poleceń Google Cloud. Jest ono już zainstalowane w Cloud Shell i obsługuje funkcję autouzupełniania po naciśnięciu tabulatora.
- (Opcjonalnie) Aby wyświetlić listę aktywnych kont, użyj tego polecenia:
gcloud auth list
- Kliknij Autoryzuj.
Dane wyjściowe:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- (Opcjonalnie) Aby wyświetlić identyfikator projektu, użyj tego polecenia:
gcloud config list project
Dane wyjściowe:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Uwaga: pełną dokumentację gcloud
w Google Cloud znajdziesz w opisie gcloud CLI.
Pobieranie kodu
Kliknij obszar wiersza poleceń w Cloud Shell, aby móc wpisywać polecenia.
Pobierz kod z publicznego zasobnika a następnie przejdź do folderu z kodem:
gsutil cp gs://spls/gsp499/user-authentication-with-iap.zip .
unzip user-authentication-with-iap.zip
cd user-authentication-with-iap
Ten folder zawiera po 1 podfolderze dla każdego kroku tego modułu. Podczas wykonywania określonego kroku przejdź do odpowiadającego mu folderu.
Zadanie 1. Wdrażanie aplikacji i zabezpieczanie jej przy użyciu IAP
To jest aplikacja standardowego środowiska App Engine napisana w języku Python, która wyświetla po prostu stronę powitalną „Hello, World”. Wdrożymy i przetestujemy ją, a następnie ograniczymy do niej dostęp przy użyciu IAP.
Przeglądanie kodu aplikacji
- Przejdź z głównego folderu projektu do podfolderu
1-HelloWorld
, który zawiera kod dotyczący tego kroku.
cd 1-HelloWorld
Kod aplikacji znajduje się w pliku main.py
. Odpowiada on na żądania sieciowe, przesyłając zawartość szablonu przy użyciu sieciowej platformy programistycznej Flask. Szablon znajduje się w pliku templates/index.html
. W przypadku tego kroku zawiera on tylko zwykły kod HTML. Drugi szablon zawiera szkic przykładowego dokumentu polityki prywatności. Znajduje się on w pliku templates/privacy.html
.
Dostępne są także 2 inne pliki: requirements.txt
zawiera listę wszystkich innych niż domyślne bibliotek Python, które są używane w aplikacji, a app.yaml
informuje Google Cloud, że jest to aplikacja App Engine w języku Python.
Każdy z tych plików można wyświetlić w powłoce przy użyciu polecenia cat, na przykład:
cat main.py
Kod można także przejrzeć, uruchamiając edytor kodu Cloud Shell i klikając ikonę ołówka w prawym górnym rogu okna Cloud Shell.
W tym kroku nie trzeba modyfikować żadnych plików.
Wdrażanie w App Engine
- Zmień środowisko wykonawcze Pythona na
python39
.
sed -i 's/python37/python39/g' app.yaml
- Wdróż aplikację w standardowym środowisku App Engine języka Python.
gcloud app deploy
-
Wybierz region .
-
Gdy pojawi się pytanie, czy chcesz kontynuować, wpisz Y (Tak).
Uwaga:
jeśli wyświetli się błąd związany z propagacją Gaia, powtórz polecenie gcloud app deploy
.
Aplikacja zostanie wdrożona w ciągu kilku minut. Pojawi się komunikat informujący o możliwości wyświetlenia aplikacji za pomocą polecenia gcloud app browse
.
- Wpisz polecenie:
gcloud app browse
- Kliknij wyświetlony link, aby otworzyć go w nowej karcie lub w razie potrzeby skopiuj go i wklej w ręcznie otwartej nowej karcie. Ponieważ aplikacja jest uruchamiana po raz pierwszy, pojawi się po kilku sekundach. W tym czasie jest uruchamiana instancja w chmurze. Zostanie wyświetlone następujące okno.

Otworzyć ten adres URL i wyświetlić tę stronę internetową można na dowolnym komputerze podłączonym do internetu. Dostęp nie został jeszcze ograniczony.
Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło.
Wdrożenie aplikacji App Engine
Ograniczanie dostępu przy użyciu IAP
-
W oknie konsoli Cloud kliknij Menu nawigacyjne
> Zabezpieczenia > Identity-Aware Proxy.
-
Kliknij Włącz API.
-
Kliknij Przejdź do Identity-Aware Proxy.
-
Aby skonfigurować ekran zgody OAuth w projekcie, otwórz tę stronę.
-
Kliknij Rozpocznij.
-
W polu Nazwa aplikacji wpisz IAP Example
.
-
Kliknij Adres e-mail dla użytkowników potrzebujących pomocy, a następnie swój szkoleniowy adres e-mail i Dalej.
-
W polu Odbiorcy wybierz Wewnętrzny i kliknij Dalej.
Użytkownicy z dostępem do projektu powinni mieć możliwość zalogowania się w aplikacji.
-
W lewym panelu instrukcji modułu skopiuj nazwę użytkownika.
-
W polu Dane kontaktowe wklej skopiowaną nazwę użytkownika.
-
Kliknij Dalej.
-
Zaznacz Pole wyboru, aby zaakceptować zasady dotyczące danych użytkownika, a następnie kliknij Dalej i Utwórz.
Ekran zgody został skonfigurowany.
-
W Cloud Shell uruchom to polecenie, aby wyłączyć interfejs API Flex:
gcloud services disable appengineflex.googleapis.com
Uwaga:
App Engine dysponuje standardowymi elastycznymi środowiskami zoptymalizowanymi pod kątem różnych architektur aplikacji. Obecnie przy włączaniu IAP w App Engine, jeśli włączony jest interfejs Flex API, Google Cloud wyszukuje konto usługi Flex. Dla Twojej wygody w ramach projektu modułu jest automatycznie włączonych wiele interfejsów API. Powoduje to jednak wyjątkową sytuację, w której interfejs API Flex jest włączony pomimo braku konta usługi.
- Wróć na stronę Identity-Aware Proxy i odśwież ją. Powinna być teraz widoczna lista zasobów, które można zabezpieczyć.
Kliknij przycisk przełączania w kolumnie IAP w wierszu aplikacji App Engine, aby włączyć IAP.
- Ta domena będzie chroniona przez IAP. Kliknij Włącz.
Sprawdzanie, czy usługa IAP jest włączona
-
Otwórz kartę przeglądarki i przejdź na adres URL swojej aplikacji. Zostanie wyświetlony ekran Zaloguj się przez Google, na którym trzeba będzie się zalogować, aby uzyskać dostęp do aplikacji.
-
Zaloguj się na koncie używanym do logowania się w konsoli. Pojawi się ekran z odmową dostępu.
Aplikacja została zabezpieczona przy użyciu IAP, ale nie przesłano jeszcze na ten serwer informacji o kontach, które mają być akceptowane.
- Wróć na stronę konsoli Identity-Aware Proxy, zaznacz pole wyboru obok aplikacji App Engine i zwróć uwagę na pasek boczny App Engine po prawej stronie ekranu.
Każdy adres e-mail, adres grupy dyskusyjnej Google lub nazwę domeny Workspace, które mają mieć dostęp, należy dodać jako użytkownika.
-
Kliknij Dodaj podmiot zabezpieczeń.
-
Wpisz swój szkoleniowy adres e-mail.
-
Następnie wybierz rolę Cloud IAP > Użytkownik aplikacji internetowej zabezpieczonej przez IAP i przypisz ją do tego adresu.
Możesz w ten sam sposób wpisać więcej adresów lub domen Workspace.

- Kliknij Zapisz.
U dołu okna pojawi się komunikat „Zasada została zaktualizowana”.
Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło.
Włączenie zasady i dodanie jej do IAP
Testowanie dostępu
Wróć do aplikacji i załaduj ponownie stronę. Teraz aplikacja powinna być widoczna, ponieważ nastąpiło logowanie przy użyciu autoryzowanego konta użytkownika.
Jeśli nadal jest wyświetlana strona „Nie masz dostępu”, IAP nie sprawdził ponownie Twojej autoryzacji. W tym przypadku wykonaj te czynności:
- Otwórz w przeglądarce stronę o adresie składającym się z adresu URL strony głównej i dodanego na końcu tekstu
/_gcp_iap/clear_login_cookie
, na przykład https://iap-example-999999.appspot.com/_gcp_iap/clear_login_cookie
.
- Pojawi się nowy ekran Zaloguj się przez Google, na którym jest już wyświetlane Twoje konto. Nie klikaj tego konta. Zamiast tego kliknij Użyj innego konta i wpisz ponownie swoje dane logowania.
Uwaga:
zastosowanie zmiany roli może chwilę potrwać. Jeśli po wykonaniu powyższych czynności nadal widzisz stronę „Nie masz dostępu”, poczekaj trochę, a następnie odśwież stronę.
Wykonanie tych czynności spowoduje, że IAP ponownie sprawdzi Twój dostęp – ekran główny aplikacji powinien być już widoczny.
Jeśli masz inne ważne konto Gmail lub Workspace i dostęp do innej przeglądarki albo możesz użyć trybu incognito, przejdź w tej przeglądarce na stronę swojej aplikacji i zaloguj się przy użyciu tego innego konta. Ponieważ to konto nie zostało autoryzowane, zamiast aplikacji pojawi się ekran „Nie masz dostępu”.
Zadanie 2. Uzyskiwanie dostępu do informacji o tożsamości użytkowników
Aplikacja zabezpieczona przy użyciu IAP może używać informacji o tożsamości dostarczanych przez IAP w nagłówkach przekazywanych żądań sieciowych. W tym kroku aplikacja pobierze adres e-mail i stały, unikalny identyfikator zalogowanego użytkownika przypisany do niego przez usługę tożsamości Google. Te dane zostaną wyświetlone na stronie powitalnej.
- Aby ukończyć ten krok, przejdź do następującego folderu w Cloud Shell:
cd ~/user-authentication-with-iap/2-HelloUser
Wdrażanie w App Engine
- Zmień środowisko wykonawcze Pythona na
python39
.
sed -i 's/python37/python39/g' app.yaml
- Rozpocznij od wdrożenia aplikacji w standardowym środowisku App Engine dla Pythona, ponieważ ten proces potrwa kilka minut:
gcloud app deploy
- Gdy pojawi się pytanie, czy chcesz kontynuować, wpisz Y (Tak).
Aplikacja powinna zostać wdrożona w ciągu kilku minut. Czekając na zakończenie tego procesu, możesz przejrzeć pliki aplikacji w opisany poniżej sposób.
Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło.
Uzyskanie dostępu do informacji o tożsamości użytkowników
Przeglądanie plików aplikacji
Ten folder zawiera ten sam zestaw plików co poprzednio uruchomiona aplikacja 1-HelloWorld
, jednak dwa pliki zostały zmodyfikowane: main.py
i templates/index.html
. Program został zmieniony tak, aby mógł pobierać informacje o użytkownikach dostarczane przez IAP w nagłówkach żądań. Szablon wyświetla teraz te dane.
W pliku main.py
znajdują się 2 wiersze, które umożliwiają pobieranie przekazywanych przez IAP danych o tożsamości:
user_email = request.headers.get('X-Goog-Authenticated-User-Email')
user_id = request.headers.get('X-Goog-Authenticated-User-ID')
Nagłówki X-Goog-Authenticated-User- są dostarczane przez IAP, a w nazwach nie jest rozróżniana wielkość liter, więc możesz je wpisywać w całości małymi lub wielkimi literami. Instrukcja render_template zawiera teraz te wartości, więc można je wyświetlić:
page = render_template('index.html', email=user_email, id=user_id)
Te wartości można wyświetlić przy użyciu szablonu index.html, umieszczając nazwy w podwójnych nawiasach klamrowych:
Hello, {{ email }}! Your persistent ID is {{ id }}.
Jak widać dostarczone dane są poprzedzone prefiksem accounts.google.com
, który informuje o tym, skąd one pochodzą. W razie potrzeby Twoja aplikacja może usunąć wszystko, co znajduje się przed dwukropkiem (oraz sam dwukropek), uzyskując w ten sposób czyste wartości.
Testowanie zaktualizowanego IAP
Gdy wdrożenie będzie gotowe, pojawi się komunikat informujący o tym, że można wyświetlić aplikację przy użyciu polecenia gcloud app browse
.
- Wpisz polecenie:
gcloud app browse
- Jeśli w przeglądarce nie otworzy się nowa karta, skopiuj wyświetlony link i otwórz go w nowej karcie, tak jak robisz to zwykle. Powinna Ci się wyświetlić strona podobna do tej:

Zastąpienie wcześniejszej wersji aplikacji jej nową wersją może potrwać kilka minut. W razie potrzeby odśwież stronę, aby wyświetlić ekran podobny do ekranu widocznego powyżej.
Wyłączanie IAP
Co stanie się z tą aplikacją, gdy IAP zostanie wyłączony lub w jakiś sposób pominięty (na przykład przez inne aplikacje działające w tym samym projekcie w chmurze)? Wyłącz IAP, aby to sprawdzić.
- W oknie konsoli Cloud kliknij Menu nawigacyjne > Zabezpieczenia > Identity-Aware Proxy.
- Kliknij przełącznik IAP znajdujący się obok aplikacji App Engine, aby wyłączyć IAP. Kliknij WYŁĄCZ.
Pojawi się ostrzeżenie informujące o tym, że gdy wykonasz tę czynność, wszyscy użytkownicy będą mieli dostęp do aplikacji.
- Odśwież stronę internetową aplikacji. Powinna pojawić się ta sama strona, jednak bez żadnych informacji o użytkowniku:

Ponieważ aplikacja nie jest już chroniona, można podjąć próbę wysłania żądań sieciowych, które wyglądają jak przekazane przez IAP. W tym celu możesz na przykład wykonać następujące polecenie curl w Cloud Shell (zastąp <your-url-here>
prawidłowym adresem URL aplikacji):
curl -X GET <your-url-here> -H "X-Goog-Authenticated-User-Email: totally fake email"
W wierszu poleceń zostanie wyświetlona strona internetowa podobna do tej:
<!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>
Aplikacja nie może w żaden sposób stwierdzić, że IAP został wyłączony lub pominięty. W sytuacjach, gdy ten problem może stwarzać potencjalne zagrożenie, rozwiązaniem jest weryfikacja kryptograficzna.
Zadanie 3. Wdrażanie weryfikacji kryptograficznej
Jeśli istnieje ryzyko, że IAP zostanie wyłączony lub pominięty, w aplikacji można uwzględnić mechanizmy sprawdzające, czy odbierane informacje o tożsamości są prawidłowe. W tym celu jest używany trzeci spośród dodawanych przez IAP nagłówków żądań sieciowych o nazwie X-Goog-IAP-JWT-Assertion
. Wartością tego nagłówka jest kryptograficznie podpisany obiekt, który zawiera także informacje o tożsamości użytkownika. Aplikacja może zweryfikować podpis cyfrowy i użyć danych dostarczonych w tym obiekcie, aby sprawdzić, czy żądanie przekazane przez IAP nie zostało w żaden sposób zmodyfikowane.
Sprawdzenie podpisu cyfrowego wymaga wykonania kilku dodatkowych kroków, takich jak pobranie najnowszego zestawu kluczy publicznych Google. Decyzję o tym, czy dana aplikacja powinna wykonywać te dodatkowe kroki, można podjąć, oceniając ryzyko wyłączenia lub pominięcia IAP oraz poziom poufności aplikacji.
- Aby ukończyć ten krok, przejdź do następującego folderu w Cloud Shell:
cd ~/user-authentication-with-iap/3-HelloVerifiedUser
Wdrażanie w App Engine
- Zmień środowisko wykonawcze Pythona na
python39
.
sed -i 's/python37/python39/g' app.yaml
- Wdróż aplikację w standardowym środowisku App Engine dla Pythona:
gcloud app deploy
- Gdy pojawi się pytanie, czy chcesz kontynuować, wpisz Y (Tak).
Aplikacja powinna zostać wdrożona w ciągu kilku minut. Czekając na zakończenie tego procesu, możesz przejrzeć pliki aplikacji w opisany poniżej sposób.
Kliknij Sprawdź postępy, aby zobaczyć, jak Ci poszło.
Użycie weryfikacji kryptograficznej
Przeglądanie plików aplikacji
Ten folder zawiera ten sam zbiór plików co folder 2-HelloUser
, jednak dwa pliki zostały zmodyfikowane i dodano jeden nowy. Nowy plik to auth.py
. Zawiera on metodę user()
służącą do pobierania i sprawdzania kryptograficznie podpisanych informacji o tożsamości. Zmodyfikowane pliki to main.py
i templates/index.html
. Korzystają one z wyników wykonania tej metody. Widoczne są także niezweryfikowane nagłówki w postaci stosowanej w ostatnim wdrożeniu. Dzięki temu można je porównać z nowymi nagłówkami.
- Nowe funkcje znajdują się głównie w funkcji
user()
:
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']
Obiekt assertion
zawiera kryptograficznie podpisane dane przekazane w określonym nagłówku żądania. W kodzie używana jest biblioteka, która weryfikuje i dekoduje dane. Proces weryfikacji używa dostarczonych przez Google kluczy publicznych do sprawdzania podpisywanych danych i uzyskiwania informacji o odbiorcach, dla których zostały one przygotowane (czyli o chronionym projekcie Google Cloud). Funkcje pomocnicze keys()
i audience()
zbierają oraz zwracają te wartości.
Podpisany obiekt zawiera 2 fragmenty danych, których będziemy potrzebować: zweryfikowany adres e-mail i wartość unikalnego identyfikatora (podaną w polu standardowym sub
, którego nazwa pochodzi od słowa „subskrybent”).
W ten sposób zakończyliśmy wykonywanie kroku 3.
Testowanie weryfikacji kryptograficznej
Gdy wdrożenie będzie gotowe, pojawi się komunikat informujący o tym, że można wyświetlić aplikację przy użyciu polecenia gcloud app browse
.
gcloud app browse
Jeśli w przeglądarce nie otworzy się nowa karta, skopiuj wyświetlony link i otwórz go w nowej karcie, tak jak robisz to zwykle.
Pamiętaj, że IAP został wcześniej wyłączony, zatem aplikacja nie udostępnia żadnych danych IAP. Powinna Ci się wyświetlić strona podobna do tej:

Podobnie jak poprzednio aktywowanie nowej wersji aplikacji i wyświetlenie zaktualizowanej strony może potrwać kilka minut.
Ponieważ IAP jest wyłączony, nie są dostępne żadne informacje o użytkowniku. Teraz ponownie włącz IAP.
-
W oknie konsoli Cloud kliknij Menu nawigacyjne > Zabezpieczenia > Identity-Aware Proxy.
-
Kliknij przełącznik IAP znajdujący się obok aplikacji App Engine, aby ponownie włączyć IAP. Kliknij WŁĄCZ.
-
Odśwież stronę. Powinna pojawić się strona podobna do następującej:

Zwróć uwagę na to, że adres e-mail zwrócony przez zweryfikowaną metodę nie ma prefiksu accounts.google.com:
.
Gdy wyłączysz lub pominiesz IAP, zweryfikowane dane nie będą dostępne albo będą nieprawidłowe, ponieważ odpowiedni podpis mogą mieć wyłącznie dane utworzone przez posiadacza kluczy prywatnych Google.
Gratulacje!
Aplikacja internetowa App Engine została wdrożona. Najpierw przyznałeś(-aś) dostęp do aplikacji tylko wybranym użytkownikom. Następnie pobrałeś(-aś) i wyświetliłeś(-aś) informacje o tożsamości tych użytkowników, którym IAP przyznał dostęp do aplikacji. Wiesz już także, jak można podszywać się pod innych użytkowników, jeśli IAP zostanie wyłączony lub pominięty. Na zakończenie sprawdziłeś(-aś) kryptograficznie podpisane asercje tożsamości użytkowników, które zapobiegają podszywaniu się.
Kolejne kroki / Więcej informacji
Szkolenia i certyfikaty Google Cloud
…pomogą Ci wykorzystać wszystkie możliwości technologii Google Cloud. Nasze zajęcia obejmują umiejętności techniczne oraz sprawdzone metody, które ułatwią Ci szybką naukę i umożliwią jej kontynuację. Oferujemy szkolenia na poziomach od podstawowego po zaawansowany prowadzone w trybach wirtualnym, na żądanie i na żywo, dzięki czemu możesz dopasować program szkoleń do swojego napiętego harmonogramu. Certyfikaty umożliwią udokumentowanie i potwierdzenie Twoich umiejętności oraz doświadczenia w zakresie technologii Google Cloud.
Ostatnia aktualizacja instrukcji: 18 czerwca 2025 r.
Ostatni test modułu: 18 czerwca 2025 r.
Copyright 2025 Google LLC. Wszelkie prawa zastrzeżone. Google i logo Google są znakami towarowymi Google LLC. Wszelkie inne nazwy firm i produktów mogą być znakami towarowymi odpowiednich podmiotów, z którymi są powiązane.