
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 questo lab, creerai un'applicazione web minima con Google App Engine, quindi esplorerai vari modi di utilizzare Identity-Aware Proxy (IAP) per limitare l'accesso all'applicazione e per fornire informazioni sull'identità utente. La tua app sarà in grado di:
Spesso l'autenticazione degli utenti di un'app web è un'operazione necessaria e, in genere, richiede una programmazione speciale nell'app. Per le app di Google Cloud puoi delegare queste responsabilità al servizio Identity-Aware Proxy. Se devi semplicemente limitare l'accesso a utenti selezionati, non sono necessarie modifiche all'applicazione. Se l'applicazione deve conoscere l'identità dell'utente (ad esempio per memorizzare le preferenze dell'utente sul lato server), Identity-Aware Proxy può fornirla tramite un codice dell'applicazione minimo.
Identity-Aware Proxy (IAP) è un servizio di Google Cloud che intercetta le richieste web inviate alla tua applicazione, autentica l'utente che fa la richiesta utilizzando Google Identity Service e fa passare solo le richieste che provengono da un utente che hai autorizzato. Inoltre, può modificare le intestazioni della richiesta per includere informazioni sull'utente autenticato.
Una conoscenza di base del linguaggio di programmazione Python migliorerà la tua esperienza di apprendimento.
Questo lab riguarda specificamente Google App Engine e IAP. Concetti e blocchi di codice non pertinenti sono trattati solo superficialmente e sono forniti solo per operazioni di copia e incolla.
Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Inizia il lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.
Con questo lab pratico avrai la possibilità di completare le attività in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.
Per completare il lab, avrai bisogno di:
Fai clic sul pulsante Avvia lab. Se devi effettuare il pagamento per il lab, si aprirà una finestra di dialogo per permetterti di selezionare il metodo di pagamento. A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:
Fai clic su Apri console Google Cloud (o fai clic con il tasto destro del mouse e seleziona Apri link in finestra di navigazione in incognito se utilizzi il browser Chrome).
Il lab avvia le risorse e apre un'altra scheda con la pagina di accesso.
Suggerimento: disponi le schede in finestre separate posizionate fianco a fianco.
Se necessario, copia il Nome utente di seguito e incollalo nella finestra di dialogo di accesso.
Puoi trovare il Nome utente anche nel riquadro Dettagli lab.
Fai clic su Avanti.
Copia la Password di seguito e incollala nella finestra di dialogo di benvenuto.
Puoi trovare la Password anche nel riquadro Dettagli lab.
Fai clic su Avanti.
Fai clic nelle pagine successive:
Dopo qualche istante, la console Google Cloud si apre in questa scheda.
Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud. Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.
Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo PROJECT_ID. L'output contiene una riga che dichiara il PROJECT_ID per questa sessione:
gcloud
è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.
Fai clic su Autorizza.
L'output dovrebbe avere ora il seguente aspetto:
Output:
Output:
Output di esempio:
gcloud
, in Google Cloud, fai riferimento alla Panoramica dell'interfaccia a riga di comando gcloud.
Fai clic sull'area della riga di comando in Cloud Shell per digitare i comandi.
Scarica il codice da un bucket di archiviazione pubblico e poi passa alla cartella del codice:
Questa cartella contiene una sottocartella per ogni passaggio del lab. Dovrai passare alla cartella corretta per eseguire i singoli passaggi.
Questa è un'applicazione standard di App Engine scritta in Python che visualizza semplicemente una pagina di benvenuto "Hello World". Eseguiremo il deployment e la testeremo, quindi ne limiteremo l'accesso utilizzando IAP.
1-HelloWorld
che contiene il codice da utilizzare in questo passaggio.Il codice dell'applicazione è nel file main.py
. Utilizza il framework web Flask per rispondere alle richieste web con i contenuti di un modello. Il file modello si trova in templates/index.html
e per questo passaggio contiene solo HTML normale. Un secondo file modello contiene uno schema essenziale di norme sulla privacy di esempio in templates/privacy.html
.
Sono presenti due altri file: requirements.txt
, che elenca tutte le librerie Python non predefinite utilizzate dall'applicazione, e app.yaml
, che informa Google Cloud che questa è un'applicazione App Engine in Python.
Puoi elencare ciascun file della shell utilizzando il comando cat, ad esempio:
Oppure puoi lanciare l'editor di codice di Cloud Shell facendo clic sull'icona a forma di matita nell'angolo in alto a destra della finestra di Cloud Shell ed esaminare il codice in questo modo.
Per questo passaggio non è necessario modificare alcun file.
python39
.Seleziona una regione
Quando ti viene chiesto se vuoi continuare, digita Y per confermare.
gcloud app deploy
.
Il deployment viene completato in pochi minuti. Verrà visualizzato un messaggio che indica che puoi visualizzare la tua applicazione con gcloud app browse
.
Puoi aprire lo stesso URL da qualsiasi computer connesso a internet per vedere la pagina web. L'accesso non è ancora limitato.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Nella finestra della console Cloud, fai clic sul menu di navigazione > Sicurezza > Identity-Aware Proxy.
Fai clic su ABILITA API.
Fai clic su VAI A IDENTITY-AWARE PROXY.
Fai clic su CONFIGURA SCHERMATA DI CONSENSO.
Seleziona Interno come Tipo di utente e fai clic su Crea.
Compila i campi richiesti con i valori appropriati:
Campo |
Valore |
Nome dell'app |
Esempio IAP |
Email per assistenza utenti |
Seleziona l'indirizzo email di studente del lab dal menu a discesa. |
Home page applicazione |
L'URL che hai utilizzato per visualizzare la tua app. Puoi ritrovarlo eseguendo nuovamente il comando gcloud app browse in Cloud Shell. |
Link alle norme sulla privacy dell'applicazione |
Il link alla pagina della privacy nell'app è uguale al link della home page con l'aggiunta di |
Domini autorizzati |
Fai clic su + AGGIUNGI DOMINIOLa porzione del nome host dell'URL dell'applicazione, ad esempio iap-example-999999.appspot.com. Puoi vedere l'URL nella barra degli indirizzi della pagina web Hello World aperta in precedenza. Non includere la parte |
Dati di contatto dello sviluppatore |
Inserisci almeno un indirizzo email |
Fai clic su Salva e continua.
Per gli Ambiti, fai clic su Salva e continua.
Per il Riepilogo, fai clic su Torna alla dashboard.
È possibile che ti venga chiesto di creare le credenziali. Per questo lab non è necessario creare le credenziali, quindi puoi semplicemente chiudere questa scheda del browser.
Fai clic sul pulsante di attivazione/disattivazione nella colonna IAP della riga dell'app App Engine per attivare IAP.
Apri una scheda del browser e vai all'URL della tua app. Si aprirà una schermata Accedi con Google in cui inserire le credenziali per accedere all'app.
Accedi con l'account che hai utilizzato per accedere alla console. Verrà visualizzata una schermata che ti nega l'accesso.
La tua app è correttamente protetta tramite IAP, ma non hai ancora specificato in IAP quali account possono accedere.
Devi aggiungere come membri tutti gli indirizzi email (o indirizzi di Google Gruppi o nomi di dominio Workspace) che devono essere autorizzati ad accedere.
Fai clic su Aggiungi entità.
Inserisci il tuo indirizzo email Studente.
Quindi scegli il ruolo Cloud IAP > Utente applicazione web con protezione IAP da assegnare a quell'indirizzo.
Puoi inserire altri indirizzi o domini Workspace nello stesso modo.
In fondo alla finestra viene visualizzato il messaggio "Criterio aggiornato".
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Torna alla tua app e ricarica la pagina. A questo punto dovresti vedere la tua app web, in quanto hai già eseguito l'accesso con un utente autorizzato.
Se è visualizzata ancora la pagina "Non disponi dei diritti di accesso", è possibile che IAP non abbia ripetuto la verifica della tua autorizzazione. In questo caso, segui questi passaggi:
/_gcp_iap/clear_login_cookie
alla fine dell'URL, ovvero https://iap-example-999999.appspot.com/_gcp_iap/clear_login_cookie
.Questa procedura fa sì che IAP verifichi nuovamente il tuo accesso. A questo punto dovresti vedere la schermata iniziale della tua applicazione.
Se hai accesso a un altro browser oppure alla Modalità di navigazione in incognito in quello in uso e disponi di un altro account Gmail o Workspace valido, puoi utilizzare quel browser per andare alla pagina della tua app e accedere con l'altro account. Dal momento che quell'account non è autorizzato, invece della tua app vedrai la schermata "Non disponi dei diritti di accesso".
Quando un'app è protetta con IAP, può utilizzare le informazioni sull'identità che IAP fornisce nelle intestazioni delle richieste che lascia passare. In questo passaggio, l'applicazione riceve l'indirizzo email dell'utente che ha eseguito l'accesso e un ID utente univoco assegnato dal servizio di identità Google (Google Identity Service) a quell'utente. I dati vengono mostrati all'utente nella pagina di benvenuto.
python39
.Il deployment dovrebbe completarsi in pochi minuti. Mentre aspetti, puoi esaminare i file dell'applicazione descritti di seguito.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Questa cartella contiene lo stesso set di file che abbiamo visto nell'app precedente di cui hai eseguito il deployment, 1-HelloWorld
, ma due file sono stati cambiati: main.py
e templates/index.html
. Il programma è stato cambiato per recuperare le informazioni utente che IAP fornisce nelle intestazioni delle richieste: ora il modello visualizza quei dati.
In main.py
sono presenti due righe che recuperano i dati di identità forniti da IAP:
Le intestazioni X-Goog-Authenticated-User- sono fornite da IAP; i nomi sono senza distinzione tra maiuscole e minuscole, pertanto possono essere forniti a caratteri tutti minuscoli o tutti maiuscoli, se preferibile. L'istruzione render_template ora include quei valori, che possono quindi essere visualizzati:
Il modello index.html può visualizzare quei valori racchiudendo i nomi tra doppie parentesi graffe:
Come puoi vedere, i dati forniti hanno come prefisso accounts.google.com
, per indicare da dove provengono le informazioni. La tua applicazione può rimuovere tutto fino ai due punti inclusi per prendere i valori non elaborati, se opportuno.
Se torni al deployment, una volta completato, vedrai un messaggio che informa che puoi visualizzare la tua applicazione con gcloud app browse
.
Potresti dover attendere qualche minuto prima che la nuova versione della tua applicazione sostituisca quella precedente. Se necessario, aggiorna la pagina. Dovresti vedere una pagina simile a quella riportata sopra.
Che cosa succede all'app se IAP viene disattivato o in qualche modo ignorato, ad esempio da altre applicazioni in esecuzione nello stesso progetto cloud? Disattiva IAP per scoprirlo.
Sarà visualizzato un avviso che informa che tutti gli utenti potranno accedere all'app.
Ora che l'applicazione non è più protetta, un utente potrebbe inviare una richiesta web che sembra essere passata attraverso IAP. Ad esempio, per farlo, puoi eseguire il seguente comando curl da Cloud Shell (sostituisci <your-url-here>
con l'URL della tua app):
La pagina web sarà visualizzata sulla riga di comando e avrà questo aspetto:
L'applicazione non è in grado in alcun modo di sapere che IAP è stato disattivato o ignorato. Per i casi in cui esiste questo rischio potenziale, una soluzione è la verifica crittografica.
Se esiste il rischio che IAP sia disattivato o ignorato, la tua app può eseguire un controllo per verificare che le informazioni sull'identità ricevute siano valide. A questo scopo viene utilizzata una terza intestazione web aggiunta da IAP e denominata X-Goog-IAP-JWT-Assertion
. Il valore dell'intestazione è un oggetto firmato in modo crittografico che contiene anche i dati dell'identità utente. La tua applicazione può verificare la firma digitale e utilizzare i dati forniti nell'oggetto per avere la certezza che siano forniti da IAP senza alterazioni.
La verifica della firma digitale richiede vari altri passaggi, quali ad esempio il recupero del set più recente di chiavi pubbliche di Google. Puoi decidere se la tua applicazione necessita di questi ulteriori passaggi in base al rischio che qualcuno possa disattivare o ignorare l'IAP e alla sensibilità dell'applicazione.
python39
.Il deployment dovrebbe completarsi in pochi minuti. Mentre aspetti, puoi esaminare i file dell'applicazione descritti di seguito.
Fai clic su Controlla i miei progressi per verificare l'obiettivo.
Questa cartella contiene lo stesso set di file di 2-HelloUser
, con due file modificati e un nuovo file. Il nuovo file è auth.py
e fornisce un metodo user()
per recuperare e verificare le informazioni sull'identità firmate tramite crittografia. I file modificati sono main.py
e templates/index.html
, che ora utilizzano i risultati di quel metodo. Vengono mostrate a titolo comparativo le intestazioni riscontrate nell'ultimo deployment.
user()
:Con assertion
si intende l'insieme di dati firmati in forma criptata forniti nell'intestazione della richiesta specificata. Il codice utilizza una libreria per convalidare e decodificare quei dati. La convalida utilizza le chiavi pubbliche che Google fornisce per controllare i dati che firma e per conoscere i destinatari per cui i dati sono stati preparati (in pratica il progetto Google Cloud che viene protetto). Le funzioni helper keys()
e audience()
raccolgono e restituiscono questi valori.
L'oggetto firmato contiene due dati che ci servono: l'indirizzo email verificato e il valore ID univoco (disponibile nel campo standard sub
, come subscriber).
Il passaggio 3 è completato.
Quando il deployment è pronto, un messaggio confermerà che puoi visualizzare l'applicazione con gcloud app browse
.
Se nel browser non si apre una nuova scheda, copia il link visualizzato in una nuova scheda come faresti normalmente.
Ricorda che in precedenza avevi disattivato IAP, pertanto l'applicazione non fornisce dati IAP. Dovresti visualizzare una pagina simile alla seguente:
Come in precedenza, potrebbe essere necessario attendere qualche minuto perché la nuova versione sia pubblicata e visibile online.
Dal momento che IAP è disattivato, non sono disponibili informazioni utente. A questo punto, riattiva IAP.
Nella finestra della console Cloud, fai clic sul menu di navigazione > Sicurezza > Identity-Aware Proxy.
Fai clic sull'opzione attiva/disattiva di IAP accanto all'app di App Engine per riattivarlo. Fai clic su ATTIVA.
Aggiorna la pagina. La pagina deve avere il seguente aspetto:
Osserva che l'indirizzo email fornito dal metodo verificato non ha il prefisso accounts.google.com:
.
Se IAP è disattivato o ignorato, i dati verificati mancano o non sono validi, in quanto non possono avere una firma valida a meno che non siano creati da chi detiene le chiavi private di Google.
Hai eseguito il deployment di un'applicazione web di App Engine. In primo luogo hai limitato l'accesso all'applicazione ai soli utenti scelti da te. A seguire, hai recuperato e visualizzato l'identità degli utenti che IAP ha autorizzato ad accedere alla tua applicazione e hai visto come le informazioni possono essere soggette a spoofing se IAP è disattivato o ignorato. Infine hai verificato le asserzioni con firma criptata dell'identità utente, che non possono essere soggette a spoofing.
Questo self-paced lab fa parte delle Quest Security & Identity Fundamentals e Networking Fundamentals in Google Cloud. Una Quest è una serie di lab collegati tra loro che formano un percorso di apprendimento. Il completamento di una Quest ti permette di ottenere un badge come riconoscimento dell'obiettivo raggiunto. Puoi rendere pubblici i tuoi badge inserendone i link nel tuo CV online o sui social media. Iscriviti a una delle Quest contenenti il lab e ricevi un riconoscimento subito dopo averlo completato. Per vedere tutte le Quest disponibili, consulta il catalogo di Google Cloud Skills Boost.
Continua la Quest con Getting Started with Cloud KMS, oppure prova un altro lab Google Cloud Skills Boost, ad esempio:
Questo lavoro è concesso in licenza ai sensi di una licenza Creative Commons Attribution 2.0 Generic.
… per utilizzare al meglio le tecnologie Google Cloud. I nostri corsi ti consentono di sviluppare competenze tecniche e best practice per aiutarti a metterti subito al passo e avanzare nel tuo percorso di apprendimento. Offriamo vari livelli di formazione, dal livello base a quello avanzato, con opzioni di corsi on demand, dal vivo e virtuali, in modo da poter scegliere il più adatto in base ai tuoi impegni. Le certificazioni ti permettono di confermare e dimostrare le tue abilità e competenze relative alle tecnologie Google Cloud.
Ultimo aggiornamento del manuale: 24 febbraio 2024
Ultimo test del lab: 28 febbraio 2024
Copyright 2025 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.
Questi contenuti non sono al momento disponibili
Ti invieremo una notifica via email quando sarà disponibile
Bene.
Ti contatteremo via email non appena sarà disponibile
One lab at a time
Confirm to end all existing labs and start this one