Secara default, sesi Workforce Identity Federation memiliki durasi maksimum 12 jam. Durasi sesi yang diperpanjang memungkinkan organisasi mengonfigurasi sesi yang berlangsung lama hingga 90 hari untuk Looker (Google Cloud core) dan aplikasi seluler Gemini Enterprise:
Looker (Google Cloud core): Dikonfigurasi menggunakan cakupan project (
restricted_project). Sesi yang diperpanjang memungkinkan pengguna tenaga kerja mempertahankan koneksi tanpa gangguan ke Looker (Google Cloud core) tanpa memerlukan autentikasi ulang harian terhadap penyedia identitas eksternal (IdP) Anda. Interaksi pengguna dalam Looker (Google Cloud core) tetap diatur oleh konfigurasi durasi sesi Looker (Google Cloud core) Anda.Aplikasi seluler Gemini Enterprise: Dikonfigurasi menggunakan cakupan aplikasi (
restricted_client_application). Sesi yang diperpanjang memungkinkan pengguna tenaga kerja mempertahankan koneksi tanpa gangguan ke aplikasi seluler Gemini Enterprise tanpa memerlukan autentikasi ulang harian terhadap penyedia identitas eksternal (IdP) Anda.
Untuk menjaga keamanan selama sesi yang diperpanjang, Google Cloud secara berkala menyinkronkan atribut pengguna dan keanggotaan grup langsung dari penyedia identitas (IdP) eksternal Anda di latar belakang.
Dokumen ini menjelaskan cara menentukan kebijakan sesi yang diperpanjang menggunakan Access Context Manager API dengan kontrol cakupan project (untuk Looker (Google Cloud core)) dan kontrol cakupan aplikasi (untuk aplikasi seluler Gemini Enterprise), mengonfigurasi penyedia workforce pool, dan mengelola binding aktif.
Ringkasan
Workforce Identity Federation menggunakan binding akses Access Context Manager Google Cloud untuk mengonfigurasi durasi sesi yang diperpanjang:
Google Cloud binding akses: Administrator menentukan kebijakan durasi sesi menggunakan Access Context Manager yang berlaku di seluruh organisasi di semua workforce pool di organisasi Anda. Kebijakan memberikan sesi yang diperpanjang hingga 90 hari menggunakan salah satu dari berikut ini:
Cakupan project (
restricted_project): Menerapkan sesi yang diperpanjang ke instance Looker (Google Cloud core) di project yang ditentukan.Cakupan aplikasi (
restricted_client_application): Menerapkan sesi yang diperpanjang ke aplikasi seluler Gemini Enterprise.
Sinkronisasi atribut latar belakang:
OIDC: Didukung menggunakan alur Kode Otorisasi OIDC dengan cakupan
offline_access(menggunakan token refresh untuk memperbarui atribut pengguna dan keanggotaan grup secara berkala dari IdP eksternal Anda di latar belakang) atau melalui penyediaan SCIM.SAML: Untuk penyedia SAML, atribut pengguna dan keanggotaan grup selalu diperbarui menggunakan penyediaan SCIM.
Perlindungan penghentian: Jika atribut pengguna tidak dapat diperbarui dari IdP eksternal dalam waktu 24 jam (misalnya, jika pengguna tidak lagi disediakan atau kredensial dicabut di IdP), Google Cloud sesi akan dihentikan.
Sebelum memulai
Sebelum mengonfigurasi durasi sesi yang diperpanjang, pastikan Anda memiliki izin Identity and Access Management yang diperlukan dan API diaktifkan:
Peran dan izin yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk mengonfigurasi durasi sesi yang diperpanjang, minta administrator Anda untuk memberikan peran IAM berikut:
- Mengonfigurasi penyedia workforce identity pool: Admin Workforce Pool (
roles/iam.workforcePoolAdmin) di workforce pool atau organisasi. - Mengelola binding akses cloud Access Context Manager: Admin Binding Akses Cloud (
roles/accesscontextmanager.gcpAccessAdmin) di tingkat organisasi. Peran ini memberikan izin yang diperlukan untuk membuat, melihat, memperbarui, dan menghapus binding akses Access Context Manager.
Mengaktifkan API
Aktifkan Access Context Manager dan IAM API di project Anda:
gcloud services enable \
accesscontextmanager.googleapis.com \
iam.googleapis.com
Batasan dan Persyaratan
Sebelum mengonfigurasi durasi sesi yang diperpanjang, tinjau persyaratan dan batasan berikut:
- Aplikasi yang didukung: Durasi sesi yang diperpanjang hanya berlaku untuk hal berikut:
- Looker (Google Cloud core) (dikonfigurasi menggunakan cakupan project)
- Aplikasi seluler Gemini Enterprise (dikonfigurasi menggunakan cakupan aplikasi)
- Persyaratan daftar yang diizinkan untuk aplikasi seluler Gemini Enterprise: Durasi sesi yang diperpanjang untuk aplikasi seluler Gemini Enterprise hanya tersedia melalui daftar yang diizinkan. Untuk meminta akses ke daftar yang diizinkan selama Pratinjau, hubungi Google Cloud Poin kontak (POC) dukungan Anda.
- Jenis cakupan: Setelan sesi harus dikonfigurasi dalam
scopedAccessSettingsmenggunakan salah satu cakupan klien berikut:- Cakupan project (
restricted_project): Menentukan Google Cloud project yang memiliki instance Looker (Google Cloud core) (projects/{PROJECT_NUMBER}). Hanya instance Looker (Google Cloud core) yang dimiliki oleh project yang ditentukan yang terpengaruh. - Cakupan aplikasi (
restricted_client_application): Menentukan aplikasi berdasarkan tampilan kanonisname. - Untuk mengonfigurasi cakupan aplikasi untuk aplikasi seluler Gemini Enterprise, Anda harus menggunakan satu atau kedua nama aplikasi kanonis berikut secara eksplisit:
"Gemini Enterprise mobile Android""Gemini Enterprise mobile IOS"
- Pencakupan berdasarkan ID klien OAuth (
clientId) tidak didukung untuk binding Workforce Identity Federation dan akan ditolak. Anda harus mengidentifikasi aplikasi menggunakan kolomname.
- Cakupan project (
- Rentang durasi sesi: Durasi sesi harus antara minimum 1 jam (
3600s) dan maksimum 90 hari (7776000s). - Persyaratan parameter setelan sesi:
session_length_enabled: Harus ditetapkan ketrue.session_length: Durasi yang diperlukan antara 1 jam (3600s) dan 90 hari (7776000s).session_reauth_method: Harus tidak ditetapkan atau ditetapkan keLOGIN.use_oidc_max_age: Harus tidak ditetapkan atau ditetapkan kefalse.max_inactivity: Harus tidak ditetapkan (atau default0s). Waktu tunggu sesi tidak aktif tidak didukung untuk bindingrestricted_projectdan bindingrestricted_client_application.
- Penyedia identitas yang didukung:
- OIDC: Memerlukan penyedia OIDC yang dikonfigurasi dengan Alur Kode Otorisasi dan cakupan
offline_accessuntuk mengeluarkan token refresh, atau dikonfigurasi dengan penyediaan SCIM. - SAML 2.0: Memerlukan penyediaan SCIM yang diaktifkan pada penyedia workforce pool.
- OIDC: Memerlukan penyedia OIDC yang dikonfigurasi dengan Alur Kode Otorisasi dan cakupan
- Threshold penghentian atribut: Threshold penghentian 24 jam yang tetap diterapkan. Jika Google Cloud tidak dapat memperbarui atribut pengguna dari IdP Anda dalam waktu 24 jam, sesi akan dibatalkan dan pengguna harus melakukan autentikasi ulang.
- Batasan Access Context Manager:
- Binding organisasi tunggal: Binding durasi sesi yang diperpanjang untuk workforce pool harus menargetkan akun utama "semua workforce pool" organisasi (
principalSet://cloudresourcemanager.googleapis.com/organizations/{ORG_ID}/type/WorkforcePool). Karena ID akun utama gabungan ini berlaku di seluruh organisasi di semua workforce pool di organisasi Anda, hanya satu binding semacam itu yang dapat ada per organisasi. Untuk mengonfigurasi sesi yang diperpanjang untuk beberapa project Looker (Google Cloud core), aplikasi seluler Gemini Enterprise, atau kombinasi keduanya, sertakan beberapa blok cakupanrestricted_projectdanrestricted_client_applicationdalam daftarscopedAccessSettingsbinding tunggal. - Tingkat akses (
access_levels,dry_run_access_levels) tidak didukung pada binding workforce pool. sessionSettingstingkat atas langsung diGcpUserAccessBindingtidak didukung untuk binding workforce pool; setelan harus ditentukan dalamscopedAccessSettings.activeSettings.sessionSettings.
- Binding organisasi tunggal: Binding durasi sesi yang diperpanjang untuk workforce pool harus menargetkan akun utama "semua workforce pool" organisasi (
Mengonfigurasi penyedia workforce pool
Untuk mengizinkan durasi sesi yang diperpanjang, penyedia workforce pool Anda harus dikonfigurasi untuk mendukung pembaruan atribut latar belakang. Anda dapat mengonfigurasi penyedia untuk menggunakan protokol OIDC atau SAML.
Mengonfigurasi penyedia OIDC
Pembaruan atribut latar belakang untuk penyedia OIDC dapat ditangani menggunakan token refresh (cakupan offline_access) atau penyediaan SCIM. Jika menggunakan pembaruan atribut berbasis token:
- Di IdP eksternal Anda, konfigurasikan aplikasi OIDC dengan Alur Kode Otorisasi dan aktifkan Akses Offline sehingga token refresh ditampilkan.
- Di Google Cloud, tambahkan
offline_accesske cakupan tambahan pada penyedia workforce pool OIDC Anda.
Akses offline harus dikonfigurasi di semua workforce identity pool di organisasi Google Cloud Anda agar kebijakan durasi sesi yang diperpanjang memiliki efek yang diinginkan.
gcloud
Jika penyedia Anda sudah memiliki cakupan tambahan, sertakan cakupan tersebut bersama offline_access agar tidak ditimpa:
gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_NAME \
--location=global \
--web-sso-additional-scopes="offline_access[,EXISTING_ADDITIONAL_SCOPES]"
Ganti kode berikut:
PROVIDER_ID: Nama penyedia workforce identity pool Anda.WORKFORCE_POOL_NAME: Nama workforce identity pool Anda.EXISTING_ADDITIONAL_SCOPES: Cakupan tambahan yang dipisahkan koma dan sebelumnya dikonfigurasi pada penyedia. Jika Anda tidak memiliki cakupan tambahan, hapus parameter ini.
REST API
Kirim permintaan PATCH untuk memperbarui penyedia. Sertakan cakupan tambahan yang ada bersama offline_access:
PATCH https://iam.googleapis.com/v1/locations/global/workforcePools/WORKFORCE_POOL_NAME/providers/PROVIDER_ID?updateMask=oidc.webSsoConfig.additionalScopes
Isi permintaan:
{
"oidc": {
"webSsoConfig": {
"additionalScopes": [
"offline_access"
]
}
}
}
Ganti kode berikut:
WORKFORCE_POOL_NAME: Nama workforce identity pool Anda.PROVIDER_ID: ID penyedia workforce identity pool Anda.
Mengonfigurasi penyedia SAML
Untuk penyedia SAML, pembaruan atribut latar belakang memerlukan penyediaan SCIM:
- Siapkan tenant SCIM untuk penyedia workforce pool Anda.
- Konfigurasikan penyediaan pengguna dan grup dari penyedia identitas SAML Anda ke endpoint SCIM.
Untuk petunjuk langkah demi langkah, lihat Penyediaan SCIM untuk Workforce Identity Federation.
Contoh konfigurasi kebijakan untuk Looker (Google Cloud core)
Buat resource GcpUserAccessBinding yang menetapkan kebijakan durasi sesi yang diperpanjang ke workforce pool organisasi Anda, yang mencakup kebijakan ke project yang menghosting instance Looker (Google Cloud core) Anda.
gcloud
Tentukan kebijakan dalam file YAML bernama esl-binding.yaml:
scopedAccessSettings:
- scope:
clientScope:
restrictedProject:
name: projects/PROJECT_NUMBER
activeSettings:
sessionSettings:
sessionLength: 7776000s
sessionLengthEnabled: true
sessionReauthMethod: LOGIN
Buat binding akses:
gcloud access-context-manager cloud-bindings create \
--organization=ORG_ID \
--federated-principal="principalSet://cloudresourcemanager.googleapis.com/organizations/ORG_ID/type/WorkforcePool" \
--binding-file="esl-binding.yaml"
Ganti kode berikut:
ORG_ID: ID organisasi Anda Google Cloud (misalnya,123456789012).PROJECT_NUMBER: Nomor project yang memiliki instance Looker (Google Cloud core) target (misalnya,987654321098). Hanya aplikasi Looker (Google Cloud core) yang dimiliki oleh project ini yang menerima durasi sesi yang diperpanjang.sessionLength: Durasi sesi dalam detik diikuti olehs. Misalnya,7776000smenentukan sesi 90 hari.sessionLengthEnabled: Tetapkan ketrue.sessionReauthMethod: Tetapkan keLOGIN(atau biarkan tidak ditetapkan).
REST API
Kirim permintaan POST ke Access Context Manager API:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Isi permintaan JSON:
{
"principal": {
"federatedPrincipal": "principalSet://cloudresourcemanager.googleapis.com/organizations/ORG_ID/type/WorkforcePool"
},
"scopedAccessSettings": [
{
"scope": {
"clientScope": {
"restrictedProject": {
"name": "projects/PROJECT_NUMBER"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "7776000s",
"sessionLengthEnabled": true,
"sessionReauthMethod": "LOGIN"
}
}
}
]
}
Ganti kode berikut:
ORG_ID: ID organisasi Anda Google Cloud (misalnya,123456789012).PROJECT_NUMBER: Nomor project yang memiliki instance Looker (Google Cloud core) target (misalnya,987654321098). Hanya aplikasi Looker (Google Cloud core) yang dimiliki oleh project ini yang menerima durasi sesi yang diperpanjang.sessionLength: Durasi sesi dalam detik diikuti olehs. Misalnya,7776000smenentukan sesi 90 hari.sessionLengthEnabled: Tetapkan ketrue.sessionReauthMethod: Tetapkan keLOGIN(atau biarkan tidak ditetapkan).
Contoh konfigurasi kebijakan untuk aplikasi seluler Gemini Enterprise
Buat resource GcpUserAccessBinding yang menetapkan kebijakan durasi sesi yang diperpanjang ke workforce pool organisasi Anda, yang mencakup kebijakan ke aplikasi seluler Gemini Enterprise menggunakan cakupan restricted_client_application. Anda harus mengidentifikasi aplikasi menggunakan nama tampilan kanonis yang tepat: "Gemini Enterprise mobile Android" dan "Gemini Enterprise mobile IOS".
gcloud
Tentukan kebijakan dalam file YAML bernama esl-app-binding.yaml:
scopedAccessSettings:
- scope:
clientScope:
restrictedClientApplication:
name: "Gemini Enterprise mobile Android"
activeSettings:
sessionSettings:
sessionLength: 7776000s
sessionLengthEnabled: true
sessionReauthMethod: LOGIN
- scope:
clientScope:
restrictedClientApplication:
name: "Gemini Enterprise mobile IOS"
activeSettings:
sessionSettings:
sessionLength: 7776000s
sessionLengthEnabled: true
sessionReauthMethod: LOGIN
Buat binding akses:
gcloud access-context-manager cloud-bindings create \
--organization=ORG_ID \
--federated-principal="principalSet://cloudresourcemanager.googleapis.com/organizations/ORG_ID/type/WorkforcePool" \
--binding-file="esl-app-binding.yaml"
Ganti kode berikut:
ORG_ID: ID organisasi Anda Google Cloud (misalnya,123456789012).name: Harus"Gemini Enterprise mobile Android"atau"Gemini Enterprise mobile IOS". Mengidentifikasi aplikasi berdasarkan ID klien OAuth (clientId) tidak didukung untuk workforce pool.sessionLength: Durasi sesi dalam detik diikuti olehs(antara3600sdan7776000s).sessionLengthEnabled: Tetapkan ketrue.sessionReauthMethod: Tetapkan keLOGIN(atau biarkan tidak ditetapkan).
REST API
Kirim permintaan POST ke Access Context Manager API:
POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
Isi permintaan JSON:
{
"principal": {
"federatedPrincipal": "principalSet://cloudresourcemanager.googleapis.com/organizations/ORG_ID/type/WorkforcePool"
},
"scopedAccessSettings": [
{
"scope": {
"clientScope": {
"restrictedClientApplication": {
"name": "Gemini Enterprise mobile Android"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "7776000s",
"sessionLengthEnabled": true,
"sessionReauthMethod": "LOGIN"
}
}
},
{
"scope": {
"clientScope": {
"restrictedClientApplication": {
"name": "Gemini Enterprise mobile IOS"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "7776000s",
"sessionLengthEnabled": true,
"sessionReauthMethod": "LOGIN"
}
}
}
]
}
Ganti kode berikut:
ORG_ID: ID organisasi Anda Google Cloud (misalnya,123456789012).name: Harus"Gemini Enterprise mobile Android"atau"Gemini Enterprise mobile IOS". Mengidentifikasi aplikasi berdasarkan ID klien OAuth (clientId) tidak didukung untuk workforce pool.sessionLength: Durasi sesi dalam detik diikuti olehs. Misalnya,7776000smenentukan sesi 90 hari.sessionLengthEnabled: Tetapkan ketrue.sessionReauthMethod: Tetapkan keLOGIN(atau biarkan tidak ditetapkan).
Melihat dan mencantumkan binding
Karena binding berlaku di semua workforce pool dalam organisasi, maksimal hanya ada satu binding akses per organisasi.
Mencantumkan binding aktif
Untuk mencantumkan binding akses workforce pool di organisasi Anda, gunakan filter principal:federatedPrincipal:
gcloud
gcloud access-context-manager cloud-bindings list \
--organization=ORG_ID \
--filter="principal:federatedPrincipal"
REST API
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings?filter=principal:federated_principal
Mendapatkan detail binding
Untuk melihat detail binding akses workforce pool tertentu:
gcloud
gcloud access-context-manager cloud-bindings describe \
--binding=BINDING_NAME
Ganti BINDING_NAME dengan nama resource lengkap binding (misalnya, organizations/123456789012/gcpUserAccessBindings/b1234567890).
REST API
GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID
Ganti kode berikut:
ORG_ID: ID organisasi Anda Google Cloud (misalnya,123456789012).BINDING_ID: ID binding akses Anda (misalnya,b1234567890).
Memperbarui binding akses
Anda dapat memperbarui binding akses workforce pool yang ada untuk mengubah durasi sesi, menambahkan cakupan project atau aplikasi baru, atau menghapus cakupan yang ada.
gcloud
Tentukan kebijakan yang diperbarui dalam file YAML bernama
updated-esl-binding.yaml:scopedAccessSettings: - scope: clientScope: restrictedProject: name: projects/PROJECT_NUMBER activeSettings: sessionSettings: sessionLength: 2592000s sessionLengthEnabled: true sessionReauthMethod: LOGINTerapkan kebijakan yang diperbarui:
- Mengganti setelan akses cakupan: Untuk menimpa cakupan yang ada dengan konfigurasi yang ditentukan dalam
updated-esl-binding.yaml:
gcloud access-context-manager cloud-bindings update \ --binding=BINDING_NAME \ --binding-file="updated-esl-binding.yaml"- Menambahkan ke setelan yang ada: Untuk menambahkan cakupan yang ditentukan dalam
updated-esl-binding.yamlke cakupan yang ada di binding tanpa menimpanya, teruskan flag--append:
gcloud access-context-manager cloud-bindings update \ --binding=BINDING_NAME \ --binding-file="updated-esl-binding.yaml" \ --append- Mengganti setelan akses cakupan: Untuk menimpa cakupan yang ada dengan konfigurasi yang ditentukan dalam
Ganti kode berikut: * BINDING_NAME: Nama resource lengkap binding (misalnya, organizations/123456789012/gcpUserAccessBindings/b1234567890). * PROJECT_NUMBER: Nomor project yang memiliki instance Looker (Google Cloud core) target.
* sessionLength: Durasi sesi yang diperbarui (misalnya, 2592000s untuk 30 hari).
REST API
Kirim permintaan PATCH untuk memperbarui binding.
- Mengganti setelan akses cakupan: Untuk menimpa cakupan yang ada:
PATCH https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID?updateMask=scopedAccessSettings
- Menambahkan ke setelan yang ada: Untuk menambahkan cakupan baru tanpa menimpa cakupan yang ada, tetapkan parameter kueri
append=true:
PATCH https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID?updateMask=scopedAccessSettings&append=true
Isi permintaan JSON:
{
"scopedAccessSettings": [
{
"scope": {
"clientScope": {
"restrictedProject": {
"name": "projects/PROJECT_NUMBER"
}
}
},
"activeSettings": {
"sessionSettings": {
"sessionLength": "2592000s",
"sessionLengthEnabled": true,
"sessionReauthMethod": "LOGIN"
}
}
}
]
}
Ganti kode berikut:
* ORG_ID: ID organisasi Google Cloud Anda (misalnya, 123456789012).
* BINDING_ID: ID binding akses Anda (misalnya, b1234567890).
* PROJECT_NUMBER: Nomor project yang memiliki instance Looker (Google Cloud core) target.
* sessionLength: Durasi sesi yang diperbarui (misalnya, 2592000s untuk 30 hari).
Menghapus binding akses
Jika Anda menghapus binding akses workforce pool, durasi sesi yang diperpanjang akan dinonaktifkan untuk semua workforce pool di organisasi Anda.
gcloud
gcloud access-context-manager cloud-bindings delete \
--binding=BINDING_NAME
Ganti BINDING_NAME dengan nama resource lengkap binding.
REST API
Kirim permintaan DELETE untuk menghapus binding:
DELETE https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID
Ganti kode berikut:
ORG_ID: ID organisasi Anda. Google CloudBINDING_ID: ID binding akses yang akan dihapus.