
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
Di lab ini, Anda akan membangun aplikasi web sederhana dengan Google App Engine, lalu mempelajari berbagai cara dalam menggunakan Identity-Aware Proxy (IAP) untuk membatasi akses ke aplikasi dan menyediakan informasi identitas pengguna ke aplikasi tersebut. Aplikasi Anda akan:
Pengetahuan dasar terkait bahasa pemrograman Python akan meningkatkan pengalaman belajar Anda.
Lab ini berfokus pada Google App Engine dan IAP. Konsep dan blok kode yang tidak relevan akan dibahas sekilas dan disediakan, jadi Anda cukup menyalin dan menempelkannya.
Mengautentikasi pengguna aplikasi web sering kali diperlukan, dan biasanya memerlukan pemrograman khusus di aplikasi Anda. Untuk aplikasi Google Cloud, Anda dapat menyerahkan tugas tersebut pada layanan Identity-Aware Proxy. Jika Anda hanya perlu membatasi akses ke pengguna tertentu, perubahan pada aplikasi tidak diperlukan. Jika aplikasi perlu mengetahui identitas pengguna (seperti untuk menyimpan preferensi pengguna di sisi server), Identity-Aware Proxy dapat menyediakannya dengan sedikit kode aplikasi.
Identity-Aware Proxy (IAP) adalah layanan Google Cloud yang menangkap permintaan web yang dikirim ke aplikasi Anda, mengautentikasi pengguna yang membuat permintaan tersebut menggunakan Google Identity Service, dan hanya mengizinkan permintaan tersebut jika berasal dari pengguna yang diberi otorisasi. Selain itu, layanan ini dapat mengubah header permintaan untuk menyertakan informasi tentang pengguna yang diautentikasi.
Baca petunjuk ini. Lab memiliki timer dan Anda tidak dapat menjedanya. Timer yang dimulai saat Anda mengklik Start Lab akan menampilkan durasi ketersediaan resource Google Cloud untuk Anda.
Lab interaktif ini dapat Anda gunakan untuk melakukan aktivitas lab di lingkungan cloud sungguhan, bukan di lingkungan demo atau simulasi. Untuk mengakses lab ini, Anda akan diberi kredensial baru yang bersifat sementara dan dapat digunakan untuk login serta mengakses Google Cloud selama durasi lab.
Untuk menyelesaikan lab ini, Anda memerlukan:
Klik tombol Start Lab. Jika Anda perlu membayar lab, dialog akan terbuka untuk memilih metode pembayaran. Di sebelah kiri ada panel Lab Details yang berisi hal-hal berikut:
Klik Open Google Cloud console (atau klik kanan dan pilih Open Link in Incognito Window jika Anda menjalankan browser Chrome).
Lab akan menjalankan resource, lalu membuka tab lain yang menampilkan halaman Sign in.
Tips: Atur tab di jendela terpisah secara berdampingan.
Jika perlu, salin Username di bawah dan tempel ke dialog Sign in.
Anda juga dapat menemukan Username di panel Lab Details.
Klik Next.
Salin Password di bawah dan tempel ke dialog Welcome.
Anda juga dapat menemukan Password di panel Lab Details.
Klik Next.
Klik halaman berikutnya:
Setelah beberapa saat, Konsol Google Cloud akan terbuka di tab ini.
Cloud Shell adalah mesin virtual yang dilengkapi dengan berbagai alat pengembangan. Mesin virtual ini menawarkan direktori beranda persisten berkapasitas 5 GB dan berjalan di Google Cloud. Cloud Shell menyediakan akses command-line untuk resource Google Cloud Anda.
Setelah terhubung, Anda sudah diautentikasi, dan project ditetapkan ke PROJECT_ID Anda. Output berisi baris yang mendeklarasikan PROJECT_ID untuk sesi ini:
gcloud
adalah alat command line untuk Google Cloud. Alat ini sudah terinstal di Cloud Shell dan mendukung pelengkapan command line.
Klik Authorize.
Output Anda sekarang akan terlihat seperti ini:
Output:
Output:
Contoh output:
gcloud
yang lengkap di Google Cloud, baca panduan ringkasan gcloud CLI.
Klik bidang command line di Cloud Shell untuk mengetikkan perintah.
Download kode dari bucket penyimpanan publik lalu ubah ke folder kode:
Folder ini berisi satu subfolder untuk tiap langkah di lab ini. Anda akan mengubahnya ke folder yang benar di tiap langkahnya.
Ini adalah aplikasi Standar App Engine yang ditulis dalam bahasa Python dan hanya menampilkan halaman sambutan “Halo Dunia”. Kami akan men-deploy dan mengujinya, lalu membatasi aksesnya menggunakan IAP.
1-HelloWorld
yang berisi kode untuk langkah ini.Kode aplikasi berada di file main.py
. Kode ini menggunakan framework web Flask untuk merespons permintaan web dengan konten template. File template tersebut berada di templates/index.html
, dan untuk langkah ini, hanya berisi HTML biasa. File template kedua berisi contoh kerangka kebijakan privasi di templates/privacy.html
.
Ada dua file lainnya: requirements.txt
berisi daftar dari semua library Python non-default yang digunakan oleh aplikasi, dan app.yaml
yang memberi tahu Google Cloud bahwa ini adalah aplikasi App Engine yang ditulis menggunakan Python.
Anda dapat mencantumkan tiap file dalam shell menggunakan perintah cat, seperti berikut:
Atau Anda dapat membuka editor kode Cloud Shell dengan mengklik ikon Pensil di sisi kanan atas jendela Cloud Shell, dan memeriksa kode tersebut.
Anda tidak perlu mengubah file apa pun untuk langkah ini.
python39
.Pilih region
Ketika ditanya apakah Anda ingin melanjutkan, tekan Y untuk ya.
gcloud app deploy
.
Dalam hitungan menit, deployment akan selesai. Anda akan melihat pesan yang menyatakan bahwa Anda dapat melihat aplikasi dengan perintah gcloud app browse
.
Anda dapat membuka URL yang sama dari komputer mana pun yang terhubung ke internet untuk melihat halaman web tersebut. Akses belum dibatasi.
Klik Check my progress untuk memverifikasi tujuan.
Di jendela konsol cloud, klik Navigation menu > Security > Identity-Aware Proxy.
Klik ENABLE API.
Klik GO TO IDENTITY-AWARE PROXY.
Klik CONFIGURE CONSENT SCREEN.
Pilih Internal di bagian User Type, lalu klik Create.
Lengkapi bagian kosong yang diperlukan dengan nilai yang sesuai:
Kolom |
Nilai |
App name |
IAP Example |
User support email |
Pilih alamat email siswa lab Anda dari menu dropdown. |
Application home page |
URL yang digunakan untuk melihat aplikasi. Anda dapat menemukannya kembali dengan menjalankan perintah gcloud app browse di Cloud Shell lagi. |
Application privacy Policy link |
Link halaman privasi di aplikasi, mirip link halaman beranda dengan |
Authorized domains |
Klik + ADD DOMAINBagian nama host dari URL aplikasi, misalnya, iap-example-999999.appspot.com. Anda dapat melihatnya di kolom URL halaman web Halo Dunia yang sebelumnya dibuka. Jangan menyertakan awalan |
Developer Contact Information |
Masukkan minimal satu email |
Klik Save and Continue.
Untuk Scopes, klik Save and Continue.
Untuk Summary, klik Back to Dashboard.
Anda mungkin akan diminta untuk membuat kredensial. Anda tidak perlu membuat kredensial untuk lab ini, jadi tab browser ini bisa langsung ditutup.
Klik tombol di kolom IAP pada baris App Engine app untuk mengaktifkan IAP.
Buka tab browser lalu klik URL aplikasi Anda. Layar "Login dengan Google" akan terbuka dan mengharuskan Anda login untuk mengakses aplikasi.
Login dengan akun yang Anda gunakan untuk masuk ke konsol. Anda akan melihat layar yang menolak upaya akses tersebut.
Anda telah berhasil melindungi aplikasi dengan IAP, tetapi Anda belum memberi tahu IAP terkait akun mana yang akan diberi akses.
Tiap alamat email (atau alamat Grup Google, atau nama domain Workspace) yang akan diberi akses perlu ditambahkan sebagai Anggota.
Klik Add Principal.
Masukkan alamat email Student.
Lalu, pilih peran Cloud IAP > IAP-Secured Web App User untuk ditetapkan ke alamat tersebut.
Anda dapat memasukkan lebih banyak alamat atau domain Workspace dengan cara yang sama.
Pesan "Policy Updated" akan muncul di bagian bawah jendela.
Klik Check my progress untuk memverifikasi tujuan.
Kembali ke aplikasi dan muat ulang halaman. Anda sekarang akan melihat aplikasi web, karena Anda telah login dengan pengguna yang telah diotorisasi.
Jika Anda masih melihat halaman "You don't have access", IAP tidak akan memeriksa ulang otorisasi Anda. Dalam hal ini, lakukan langkah-langkah berikut:
/_gcp_iap/clear_login_cookie
ke bagian akhir URL, seperti berikut https://iap-example-999999.appspot.com/_gcp_iap/clear_login_cookie
.Langkah-langkah ini akan membuat IAP memeriksa ulang akses, dan sekarang Anda akan melihat layar utama aplikasi.
Jika Anda memiliki akses ke browser lain atau dapat menggunakan Mode Samaran di browser, serta memiliki akun Gmail atau Workspace lain yang masih berlaku, Anda dapat menggunakan browser tersebut untuk membuka halaman aplikasi dan login dengan akun lainnya. Karena akun tersebut belum diotorisasi, akan muncul tulisan “You Don't Have Access” di layar, bukan aplikasi Anda.
Setelah aplikasi dilindungi dengan IAP, aplikasi tersebut dapat menggunakan informasi identitas yang disediakan oleh IAP dalam header permintaan web yang dilaluinya. Pada langkah ini, aplikasi akan mendapatkan alamat email pengguna yang sedang login dan ID pengguna unik persisten yang ditetapkan oleh Google Identity Service untuk pengguna tersebut. Data tersebut akan ditampilkan kepada pengguna di halaman sambutan.
python39
.Dalam hitungan menit, deployment akan selesai. Sambil menunggu, Anda dapat memeriksa file aplikasi seperti yang dijelaskan di bawah.
Klik Check my progress untuk memverifikasi tujuan.
Folder ini berisi kumpulan file yang sama seperti yang terlihat di aplikasi yang di-deploy sebelumnya, 1-HelloWorld
, tetapi dua dari file tersebut telah diubah: main.py
dan templates/index.html
. Program telah diubah untuk mengambil informasi pengguna yang disediakan IAP dalam header permintaan, dan sekarang, template menampilkan data tersebut.
Ada dua baris di main.py
yang mendapatkan data identitas yang disediakan IAP:
Header X-Goog-Authenticated-User- disediakan oleh IAP, dan nama-nama tersebut tidak peka huruf besar/kecil, sehingga dapat dituliskan dalam huruf kecil atau huruf besar jika diinginkan. Pernyataan render_template sekarang menyertakan nilai-nilai tersebut agar dapat ditampilkan:
Template index.html dapat menampilkan nilai tersebut dengan mengurung nama menggunakan tanda kurung kurawal ganda:
Seperti yang Anda lihat, data yang disediakan diawali dengan accounts.google.com
, yang menunjukkan asal informasi tersebut. Aplikasi Anda dapat menghapus semuanya hingga dan termasuk tanda titik dua untuk mendapatkan nilai mentah jika diinginkan.
Kembali ke deployment. Ketika sudah siap, Anda akan melihat pesan bahwa aplikasi dapat dilihat dengan perintah gcloud app browse
.
Anda mungkin perlu menunggu beberapa menit agar versi baru dari aplikasi dapat menggantikan versi sebelumnya. Muat ulang halaman jika diperlukan untuk melihat halaman yang mirip dengan halaman di atas.
Apa yang terjadi pada aplikasi ini jika IAP dinonaktifkan, atau diabaikan (misalnya oleh aplikasi lain yang berjalan di project cloud yang sama)? Nonaktifkan IAP untuk mengetahuinya.
Anda akan diperingatkan bahwa dengan menonaktifkan IAP, semua pengguna dapat mengakses aplikasi.
Karena aplikasi sekarang tidak terlindungi, pengguna dapat mengirim permintaan web yang terlihat telah melewati IAP. Sebagai contoh, Anda dapat menjalankan perintah curl berikut dari Cloud Shell untuk melakukannya (ganti <your-url-here>
dengan URL aplikasi yang tepat):
Halaman web akan ditampilkan pada command line, dan akan terlihat seperti berikut:
Tidak ada cara bagi aplikasi untuk mengetahui apakah IAP telah dinonaktifkan atau diabaikan. Untuk kasus yang memiliki risiko potensial, Verifikasi Kriptografi bisa menjadi solusinya.
Jika ada risiko IAP dinonaktifkan atau diabaikan, aplikasi dapat memeriksa untuk memastikan informasi identitas yang diterimanya valid. Layanan ini menggunakan header permintaan web ketiga yang ditambahkan oleh IAP, yang disebut X-Goog-IAP-JWT-Assertion
. Nilai header adalah objek yang ditandatangani secara kriptografis yang juga berisi data identitas pengguna. Aplikasi Anda dapat memverifikasi tanda tangan digital dan menggunakan data yang disediakan dalam objek ini untuk memastikan bahwa tanda tangan tersebut disediakan oleh IAP tanpa adanya perubahan.
Verifikasi tanda tangan digital memerlukan beberapa langkah tambahan, seperti mengambil set kunci publik Google yang terbaru. Perlu tidaknya langkah tambahan ini dapat ditentukan berdasarkan risikonya. Misalnya, seseorang mungkin dapat menonaktifkan atau mengabaikan IAP. Faktor penentu lainnya adalah sensitivitas aplikasi.
python39
.Dalam hitungan menit, deployment akan selesai. Sambil menunggu, Anda dapat memeriksa file aplikasi seperti yang dijelaskan di bawah.
Klik Check my progress untuk memverifikasi tujuan.
Folder ini berisi kumpulan file yang sama seperti yang terlihat di 2-HelloUser
, dengan dua file telah diubah dan satu file baru. File yang baru adalah auth.py
, yang menyediakan metode bagi user()
untuk mendapatkan dan memverifikasi informasi identitas yang ditandatangani secara kriptografis. File yang diubah adalah main.py
dan templates/index.html
, yang saat ini menggunakan hasil dari metode tersebut. Header yang belum diverifikasi seperti yang ditemukan dalam deployment terakhir juga ditampilkan sebagai perbandingan.
user()
:assertion
adalah data yang ditandatangani secara kriptografis yang tersedia dalam header permintaan yang ditentukan. Kode ini menggunakan library untuk memvalidasi dan mendekode data tersebut. Validasi menggunakan kunci publik yang disediakan oleh Google untuk memeriksa data yang ditandatanganinya, serta mengetahui audiens yang dituju oleh data tersebut (pada dasarnya, project Google Cloud yang sedang dilindungi). Fungsi bantuan keys()
dan audience()
mengumpulkan dan menampilkan nilai tersebut.
Objek yang ditandatangani memiliki dua buah data yang diperlukan: alamat email yang diverifikasi, dan nilai ID unik (disediakan di bagian sub
, untuk pelanggan, kolom standar).
Langkah 3 telah selesai.
Ketika deployment siap, Anda akan melihat pesan bahwa aplikasi dapat dilihat dengan perintah gcloud app browse
.
Jika tab baru tidak terbuka pada browser, salin link yang ditampilkan dan buka link tersebut di tab baru seperti biasa.
Ingat, sebelumnya Anda telah menonaktifkan IAP, sehingga aplikasi tidak menyediakan data IAP. Anda akan melihat halaman seperti berikut:
Seperti sebelumnya, Anda mungkin perlu menunggu beberapa menit hingga versi terbaru diluncurkan guna melihat versi baru dari halaman tersebut.
Karena IAP dinonaktifkan, tidak ada informasi pengguna yang tersedia. Sekarang aktifkan kembali IAP.
Di jendela konsol cloud, klik Navigation menu > Security > Identity-Aware Proxy.
Klik tombol pengalih IAP di samping App Engine app untuk mengaktifkan IAP kembali. Klik TURN ON.
Muat ulang halaman. Halaman akan terlihat seperti berikut:
Perhatikan bahwa alamat email yang disediakan oleh metode terverifikasi tidak memiliki awalan accounts.google.com:
.
Jika IAP dinonaktifkan atau diabaikan, data yang diverifikasi akan hilang, atau tidak valid, karena data tersebut tidak dapat memiliki tanda tangan yang valid kecuali jika dibuat oleh pemegang kunci pribadi Google.
Anda telah men-deploy aplikasi web App Engine. Pertama, Anda membatasi akses ke aplikasi hanya ke pengguna yang Anda pilih. Kemudian Anda mengambil dan menampilkan identitas pengguna yang diizinkan IAP untuk mengakses aplikasi, dan memahami bagaimana informasi tersebut dapat di-spoofing jika IAP dinonaktifkan atau diabaikan. Terakhir, Anda memverifikasi pernyataan yang ditandatangani secara kriptografis pada identitas pengguna, yang tidak dapat di-spoofing.
...membantu Anda mengoptimalkan teknologi Google Cloud. Kelas kami mencakup keterampilan teknis dan praktik terbaik untuk membantu Anda memahami dengan cepat dan melanjutkan proses pembelajaran. Kami menawarkan pelatihan tingkat dasar hingga lanjutan dengan opsi on demand, live, dan virtual untuk menyesuaikan dengan jadwal Anda yang sibuk. Sertifikasi membantu Anda memvalidasi dan membuktikan keterampilan serta keahlian Anda dalam teknologi Google Cloud.
Manual Terakhir Diperbarui pada 15 April 2024
Lab Terakhir Diuji pada 28 Februari 2024
Hak cipta 2025 Google LLC Semua hak dilindungi undang-undang. Google dan logo Google adalah merek dagang dari Google LLC. Semua nama perusahaan dan produk lain mungkin adalah merek dagang masing-masing perusahaan yang bersangkutan.
Konten ini tidak tersedia untuk saat ini
Kami akan memberi tahu Anda melalui email saat konten tersedia
Bagus!
Kami akan menghubungi Anda melalui email saat konten tersedia
One lab at a time
Confirm to end all existing labs and start this one