Autentikasi ulang IAP

Dengan autentikasi ulang IAP, pemilik layanan dan aplikasi atau administrator Google Cloud dapat mengharuskan pengguna akhir yang telah diautentikasi untuk melakukan autentikasi ulang setelah jangka waktu tertentu saat mengakses layanan atau aplikasi yang dilindungi oleh IAP. Batas waktu ini membatasi rentang waktu bagi pengguna untuk mengakses layanan atau aplikasi yang dilindungi IAP sebelum diminta untuk melakukan autentikasi lagi.

Autentikasi ulang IAP dirancang untuk menerapkan kebijakan autentikasi ulang untuk layanan dan aplikasi yang dilindungi IAP. Anda mungkin melakukan hal ini untuk layanan dan aplikasi penting yang menangani informasi rahasia. Misalnya, Anda dapat menentukan bahwa pengguna yang mengakses aplikasi HR penting melakukan autentikasi ulang setiap jam menggunakan faktor kedua.

Metode autentikasi ulang yang didukung

Anda dapat menggunakan metode berikut untuk mengelola setelan autentikasi ulang:

  • Login: IAP memaksa autentikasi ulang aplikasi yang dilindungi dan pengguna harus login lagi.
  • Kunci aman: Pengguna akhir harus melakukan autentikasi ulang menggunakan autentikasi 2 langkah berbasis kunci keamanan yang telah dikonfigurasi.
  • Faktor kedua yang terdaftar: Pengguna akhir harus melakukan autentikasi ulang menggunakan salah satu metode autentikasi faktor kedua yang terdaftar.

Untuk informasi selengkapnya, lihat IapSettings.

Menyiapkan kebijakan autentikasi ulang

reauthSettings adalah bagian dari IapSettings, dan dengan demikian dapat ditetapkan pada jenis resource apa pun di hierarki resource. Anda dapat menetapkan reauthSettings pada layanan atau aplikasi di tingkat organisasi, folder, project, atau layanan untuk menerapkan batasan. Misalnya, Anda dapat membatasi durasi sesi hingga maksimum satu jam untuk semua aplikasi di organisasi, atau hingga aplikasi tertentu.

Ada dua jenis kebijakan yang dapat Anda gunakan untuk menyetel autentikasi ulang:

  • Minimum: Jika jenis kebijakan disetel ke MINIMUM pada resource, seperti organisasi, saat mengevaluasi setelan autentikasi ulang pada resource tingkat yang lebih rendah, seperti folder, kedua setelan tersebut akan digabungkan. Jika resource tingkat lebih rendah tidak memiliki setelan autentikasi ulang, hasil penggabungannya adalah setelan tidak kosong dari resource tingkat lebih tinggi. Jika tidak, penggabungan akan mengambil durasi sesi yang lebih singkat dan metode autentikasi ulang dengan prioritas lebih tinggi di antara kedua resource tersebut. Jenis kebijakan akan selalu MINIMUM. Setelan autentikasi ulang yang digabungkan akan digunakan untuk digabungkan dengan setelan autentikasi ulang resource tingkat lebih rendah berikutnya, misalnya project.

    Urutan prioritas tiga metode yang didukung dari yang tertinggi hingga terendah adalah Secure key, Enrolled second factors, dan Login.

  • Default: Jika jenis kebijakan disetel sebagai DEFAULT pada resource, seperti organisasi, saat mengevaluasi setelan autentikasi ulang pada resource tingkat lebih rendah, seperti folder, setelan resource tingkat lebih rendah akan digunakan jika dikonfigurasi; jika tidak, setelan autentikasi ulang resource yang lebih tinggi akan diterapkan.

Untuk kedua jenis kebijakan, proses evaluasi diulang untuk menentukan reauthSettings untuk layanan atau aplikasi target. Contoh berikut menunjukkan setelan sebelum dan sesudah evaluasi. Selama evaluasi, folder dan organisasi reauthSettings digabungkan, sehingga jenis kebijakan folder diubah menjadi MINIMUM. Setelan yang digabungkan kemudian digunakan untuk digabungkan dengan layanan atau aplikasi reauthSettings.

Organisasi IapSettings:

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "3600s"
    policyType: "MINIMUM"

Folder IapSettings:

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "1200s"
    policyType: "DEFAULT"

Layanan atau Aplikasi IapSettings:

accessSettings:
  reauthSettings:
    method: "SECURE_KEY"
    maxAge: "7200s"
    policyType: "DEFAULT"

Setelan setelah penggabungan:

Organisasi IapSettings:

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "3600s"
    policyType: "MINIMUM"

Folder IapSettings:

accessSettings:
  reauthSettings:
    method: "ENROLLED_SECOND_FACTORS"
    maxAge: "1200s"
    policyType: "MINIMUM"

Layanan atau Aplikasi IapSettings:

accessSettings:
  reauthSettings:
    method: "SECURE_KEY"
    maxAge: "1200s"
    policyType: "MINIMUM"

Dalam contoh, jika jenis kebijakan setiap resource disetel ke DEFAULT, reauthSettings layanan atau aplikasi akan digunakan.

MaxAge

Gunakan parameter MaxAge untuk menentukan seberapa sering pengguna akhir harus melakukan autentikasi ulang, yang dilambangkan dalam detik. Misalnya, untuk menyetel kebijakan autentikasi ulang satu jam, setel detik ke 3600, seperti yang ditunjukkan pada contoh berikut:

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "3600s"
    policyType: "MINIMUM"

