Jika penyedia identitas (IdP) Anda mendukung System for Cross-domain Identity Management (SCIM), Anda dapat mengonfigurasinya untuk menyediakan dan mengelola pengguna dan grup di Google Cloud.
Kemampuan
Dukungan SCIM Workforce Identity Federation menyediakan kemampuan berikut:
- Sinkronisasi identitas: Menyinkronkan pengguna dan grup dari IdP eksternal Anda ke Google Cloud untuk mempertahankan tampilan holistik identitas tenaga kerja.
- Sumber utama untuk klaim: Jika SCIM diaktifkan untuk penyedia tenaga kerja, Google Cloud menggunakan pengguna dan grup SCIM yang disinkronkan sebagai sumber tepercaya untuk atribut pengguna dan keanggotaan grup untuk evaluasi kebijakan IAM.
- Pelengkapan otomatis identitas: Mengaktifkan pelengkapan otomatis pengguna dan grup saat memberikan akses dan membagikan resource (seperti Notebook dan Agen) di Gemini Enterprise.
Pertimbangan
Saat Anda menggunakan dukungan SCIM Workforce Identity Federation, pertimbangan berikut berlaku:
- Anda harus menyiapkan penyedia dan workforce identity pool sebelum mengonfigurasi tenant SCIM.
- Setiap kumpulan identitas tenaga kerja hanya mendukung satu tenant SCIM, yang ditautkan ke satu penyedia.
Anda tidak dapat mengaktifkan penggunaan SCIM (
--scim-usage) di penyedia lain dalam pool yang sama. Untuk mengonfigurasi tenant SCIM baru di workforce identity pool yang sama, Anda harus menghapus tenant yang ada terlebih dahulu. Untuk menghapus tenant SCIM, gunakan salah satu metode berikut:- Penghapusan sementara (default): Menghapus tenant SCIM akan memulai periode penghapusan sementara selama 30 hari. Selama waktu ini, tenant disembunyikan dan tidak dapat digunakan, dan Anda tidak dapat membuat tenant SCIM baru di workforce identity pool yang sama.
- Penghapusan permanen: Untuk menghapus tenant SCIM secara permanen dan langsung, gunakan flag
--hard-deletedengan perintah penghapusan. Tindakan ini tidak dapat diurungkan dan memungkinkan Anda membuat tenant SCIM baru di kumpulan identitas tenaga kerja yang sama secara langsung tanpa menunggu periode retensi 30 hari. Atau, Anda dapat membuat workforce identity pool baru dan tenant SCIM baru atau menggunakan workforce identity pool yang belum pernah dikonfigurasi dengan tenant SCIM.
- Mode penggunaan SCIM (
--scim-usage):enabled-for-groups(Gemini Enterprise): Menggunakan grup yang disinkronkan SCIM untuk otorisasi IAM dan evaluasi kebijakan. Atribut pengguna terus diperoleh dari token login. Hanya pemetaangoogle.subjectdangoogle.groupyang dievaluasi.enabled-for-users-groups(Looker) (Pratinjau): Menggunakan data pengguna dan grup yang disinkronkan SCIM sebagai sumber klaim untuk alur kerja otorisasi IAM dan login OAuth. Mengevaluasigoogle.subject,google.group, dan semua klaim pengguna yang dikonfigurasi (sepertigoogle.display_name,google.profile_photo,google.email,google.posix_username, danattribute.KEYkustom).
- Tidak dapat muncul bersamaan: Setelan
--scim-usage=enabled-for-users-groups(Pratinjau) tidak dapat muncul bersamaan dengan Atribut Tambahan (extra_attributes_oauth2_client) dan Atribut yang Diperluas (extended_attributes_oauth2_client). - Saat menggunakan SCIM, Anda memetakan atribut di penyedia
workforce identity pool dan tenant SCIM. Atribut
google.subjectharus merujuk secara unik ke identitas yang sama. Anda menentukangoogle.subjectdi penyedia kumpulan identitas tenaga kerja menggunakan flag--attribute-mappingdan di tenant SCIM menggunakan flag--claim-mapping. Memetakan nilai identitas yang tidak unik dapat menyebabkan Google Cloud memperlakukan identitas IdP yang berbeda sebagai identitas yang sama. Akibatnya, akses yang diberikan ke satu identitas pengguna atau grup dapat diperluas ke identitas lainnya, tetapi mencabut akses dari satu identitas mungkin tidak menghapusnya dari semua identitas. - Jika Anda mengaktifkan penggunaan SCIM di penyedia tanpa tenant SCIM terlampir, upaya login akan gagal karena Google Cloud tidak dapat menemukan tenant SCIM untuk penyedia tersebut.
- Penerapan keunikan: Google Cloud memvalidasi dan menerapkan
keunikan pada atribut yang dipetakan ke
google.subject(pengguna) dangoogle.group(grup) di tenant SCIM. Jika atribut yang dipetakan yang disediakan oleh IdP Anda menghasilkan nilai duplikat untukgoogle.subjectataugoogle.groupselama sinkronisasi, penyediaan akan gagal dengan error HTTP409 Conflict. Jika atribut yang dipetakan dievaluasi ke null atau kosong, penyediaan akan gagal dengan error HTTP400 Bad Request. - Batas ukuran atribut: Ukuran maksimum untuk atribut pengguna yang dipetakan dan diserialisasi (tidak termasuk
google.group) adalah 16 kB. Jika atribut yang dipetakan melebihi batas ini, upaya login akan gagal. - Batas token SCIM: Setiap tenant SCIM mendukung maksimum dua token SCIM (misalnya, untuk mendukung rotasi token tanpa waktu henti). Jika Anda memiliki dua token, hapus token yang ada sebelum membuat token baru.
- SCIM API (
iamscim.googleapis.com) tunduk pada kuota kapasitas yang berbeda dengan kuota API resource IAM standar. Secara default, permintaan tulis dan baca dibatasi hingga 3.000 permintaan per tenant SCIM per organisasi per menit. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.
Pemetaan klaim
Saat mengonfigurasi SCIM, Anda menentukan pemetaan klaim (--claim-mapping) di tenant SCIM untuk memetakan atribut pengguna dan grup SCIM ke atribut Google.
Atribut Google Cloud yang didukung untuk pemetaan klaim
Tabel berikut mencantumkan atribut Google Cloud yang dapat Anda petakan di tenant SCIM (--claim-mapping) menggunakan Common Expression Language (CEL):
| AtributGoogle Cloud | Persyaratan | Deskripsi | Ekspresi dan batas yang didukung |
|---|---|---|---|
google.subject |
Wajib |
ID unik untuk pengguna yang melakukan autentikasi. Atribut IdP pokok yang digunakan untuk mengisi |
Dibatasi untuk ekspresi dasar berikut (atau dengan .lowerAscii()):
Panjang maksimum: 127 byte. Catatan: Pemetaan ini tidak dapat diubah setelah tenant SCIM dibuat; untuk memperbaruinya, Anda harus menghapus secara permanen dan membuat ulang tenant SCIM. |
google.group |
Wajib untuk grup SCIM | ID unik untuk keanggotaan grup yang disinkronkan menggunakan SCIM. | Dibatasi untuk ekspresi dasar berikut (atau dengan .lowerAscii()):
Catatan: Pemetaan ini tidak dapat diubah setelah tenant SCIM dibuat; untuk memperbaruinya, Anda harus menghapus secara permanen dan membuat ulang tenant SCIM. |
google.display_name |
Opsional | Atribut yang menetapkan nama pengguna yang login di konsol Google Cloud . Atribut ini tidak dapat digunakan dalam kebijakan izin IAM. | Dipetakan ke atribut string (seperti user.displayName atau user.name.formatted). Panjang maksimum: 100 byte. |
google.profile_photo |
Opsional | URL foto thumbnail pengguna yang terlihat sebagai foto profilnya di konsol Google Cloud . Atribut ini tidak dapat digunakan dalam kebijakan izin IAM. | Harus dievaluasi ke string URL yang valid (seperti user.photos.filter(p, p.type == 'thumbnail')[0].value atau user.photos[0].value). |
google.email |
Opsional | Atribut yang digunakan untuk memetakan alamat email dari IdP ke produk yang terintegrasi menggunakan integrasi klien OAuth Workforce Identity Federation. Atribut ini tidak dapat digunakan dalam kebijakan izin IAM. | Dipetakan ke atribut email (seperti user.emails.filter(e, e.type == 'work')[0].value atau user.emails[0].value). |
google.posix_username |
Opsional | String nama pengguna unik yang mematuhi POSIX yang digunakan untuk SSH-in-browser dan Login OS dengan Workforce Identity Federation. Atribut ini tidak dapat digunakan dalam kebijakan izin IAM. | Panjang maksimum adalah 32 karakter. |
attribute.KEY |
Opsional |
Atribut khusus dari IdP yang dapat Anda gunakan untuk menentukan strategi otorisasi dalam kebijakan izin IAM. Ganti KEY dengan nama atribut yang ingin Anda gunakan. Misalnya, Anda dapat menentukan atribut kustom seperti |
Hingga 50 aturan pemetaan atribut khusus. Ukuran maksimum per aturan: 256 karakter. |
Perilaku berdasarkan penggunaan SCIM penyedia (--scim-usage)
Evaluasi pemetaan klaim SCIM bergantung pada mode --scim-usage yang dikonfigurasi di penyedia workforce identity pool:
enabled-for-groups(Gemini Enterprise): Hanya pemetaangoogle.subjectdangoogle.groupyang dievaluasi. Pemetaan klaim pengguna tambahan di--claim-mappingakan diabaikan.enabled-for-users-groups(Looker) (Pratinjau): Mengevaluasigoogle.subject,google.group, dan semua klaim pengguna yang dikonfigurasi (sepertigoogle.display_name,google.profile_photo,google.email,google.posix_username, danattribute.<var>KEY</var>kustom).
Contoh pemetaan untuk konsistensi subjek
Seperti yang dijelaskan dalam Atribut yang didukung untuk pemetaan klaim, atribut IdP pokok yang digunakan untuk mengisi google.subject harus identik di seluruh pemetaan penyedia (--attribute-mapping) dan tenant SCIM (--claim-mapping). Tabel berikut menunjukkan contoh referensi:
| Atribut Google | Pemetaan penyedia workforce identity pool | Pemetaan tenant SCIM (SCIM) |
|---|---|---|
google.subject |
assertion.oid (Entra ID) |
user.externalId |
google.subject |
assertion.sub (Okta) |
user.externalId |
google.subject |
assertion.preferred_username |
user.userName |
google.subject |
assertion.preferred_username.lowerAscii() |
user.userName.lowerAscii() |
google.subject |
assertion.email |
user.emails[0].value |
google.subject |
assertion.email.lowerAscii() |
user.emails[0].value.lowerAscii() |
Endpoint yang didukung dan tidak didukung
Endpoint protokol SCIM standar berikut didukung:
/Users: mengelola resource pengguna. Operasi yang didukung:Create,Get,Update,Delete,Patch, danPut./Groups: mengelola resource grup. Operasi yang didukung:Create,Get,Update,Delete, danPatch. MetodePUTtidak didukung untuk grup./Schemas: mengambil informasi skema./ServiceProviderConfig: mengambil konfigurasi penyedia layanan.
Endpoint protokol SCIM berikut tidak didukung:
/Me/Bulk/Search/ResourceTypes
Batasan
Bagian berikut menjelaskan batasan dan penyimpangan penerapan SCIM Federasi Identitas Tenaga Kerja dari spesifikasi SCIM (RFC 7643 dan 7644).
Batasan fitur protokol
Dukungan filter: Saat Anda mencantumkan pengguna atau grup menggunakan endpoint
/Usersatau/Groups, ekspresi filter hanya mendukung operatoreq(sama dengan). Anda dapat menggabungkan beberapa filtereqdenganand. Operator filter SCIM lainnya, sepertico(berisi) atausw(diawali dengan), tidak didukung.Penomoran halaman: IAM SCIM API tidak mendukung penomoran halaman standar untuk mencantumkan pengguna atau grup.
startIndex: parameter ini selalu1. API menampilkan hingga 100 hasil terlepas dari nilai yang Anda berikan untukstartIndex.itemsPerPage: jumlah maksimum resource yang ditampilkan dalam satu respons adalah 100.totalResults: API tidak menampilkan jumlah total sebenarnya dari resource yang cocok. KolomtotalResultsdalam respons selalu sama dengan jumlah item yang ditampilkan dalam respons tersebut, dengan maksimum 100.
Get Group dan mencantumkan Grup tanpa filter: API
GetGroupdanListGroupsmenampilkan daftar anggota kosong. Untuk mengambil anggota grup tertentu, gunakan APIListGroupsdengan filter anggota.Respons JSON yang tidak mematuhi standar dengan token tidak valid: Permintaan yang berisi token API tidak valid akan menampilkan kode status
HTTP 401dari Google Cloud. Respons bukan JSON yang valid seperti yang diperlukan oleh spesifikasi SCIM.
Batasan perilaku SCIM
ID yang tidak dapat diubah: Nilai atribut SCIM yang dipetakan ke
google.subjectataugoogle.groupdiperlakukan sebagai ID yang tidak dapat diubah dalam Google Cloud. Jika perlu mengubah nilai ini, Anda harus menghapus pengguna atau grup secara permanen dari IdP, lalu membuatnya kembali dengan nilai baru.ID unik dan tidak kosong: Google Cloud menerapkan keunikan pada nilai yang dipetakan ke
google.subjectdangoogle.groupdi tenant SCIM. Penyelarasan atribut yang dipetakan yang menghasilkan nilai duplikat untukgoogle.subjectataugoogle.groupgagal dengan error HTTP409 Conflict. Atribut yang dipetakan yang dievaluasi ke null atau kosong akan gagal dengan error HTTP400 Bad Request.Persyaratan email tunggal: Agar sinkronisasi SCIM berhasil, setiap pengguna harus memiliki tepat satu alamat email berjenis
work. Penyediaan atau pembaruan akan gagal jika IdP Anda mengirim beberapa email atau jika satu email yang diberikan bukan berjeniswork.Transformasi yang tidak peka huruf besar/kecil: Transformasi Common Expression Language (CEL) terbatas didukung untuk pemetaan klaim SCIM. Hanya
.lowerAscii()yang didukung untuk perbandingan yang tidak peka huruf besar/kecil untukuser.userNamedanuser.emails[0].value.
Batasan atribut
Bagian berikut menjelaskan dukungan atribut untuk pengguna, grup, dan ekstensi skema pengguna perusahaan.
Atribut pengguna
Tabel berikut mencantumkan atribut pengguna dan ketersediaannya dalam klaim Workforce Identity Federation:
| Atribut | Sub-atribut | Didukung di SCIM Provisioning | Batasan | Didukung di --claim-mapping |
|---|---|---|---|---|
userName |
T/A | Ya | T/A | Ya |
name |
formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix |
Ya | T/A | Ya |
displayName |
T/A | Ya | T/A | Ya |
nickName |
T/A | Ya | T/A | Ya |
profileUrl |
T/A | Ya | T/A | Ya |
title |
T/A | Ya | T/A | Ya |
userType |
T/A | Ya | T/A | Ya |
preferredLanguage |
T/A | Ya | T/A | Ya |
locale |
T/A | Ya | T/A | Ya |
timezone |
T/A | Ya | T/A | Ya |
active |
T/A | Ya | T/A | Ya |
password |
T/A | Tidak | T/A | Tidak |
emails |
display, type, value, primary |
Ya | Hanya jenis email work yang didukung. |
Ya |
phoneNumbers |
display, type, value, primary |
Ya | T/A | Ya |
ims |
display, type, value |
Ya | T/A | Ya |
photos |
display, type, value |
Ya | T/A | Ya |
addresses |
formatted, streetAddress, locality, region, postalCode, country |
Ya | T/A | Ya |
groups |
T/A | Tidak | T/A | Tidak |
entitlements |
display, type, value |
Ya | T/A | Ya |
roles |
type, value |
Ya | display tidak didukung. |
Ya |
x509Certificates |
type, value |
Ya | display tidak didukung. |
Tidak |
Atribut grup
Tabel berikut mencantumkan atribut grup dan ketersediaannya dalam klaim Workforce Identity Federation:
| Atribut | Sub-atribut yang didukung | Didukung di --claim-mapping |
|---|---|---|
displayName |
T/A | Ya |
externalId |
T/A | Ya |
members |
value, type, $ref, display |
Tidak |
Atribut ekstensi skema pengguna perusahaan
Tabel berikut menjelaskan dukungan untuk ekstensi skema pengguna perusahaan:
| Atribut | Sub-atribut yang didukung | Didukung di --claim-mapping |
|---|---|---|
employeeNumber |
T/A | Ya |
costCenter |
T/A | Ya |
organization |
T/A | Ya |
division |
T/A | Ya |
department |
T/A | Ya |
manager |
value, $ref, displayName |
Ya ($ref hanya didukung dalam penyediaan SCIM, bukan di --claim-mapping) |
Langkah berikutnya
- Mengonfigurasi dukungan SCIM untuk Workforce Identity Federation
- Memecahkan masalah penyediaan SCIM
- Logging audit SCIM IAM