Penyediaan SCIM untuk Workforce Identity Federation

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 gambaran 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). Kemudian, IAM 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. Pengguna dapat membagikan notebook NotebookLM kepada grup menggunakan nama grup, bukan ID objek (UUID) grup. Untuk mempelajari lebih lanjut, lihat Membagikan 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. Untuk mengonfigurasi tenant SCIM baru di workforce identity pool yang sama, Anda harus menghapus tenant yang ada terlebih dahulu. Saat menghapus tenant SCIM, Anda memiliki dua opsi:
    • 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-delete dengan perintah penghapusan. Tindakan ini tidak dapat diurungkan dan memungkinkan Anda membuat tenant SCIM baru di kumpulan identitas tenaga kerja yang sama segera setelah penghapusan selesai. Atau, Anda dapat membuat workforce identity pool baru dan tenant SCIM baru atau menggunakan workforce identity pool yang sebelumnya belum dikonfigurasi dengan tenant SCIM.
  • Saat menggunakan SCIM, Anda memetakan atribut di penyedia workload identity pool dan tenant SCIM. Atribut google.subject harus merujuk secara unik ke identitas yang sama. Anda menentukan google.subject di penyedia kumpulan identitas tenaga kerja menggunakan flag --attribute-mapping dan 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 lain, tetapi mencabut akses dari satu identitas mungkin tidak menghapusnya dari semua identitas.
  • Untuk menggunakan SCIM dalam memetakan grup, tetapkan --scim-usage=enabled-for-groups. Saat Anda memetakan grup menggunakan SCIM, pemetaan grup apa pun yang ditentukan di penyedia pool identitas tenaga kerja akan diabaikan. Saat merujuk ke grup yang dikelola SCIM, atribut yang dipetakan adalah google.group, bukan google.groups. google.groups hanya merujuk pada grup yang dipetakan token.
  • Saat menggunakan SCIM, atribut berbasis token yang dipetakan dengan --attribute-mapping masih dapat digunakan untuk autentikasi dan dalam ID pokok.
  • Untuk konfigurasi Microsoft Entra ID, Anda tidak boleh menggunakan flag --extended-attributes saat membuat penyedia workforce identity pool.

Memetakan penyedia OIDC dan SAML ke konfigurasi SCIM

Harus ada konsistensi antara pemetaan atribut dalam konfigurasi penyedia kumpulan identitas tenaga kerja (--attribute-mapping) dan pemetaan klaim di tenant SCIM (--claim-mapping). Atribut IdP pokok yang digunakan untuk mengisi google.subject (untuk pengguna) harus sama, baik dibaca dari klaim token maupun atribut SCIM.

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 memberikan contoh referensi untuk memetakan klaim token IdP umum ke atribut SCIM:

Atribut Google Pemetaan penyedia workforce identity pool (Token) Pemetaan tenant SCIM (SCIM)
google.subject assertion.oid user.externalId
google.subject assertion.email user.emails[0].value
google.subject assertion.email.lowerAscii() user.emails[0].value.lowerAscii()
google.subject assertion.preferred_username user.userName
google.subject assertion.sub Tidak kompatibel
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, dan Put.

  • /Groups: mengelola resource grup. Operasi yang didukung: Create, Get, Update, Delete, dan Patch. Metode PUT tidak 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 /Users atau /Groups, ekspresi filter hanya mendukung operator eq (sama dengan). Anda dapat menggabungkan beberapa filter eq dengan and. Operator filter SCIM lainnya, seperti co (berisi) atau sw (diawali dengan), tidak didukung.

  • Penomoran halaman: IAM SCIM API tidak mendukung penomoran halaman standar untuk mencantumkan pengguna atau grup.

    • startIndex: parameter ini selalu 1. API menampilkan hingga 100 hasil terlepas dari nilai yang Anda berikan untuk startIndex.

    • itemsPerPage: jumlah maksimum resource yang ditampilkan dalam satu respons adalah 100.

    • totalResults: API tidak menampilkan jumlah total sebenarnya dari resource yang cocok. Kolom totalResults dalam respons selalu sama dengan jumlah item yang ditampilkan dalam respons tersebut, dengan maksimum 100.

Batasan perilaku SCIM

  • ID yang tidak dapat diubah: Nilai atribut SCIM yang dipetakan ke google.subject atau google.group diperlakukan 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.

  • Persyaratan email tunggal: Agar sinkronisasi SCIM berhasil, setiap pengguna harus memiliki tepat satu alamat email berjenis work. Penyediaan atau update akan gagal jika IdP Anda mengirim beberapa email atau jika satu email yang diberikan tidak diketik sebagai work.

  • 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 untuk user.userName dan user.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 kelompok:

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