Nilai minimum untuk maxAge adalah lima menit.

Untuk menetapkan kebijakan autentikasi ulang, selesaikan langkah-langkah berikut.

Konsol

  1. Buka halaman Identity-Aware Proxy.
    Buka halaman Identity-Aware Proxy
  2. Pilih project, lalu pilih resource tempat Anda ingin menetapkan kebijakan autentikasi ulang.

  3. Buka Setelan untuk resource dan di bagian Kebijakan autentikasi ulang, pilih Konfigurasi autentikasi ulang.

  4. Tentukan setelan autentikasi ulang, lalu klik Simpan.

gcloud

Anda dapat menetapkan kebijakan autentikasi ulang pada resource dan layanan di tingkat organisasi, project, dan folder. Berikut adalah beberapa contoh perintah untuk menyetel kebijakan autentikasi ulang.

Untuk informasi selengkapnya, lihat gcloud iap settings set.

Jalankan perintah berikut:

gcloud iap settings set SETTING_FILE [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION

Untuk menyetel kebijakan autentikasi ulang pada resource dalam organisasi, jalankan perintah berikut:

gcloud iap settings set SETTING_FILE --organization=ORGANIZATION

Untuk menetapkan kebijakan autentikasi ulang pada resource dalam folder, jalankan perintah berikut:

gcloud iap settings set SETTING_FILE --folder=FOLDER

Untuk menetapkan kebijakan autentikasi ulang di semua resource jenis web dalam project, jalankan perintah berikut:

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=iap_web

Untuk menetapkan kebijakan autentikasi ulang di layanan App Engine dalam project, jalankan perintah berikut:

gcloud iap settings set SETTING_FILE --project=PROJECT --resource-type=app-engine --service=SERVICE

Dengan SETTING_FILE:

accessSettings:
  reauthSettings:
    method: "LOGIN"
    maxAge: "3600s"
    policyType: "MINIMUM"

Ganti kode berikut:

  • FOLDER: ID folder.
  • ORGANIZATION: ID organisasi.
  • PROJECT: Project ID.
  • RESOURCE_TYPE: Jenis resource IAP. Harus berupa app-engine, iap_web, compute, organization, atau folder.
  • SERVICE: Nama layanan. Hal ini opsional jika resource-type adalah compute atau app-engine.
  • VERSION: Nama versi. Hal ini tidak berlaku untuk compute, dan bersifat opsional jika resource-type adalah app-engine.

API

Jalankan perintah berikut untuk menyiapkan file iap_settings.json. Perbarui nilainya sesuai kebutuhan.

cat << EOF > iap_settings.json
{
  "access_settings": {
      "reauth_settings": {
            "method": "LOGIN",
            "maxAge": "300s",
            "policy_type": "DEFAULT"
        }
    }
}
EOF

Dapatkan nama resource dengan menjalankan perintah gcloud iap settings get. Salin kolom nama dari output. Anda akan memerlukan nama tersebut pada langkah berikutnya.

gcloud iap settings get [--organization=ORGANIZATION --folder=FOLDER --project=/PROJECT --resource-type=RESOURCE_TYPE --service=SERVICE --version=VERSION]

Ganti RESOURCE_NAME di perintah berikut dengan nama dari langkah sebelumnya. IapSettings akan diperbarui.

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d @iap_settings.json \
"https://iap.googleapis.com/v1/RESOURCE_NAME:iapSettings?updateMask=iapSettings.accessSettings.reauthSettings"

Memahami kredensial autentikasi ulang

Setelah autentikasi ulang berhasil, IAP akan membuat cookie di browser pengguna akhir. Agar pengguna tidak terlalu sering melakukan autentikasi ulang saat menggunakan aplikasi serupa, cookie disetel di domain pribadi level teratas dan valid untuk seluruh domain level pribadi tersebut.

Misalnya, foo.example.com adalah resource yang dilindungi IAP dan memiliki kebijakan autentikasi ulang IAP. Setelah autentikasi ulang berhasil, IAP akan menetapkan cookie di example.com karena merupakan domain pribadi level teratas. Aplikasi dari domain pribadi level teratas yang sama, seperti bar.example.com, akan menggunakan kredensial autentikasi ulang yang sama dan tidak meminta pengguna untuk melakukan autentikasi ulang, selama kredensial tersebut valid.

Perlu diketahui bahwa untuk URL seperti myapp.appspot.com, appspot.com adalah domain publik, sehingga domain pribadi tingkat teratasnya adalah myapp.appspot.com.

Batasan umum

  • Autentikasi ulang hanya didukung untuk alur browser. Akses akun pengguna terprogram tidak didukung. Misalnya, aplikasi seluler dan desktop tidak memiliki cara untuk mengautentikasi ulang pengguna, karena resource yang memerlukan autentikasi ulang tidak dapat diakses.
  • Akun layanan dan IAP-TCP dikecualikan dari persyaratan autentikasi ulang.
  • Autentikasi ulang tidak berfungsi dengan jenis anggota IAM allUsers.
  • Identitas eksternal melalui Identity Platform tidak didukung dengan autentikasi ulang, karena resource yang memerlukan autentikasi ulang tidak dapat diakses.