Mengautentikasi pengguna dengan identitas eksternal

Panduan memulai ini menunjukkan cara mengamankan aplikasi menggunakan Identity-Aware Proxy (IAP) dan identitas eksternal. Dengan menggabungkan IAP dan Identity Platform, Anda dapat mengautentikasi pengguna dengan berbagai penyedia identitas, seperti OAuth, SAML, dan OIDC, selain Akun Google.

Dalam panduan memulai ini, Anda akan mengamankan contoh aplikasi App Engine menggunakan autentikasi Facebook.

Sebelum memulai

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  2. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  3. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

    gcloud init

  4. Lakukan inisialisasi App Engine untuk project Anda:

    gcloud app create --project=project-id
    
  5. Instal Git.

  6. Instal Node.js versi terbaru.

  7. Instal alat command line Firebase:

    npm install -g firebase-tools
    

Mengaktifkan API

Pertama, aktifkan Identity Platform:

  1. Buka halaman Identity Platform Marketplace di Konsol Google Cloud.

    Buka halaman Identity Platform Marketplace

  2. Klik Aktifkan Identity Platform. Halaman Identity Platform akan muncul di Google Cloud Console.

Kemudian, aktifkan IAP:

  1. Buka halaman IAP di Konsol Google Cloud.

    Buka halaman pembelian dalam aplikasi (IAP)

  2. Pilih project yang sama dengan yang Anda gunakan untuk Identity Platform. Menggunakan project yang berbeda tidak didukung.

  3. Klik Enable API.

Mendownload dan men-deploy kode contoh

Kode untuk panduan memulai ini memiliki dua komponen: aplikasi klien dan aplikasi autentikasi.

Aplikasi klien dilindungi oleh IAP. Saat menerima permintaan dari pengguna yang tidak diautentikasi, aplikasi akan mengalihkan permintaan tersebut ke aplikasi autentikasi untuk memverifikasi identitas pengguna. Jika pengguna berhasil login, aplikasi autentikasi akan merespons dengan Token Web JSON (JWT). Untuk tujuan demonstrasi, aplikasi klien menampilkan JWT.

Pertama, download kode dan deploy aplikasi klien:

  1. Download kode contoh:

    git clone https://github.com/GoogleCloudPlatform/iap-gcip-web-toolkit.git
    
  2. Ubah ke direktori aplikasi klien:

    cd iap-gcip-web-toolkit/sample/app
    
  3. Instal dependensi:

    npm install
    
  4. Deploy aplikasi klien ke App Engine:

    npm run deploy
    

    Aplikasi klien diluncurkan di URL:

    https://[PROJECT-ID].appspot.com
    

Berikutnya, deploy aplikasi autentikasi:

  1. Ubah ke direktori untuk aplikasi autentikasi:

    cd ../authui-firebaseui
    
  2. Instal dependensi:

    npm install
    
  3. Mengonfigurasi aplikasi autentikasi untuk menggunakan Firebase Hosting. Tentukan project ID Google Cloud dari project Google Cloud yang berisi aplikasi klien yang dilindungi IAP:

    firebase use project-id
    
  4. Men-deploy aplikasi:

    npm run deploy
    

    Aplikasi autentikasi akan diluncurkan di URL:

    https://[PROJECT-ID].firebaseapp.com
    

Anda telah men-deploy aplikasi klien dan autentikasi. Langkah selanjutnya adalah mengonfigurasi Identity Platform dan IAP.

Menyiapkan Identity Platform

IAP menggunakan Identity Platform untuk mengautentikasi identitas eksternal. Panduan memulai ini menggunakan Facebook sebagai contoh, tetapi Identity Platform mendukung berbagai penyedia identitas.

Membuat aplikasi Facebook

Untuk mengautentikasi pengguna dengan Facebook, Anda memerlukan App ID dan App Secret.

  1. Login ke Facebook for Developers. Jika Anda belum memiliki akun Facebook, Anda perlu membuatnya.

  2. Buka halaman Aplikasi Facebook.

  3. Klik Add a New App.

  4. Di menu kiri, pilih Setelan > Dasar.

  5. Di kotak URL Kebijakan Privasi, masukkan URL yang valid. Jika nanti Anda men-deploy aplikasi ke produksi, Anda dapat memperbarui URL agar mengarah ke kebijakan privasi Anda.

  6. Catat ID Aplikasi dan Rahasia Aplikasi Anda. Anda akan membutuhkannya di bagian berikutnya.

