Jika penyedia identitas (IdP) Anda mendukung System for Cross-domain Identity Management (SCIM), Anda dapat mengonfigurasi IdP untuk menyediakan dan mengelola grup di Google Cloud.
Kemampuan
Dukungan SCIM Workforce Identity Federation menyediakan kemampuan berikut:
Sinkronisasi identitas: Sinkronkan salinan data pengguna hanya baca dari IdP Anda untuk mendapatkan tampilan menyeluruh tentang properti dan keanggotaan pengguna di Google Cloud.
Perataan grup: SCIM memproses grup dari IdP Anda sehingga semua keanggotaan langsung dan tidak langsung (bertingkat) untuk pengguna diratakan dan disinkronkan ke Google Cloud Layanan Keanggotaan Grup (GMS). IAM kemudian menggunakan grup yang diratakan ini untuk pemeriksaan kebijakan, sehingga mengatasi batasan ukuran yang sering ditemukan dalam token IdP.
Integrasi Gemini Enterprise: Tenant SCIM mendukung berbagi di Gemini Enterprise. Tenant SCIM mengaktifkan dua fitur terkait berbagi notebook dalam Gemini Notebook Enterprise:
Isi otomatis untuk alamat email dan grup
Penggunaan nama grup, bukan ID objek (UUID)
Untuk mempelajari lebih lanjut, lihat Berbagi notebook dengan grup.
Pertimbangan
Saat Anda menggunakan dukungan SCIM Workforce Identity Federation, pertimbangan berikut berlaku:
- Anda harus menyiapkan workforce identity pool dan penyedia sebelum mengonfigurasi tenant SCIM.
- Setiap workforce identity pool hanya mendukung satu tenant SCIM, yang ditautkan ke satu penyedia. Anda tidak dapat mengaktifkan penggunaan SCIM (--scim-usage=enabled-for-groups) 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 akan 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 delete. Tindakan ini tidak dapat dibatalkan dan memungkinkan Anda membuat tenant SCIM baru di workforce identity pool 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.
- Saat menggunakan SCIM, Anda memetakan atribut di penyedia workforce identity pool dan tenant SCIM. Atribut
google.subjectharus secara unik merujuk ke identitas yang sama. Anda menentukangoogle.subjectdi penyedia workforce identity pool 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 pengguna atau grup lain, tetapi mencabut akses dari satu identitas mungkin tidak menghapusnya dari semua identitas. - Untuk menggunakan SCIM guna memetakan grup, tetapkan
--scim-usage=enabled-for-groupsdi penyedia workforce identity pool yang memiliki tenant SCIM terlampir. Saat Anda memetakan grup menggunakan SCIM, pemetaan grup apa pun yang ditentukan di penyedia tersebut akan diabaikan dan diganti dengan grup yang dikelola SCIM. Saat merujuk ke grup yang dikelola SCIM, atribut yang dipetakan adalahgoogle.group, bukangoogle.groups.google.groupshanya merujuk ke grup yang dipetakan token. Jika Anda mengaktifkan penggunaan SCIM di penyedia yang tidak memiliki tenant SCIM terlampir, upaya login melalui penyedia tersebut akan gagal saat runtime karena Google Cloud tidak dapat menemukan tenant SCIM di jalur 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 error409 ConflictHTTP. Jika atribut yang dipetakan dievaluasi ke null atau kosong, penyediaan akan gagal dengan error400 Bad RequestHTTP. - Saat menggunakan SCIM, atribut berbasis token yang dipetakan dengan
--attribute-mappingmasih dapat digunakan untuk autentikasi dan dalam ID utama. - Untuk konfigurasi Microsoft Entra ID, gunakan SCIM untuk mengaktifkan nama grup yang mudah dibaca di Gemini Enterprise.
- Batas token SCIM: Setiap tenant SCIM mendukung maksimum dua token SCIM (misalnya, untuk mendukung rotasi token tanpa waktu nonaktif). Jika Anda sudah memiliki dua token dan perlu membuat token baru, Anda harus menghapus token yang ada sebelum membuat token baru.
- SCIM API (
iamscim.googleapis.com) tunduk pada kuota kecepatan 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.
Memetakan penyedia OIDC dan SAML ke konfigurasi SCIM
Harus ada konsistensi antara pemetaan atribut dalam konfigurasi penyedia workforce identity pool (--attribute-mapping) dan pemetaan klaim di tenant SCIM (--claim-mapping). Atribut IdP yang mendasarinya yang digunakan untuk mengisi google.subject (untuk pengguna) harus sama, baik dibaca dari klaim token maupun atribut SCIM.
Karena --claim-mapping tidak dapat diubah setelah tenant SCIM dibuat, jika Anda perlu memperbarui pemetaan klaim (misalnya, untuk menambahkan transformasi .lowerAscii()), Anda harus menghapus tenant SCIM secara permanen dan membuatnya ulang dengan pemetaan baru.
Jika pemetaan ini tidak konsisten, pengguna mungkin dapat login, tetapi tidak akan dikenali sebagai anggota grup yang disediakan SCIM. Misalnya, jika penyedia menggunakan assertion.email untuk google.subject, tenant SCIM juga harus menggunakan atribut SCIM yang setara (misalnya, user.emails[0].value) untuk google.subject.
Tabel berikut menunjukkan pemetaan antara atribut klaim token dan atribut SCIM:
| Atribut Google | Pemetaan penyedia workforce identity pool | Pemetaan tenant SCIM (SCIM) |
|---|---|---|
google.subject |
assertion.oid (EntraId) |
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() |
google.group |
T/A (Dipetakan menggunakan SCIM) | group.externalId |
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 Workforce Identity Federation 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 resource yang cocok sebenarnya. KolomtotalResultsdalam respons selalu sama dengan jumlah item yang ditampilkan dalam respons tersebut, dengan maksimum 100.
Mendapatkan Grup dan mencantumkan Grup tanpa filter:
GetGroupdanListGroupsAPI menampilkan daftar anggota kosong. Untuk mengambil anggota untuk grup tertentu, gunakanListGroupsAPI dengan filter anggota.Respons JSON yang tidak sesuai dengan token tidak valid: API yang berisi token API tidak valid akan menghasilkan
401 HTTP errordari Google Cloud. Responsnya bukan struktur JSON seperti yang diperlukan oleh spesifikasi.
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 Anda perlu mengubah nilai ini, Anda harus menghapus pengguna atau grup secara permanen dari IdP, lalu membuatnya ulang dengan nilai baru.ID unik dan tidak kosong: Google Cloud menerapkan keunikan pada nilai yang dipetakan ke
google.subjectdangoogle.groupdi tenant SCIM. Sinkronisasi atribut yang dipetakan yang menghasilkan nilai duplikat untukgoogle.subjectataugoogle.groupakan gagal dengan error409 ConflictHTTP. Atribut yang dipetakan yang dievaluasi ke null atau kosong akan gagal dengan error400 Bad RequestHTTP.Persyaratan satu email: Agar sinkronisasi SCIM berhasil, setiap pengguna harus memiliki tepat satu alamat email berjenis
work. Penyediaan atau pembaruan akan gagal jika IdP Anda mengirimkan 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 menjelaskan dukungan untuk atribut pengguna:
| Atribut | Sub-atribut | Didukung | Batasan |
|---|---|---|---|
userName |
T/A | Ya | T/A |
name |
formatted, familyName, givenName, middleName, honorificPrefix, honorificSuffix |
Ya | T/A |
displayName |
T/A | Ya | T/A |
nickName |
T/A | Ya | T/A |
profileUrl |
T/A | Ya | T/A |
title |
T/A | Ya | T/A |
userType |
T/A | Ya | T/A |
preferredLanguage |
T/A | Ya | T/A |
locale |
T/A | Ya | T/A |
timezone |
T/A | Ya | T/A |
active |
T/A | Ya | T/A |
password |
T/A | Tidak | T/A |
emails |
display, type, value, primary |
Ya | Hanya jenis email work yang didukung. |
phoneNumbers |
display, type, value, primary |
Ya | T/A |
ims |
display, type, value |
Ya | T/A |
photos |
display, type, value |
Ya | T/A |
addresses |
formatted, streetAddress, locality, region, postalCode, country |
Ya | T/A |
groups |
T/A | Tidak | T/A |
entitlements |
display, type, value |
Ya | T/A |
roles |
type, value |
Ya | display tidak didukung. |
x509Certificates |
type, value |
Ya | display tidak didukung. |
Atribut grup
Tabel berikut menjelaskan dukungan untuk atribut grup:
| Atribut | Sub-atribut yang didukung |
|---|---|
displayName |
T/A |
externalId |
T/A |
members |
value, type, $ref, display |
Atribut ekstensi skema pengguna perusahaan
Tabel berikut menjelaskan dukungan untuk ekstensi skema pengguna perusahaan:
| Atribut | Sub-atribut yang didukung |
|---|---|
employeeNumber |
T/A |
costCenter |
T/A |
organization |
T/A |
division |
T/A |
department |
T/A |
manager |
value, $ref, displayName |
Langkah berikutnya
- Mengonfigurasi dukungan SCIM untuk Workforce Identity Federation
- Memecahkan masalah penyediaan SCIM
- Logging audit IAM SCIM