arrow_back

Uwierzytelnianie użytkowników: Identity-Aware Proxy

Zyskaj dostęp do ponad 700 modułów i kursów

Uwierzytelnianie użytkowników: Identity-Aware Proxy

Moduł 1 godz. universal_currency_alt 1 punkt show_chart Wprowadzające
info Ten moduł może zawierać narzędzia AI, które ułatwią Ci naukę.
Zyskaj dostęp do ponad 700 modułów i kursów

GSP499

Logo modułów do samodzielnego ukończenia poświęconych Google Cloud

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

  1. 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.
  2. 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.
  3. 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.

  4. Kliknij Dalej.

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

  6. 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.
  7. 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. Ikona menu nawigacyjnego i pole wyszukiwania

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.

  1. Kliknij Aktywuj Cloud Shell Ikona aktywowania Cloud Shell na górze konsoli Google Cloud.

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

  1. (Opcjonalnie) Aby wyświetlić listę aktywnych kont, użyj tego polecenia:
gcloud auth list
  1. Kliknij Autoryzuj.

Dane wyjściowe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (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

  1. Zmień środowisko wykonawcze Pythona na python39.
sed -i 's/python37/python39/g' app.yaml
  1. Wdróż aplikację w standardowym środowisku App Engine języka Python.
gcloud app deploy
  1. Wybierz region .

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

  1. Wpisz polecenie:
gcloud app browse
  1. 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.

Karta IAP Hello World

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

  1. W oknie konsoli Cloud kliknij Menu nawigacyjne Ikona menu nawigacyjnego > Zabezpieczenia > Identity-Aware Proxy.

  2. Kliknij Włącz API.

  3. Kliknij Przejdź do Identity-Aware Proxy.

  4. Aby skonfigurować ekran zgody OAuth w projekcie, otwórz tę stronę.

  5. Kliknij Rozpocznij.

  6. W polu Nazwa aplikacji wpisz IAP Example.

  7. Kliknij Adres e-mail dla użytkowników potrzebujących pomocy, a następnie swój szkoleniowy adres e-mail i Dalej.

  8. W polu Odbiorcy wybierz Wewnętrzny i kliknij Dalej.

    Użytkownicy z dostępem do projektu powinni mieć możliwość zalogowania się w aplikacji.

  9. W lewym panelu instrukcji modułu skopiuj nazwę użytkownika.

  10. W polu Dane kontaktowe wklej skopiowaną nazwę użytkownika.

  11. Kliknij Dalej.

  12. Zaznacz Pole wyboru, aby zaakceptować zasady dotyczące danych użytkownika, a następnie kliknij DalejUtwórz.

    Ekran zgody został skonfigurowany.

  13. 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.
  1. 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.

  1. Ta domena będzie chroniona przez IAP. Kliknij Włącz.

Sprawdzanie, czy usługa IAP jest włączona

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

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

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

  1. Kliknij Dodaj podmiot zabezpieczeń.

  2. Wpisz swój szkoleniowy adres e-mail.

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

Dodaj podmioty zabezpieczeń w oknie „Aplikacja App Engine”, Cloud IAP > Użytkownik aplikacji internetowej zabezpieczonej przez IAP

  1. 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:

  1. 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.
  2. 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

  1. Zmień środowisko wykonawcze Pythona na python39.
sed -i 's/python37/python39/g' app.yaml
  1. Rozpocznij od wdrożenia aplikacji w standardowym środowisku App Engine dla Pythona, ponieważ ten proces potrwa kilka minut:
gcloud app deploy
  1. 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.pytemplates/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.

  1. Wpisz polecenie:
gcloud app browse
  1. 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:

Karta IAP Hello User

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

  1. W oknie konsoli Cloud kliknij Menu nawigacyjne > Zabezpieczenia > Identity-Aware Proxy.
  2. 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.

  1. Odśwież stronę internetową aplikacji. Powinna pojawić się ta sama strona, jednak bez żadnych informacji o użytkowniku:

Karta IAP Hello User bez 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

  1. Zmień środowisko wykonawcze Pythona na python39.
sed -i 's/python37/python39/g' app.yaml
  1. Wdróż aplikację w standardowym środowisku App Engine dla Pythona:
gcloud app deploy
  1. 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.pytemplates/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()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.

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

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:

Karta IAP Hello Verified User bez identyfikatora użytkownika

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.

  1. W oknie konsoli Cloud kliknij Menu nawigacyjne > Zabezpieczenia > Identity-Aware Proxy.

  2. Kliknij przełącznik IAP znajdujący się obok aplikacji App Engine, aby ponownie włączyć IAP. Kliknij WŁĄCZ.

  3. Odśwież stronę. Powinna pojawić się strona podobna do następującej:

Karta Hello Verified User z identyfikatorem użytkownika

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.

Zanim zaczniesz

  1. Moduły tworzą projekt Google Cloud i zasoby na określony czas.
  2. Moduły mają ograniczenie czasowe i nie mają funkcji wstrzymywania. Jeśli zakończysz moduł, musisz go zacząć od początku.
  3. Aby rozpocząć, w lewym górnym rogu ekranu kliknij Rozpocznij moduł.

Użyj przeglądania prywatnego

  1. Skopiuj podaną nazwę użytkownika i hasło do modułu.
  2. Kliknij Otwórz konsolę w trybie prywatnym.

Zaloguj się w konsoli

  1. Zaloguj się z użyciem danych logowania do modułu. Użycie innych danych logowania może spowodować błędy lub naliczanie opłat.
  2. Zaakceptuj warunki i pomiń stronę zasobów przywracania.
  3. Nie klikaj Zakończ moduł, chyba że właśnie został przez Ciebie zakończony lub chcesz go uruchomić ponownie, ponieważ spowoduje to usunięcie wyników i projektu.

Ta treść jest obecnie niedostępna

Kiedy dostępność się zmieni, wyślemy Ci e-maila z powiadomieniem

Świetnie

Kiedy dostępność się zmieni, skontaktujemy się z Tobą e-mailem

Jeden moduł, a potem drugi

Potwierdź, aby zakończyć wszystkie istniejące moduły i rozpocząć ten

Aby uruchomić moduł, użyj przeglądania prywatnego

Uruchom ten moduł w oknie incognito 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.