Menambahkan Facebook sebagai penyedia identitas

Konfigurasi Identity Platform agar dapat menggunakan Facebook untuk autentikasi:

  1. Buka halaman Identity Provider di Konsol Google Cloud.

    Buka halaman Identity Provider

  2. Klik Add a Provider.

  3. Pilih Facebook dari daftar penyedia.

  4. Masukkan ID Aplikasi dan Rahasia Aplikasi yang Anda peroleh di bagian sebelumnya.

  5. Klik Simpan.

Mengonfigurasi URI pengalihan OAuth

Setelah selesai memproses permintaan dari aplikasi autentikasi, Facebook memerlukan URI untuk mengalihkannya.

  1. Kembali ke halaman Apps Facebook dan pilih aplikasi Anda.

  2. Di menu kiri, klik Produk.

  3. Cari produk Facebook Login, lalu klik Set Up.

  4. Di menu navigasi sebelah kiri, pilih Setelan (Anda tidak perlu menyelesaikan alur panduan memulai terpandu).

  5. Di kotak Valid OAuth Redirect URI, masukkan URI pengalihan:

    https://project-id.firebaseapp.com/__/auth/handler
    

    Anda juga dapat menemukan URI ini di halaman konfigurasi penyedia Identity Platform.

  6. Klik Simpan Perubahan.

Anda selesai menyiapkan Identity Platform. Sekarang Anda dapat mengonfigurasi IAP agar digunakan untuk autentikasi.

Mengaktifkan IAP untuk menggunakan identitas eksternal

  1. Buka halaman IAP di konsol Google Cloud.

    Buka halaman pembelian dalam aplikasi (IAP)

  2. Klik tab APLIKASI.

  3. Pilih contoh aplikasi App Engine yang Anda deploy sebelumnya. URL dalam kategori Dipublikasikan akan terlihat seperti ini:

    https://project-id.appspot.com
    
  4. Di kolom IAP, alihkan tombol ke Aktif.

  5. Di panel samping, klik Start untuk Gunakan identitas eksternal untuk otorisasi.

  6. Di bagian Halaman login, pilih Saya akan memberikan halaman login saya sendiri.

  7. Di kolom Authentication URL, masukkan URL aplikasi autentikasi. URL-nya akan terlihat seperti ini:

    https://project-id.firebaseapp.com/
    

    Setelah Anda memasukkan URL, Google Cloud Console akan otomatis menambahkan kunci API Anda.

  8. Centang kotak dengan nama project Anda. Facebook harus terdaftar sebagai penyedia identitas.

  9. Klik Simpan.

Anda telah selesai menyiapkan IAP.

Menguji autentikasi pengguna

Untuk menguji apakah IAP melindungi aplikasi Anda dan mengautentikasi pengguna dengan Facebook:

  1. Buka aplikasi App Engine klien di browser Anda:

    https://project-id.appspot.com
    

    Setelah layar pemuatan singkat, Anda akan dialihkan ke halaman login Identity Platform.

  2. Ikuti petunjuk di layar untuk melakukan autentikasi dengan Facebook.

  3. Anda akan dialihkan kembali ke aplikasi klien, yang akan menampilkan JWT yang ditampilkan oleh Identity Platform.

Untuk logout sepenuhnya, Anda harus logout dari aplikasi contoh yang Anda buat dan Facebook. Anda harus logout dari kedua aplikasi karena Firebase membuat sesi dengan Facebook yang berlaku selama satu jam. Untuk informasi lebih lanjut, lihat Mengelola Sesi Pengguna.

Selamat! Anda berhasil men-deploy aplikasi ke App Engine dan melindunginya dengan identitas eksternal dan IAP.

Pembersihan

Agar akun Google Cloud Anda tidak dikenakan biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Selain itu, Anda mungkin ingin menghapus aplikasi Facebook yang Anda buat.

Langkah selanjutnya