Dokumen ini menjelaskan cara mengonfigurasi tenant SCIM di workforce identity pool. Untuk mempelajari SCIM lebih lanjut, lihat Penyediaan SCIM untuk Workforce Identity Federation.
Setiap workforce identity pool hanya mendukung satu tenant SCIM. Untuk mengonfigurasi tenant SCIM baru di pool yang sudah memiliki satu tenant, Anda harus menghapus tenant yang ada secara permanen terlebih dahulu.
Tanda --claim-mapping untuk tenant SCIM hanya dapat berisi ekspresi Common Expression Language (CEL) tertentu. Untuk mempelajari ekspresi yang didukung, lihat Memetakan atribut SCIM dan token.
Untuk mengonfigurasi System for Cross-domain Identity Management (SCIM), lakukan hal berikut:
- Mengonfigurasi token dan tenant SCIM di Google Cloud
- Mengonfigurasi SCIM di Okta
- Memperbarui penyedia untuk mengaktifkan SCIM
- Memverifikasi sinkronisasi SCIM
Mengonfigurasi token dan tenant SCIM di Google Cloud
Untuk mengonfigurasi tenant SCIM di Google Cloud, lakukan hal berikut:
-
Buat tenant SCIM.
gcloud iam workforce-pools providers scim-tenants create SCIM_TENANT_ID \ --workforce-pool="WORKFORCE_POOL_ID" \ --provider="PROVIDER_ID" \ --display-name="SCIM_TENANT_DISPLAY_NAME" \ --description="SCIM_TENANT_DESCRIPTION" \ --claim-mapping="CLAIM_MAPPING" \ --location="global"Ganti kode berikut:
SCIM_TENANT_ID: ID untuk tenant SCIM Anda.WORKFORCE_POOL_ID: ID workforce pool yang Anda buat sebelumnya dalam dokumen ini.PROVIDER_ID: ID penyedia kumpulan identitas tenaga kerja yang Anda buat sebelumnya dalam dokumen ini.SCIM_TENANT_DISPLAY_NAME: nama tampilan untuk tenant SCIM Anda.SCIM_TENANT_DESCRIPTION: deskripsi untuk tenant SCIM Anda.CLAIM_MAPPING: daftar pemetaan atribut yang dipisahkan koma. Untuk daftar lengkap atribut pemetaan, lihat Memetakan atribut token dan SCIM. Pemetaan berikut direkomendasikan untuk Gemini Enterprise:google.subject=user.emails[0].value.lowerAscii(),google.group=group.displayNameAtribut
google.subjectyang Anda petakan di tenant SCIM harus secara unik merujuk ke identitas yang sama yang dipetakan di atributgoogle.subjectdi penyedia workforce identity pool dengan menggunakan tanda--attribute-mapping. Setelah tenant SCIM dibuat, Anda tidak dapat memperbarui pemetaan klaim. Untuk menggantinya, Anda dapat menghapus permanen tenant SCIM dan segera membuat tenant baru. Untuk mempelajari lebih lanjut pertimbangan penggunaan SCIM, lihat Dukungan SCIM.
-
Setelah perintah selesai, lakukan hal berikut:
-
Di kolom
baseUridalam output, simpan seluruh URI, yang diformat sebagaihttps://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID. Anda harus memberikan URI ini ke IdP Anda. -
Selain itu, dari URI, simpan hanya
SCIM_TENANT_UID. Anda memerlukan UID ini untuk menetapkan kebijakan izin IAM di tenant SCIM nanti dalam dokumen ini.
-
Di kolom
-
Buat token SCIM:
gcloud iam workforce-pools providers scim-tenants tokens create SCIM_TOKEN_ID \ --display-name DISPLAY_NAME \ --scim-tenant SCIM_TENANT_ID \ --workforce-pool WORKFORCE_POOL_ID \ --provider PROVIDER_ID \ --location globalGanti kode berikut:
SCIM_TOKEN_ID: ID untuk token SCIMDISPLAY_NAME: nama tampilan token SCIMWORKFORCE_POOL_ID: ID workforce poolSCIM_TENANT_ID: ID tenant SCIMPROVIDER_ID: ID penyedia workforce identity pool
-
Setelah perintah
gcloud iam workforce-pools providers scim-tenants tokens createselesai, lakukan hal berikut:-
Di output, simpan nilai
SCIM_TOKENdi kolomsecurityToken. Anda harus memberikan token keamanan ini ke IdP Anda. Token keamanan hanya ditampilkan dalam output ini, dan jika hilang, Anda harus membuat token SCIM baru. -
Untuk memeriksa apakah
SCIM_TOKENditolak oleh kebijakan organisasi Anda, jalankan perintah berikut:curl -v -H "Authorization: Bearer SCIM_TOKEN" https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users
Jika perintah gagal dengan error terkait izin, jalankan
gcloud organizations add-iam-policy-binding, yang dijelaskan pada langkah selanjutnya. Jika perintah berhasil, Anda dapat melewati langkah tersebut.
-
-
Tetapkan kebijakan izin IAM pada token dan tenant SCIM. Jika perintah
curlpada langkah sebelumnya gagal dengan error terkait izin, Anda harus menjalankan perintah berikut:gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=serviceAccount:SERVICE_AGENT_EMAIL \ --role roles/iam.scimSyncerGanti kode berikut:
- ORGANIZATION_ID: ID organisasi.
- SERVICE_AGENT_EMAIL: alamat email agen layanan. Alamat email menggunakan format berikut:
o-ORGANIZATION_ID-SCIM_TENANT_UID@gcp-sa-iamscim.iam.gserviceaccount.com. SCIM_TENANT_UID ditampilkan saat Anda membuat tenant SCIM.
Saat Anda menyediakan grup di IdP, pastikan nama tampilan setiap grup, sebagaimana diberikan di
kolom displayName, bersifat unik dalam tenant SCIM. Untuk mempelajari lebih lanjut grup dan
SCIM di Microsoft Entra ID, lihat
Grup.
Mengonfigurasi SCIM di Okta
Untuk mengonfigurasi SCIM di Okta, di aplikasi Okta yang ada, lakukan hal berikut:
- Login ke Konsol Admin Okta.
- Buka Applications > Applications.
Pilih atau buat aplikasi Anda:
Jika Anda ingin memilih aplikasi yang sudah ada, lakukan hal berikut:
- Klik nama aplikasi yang Anda buat menggunakan template Google Cloud Workforce Identity Federation.
-
Di tab Umum, lakukan hal berikut:
- Di panel Setelan Aplikasi, klik Edit.
- Di kolom Tenant, masukkan ID Tenant yang diperoleh dari gcloud CLI.
- Klik Done.
Jika Anda ingin membuat aplikasi baru, lakukan langkah berikut:
- Klik Browse App Catalog.
- Di kolom Search, masukkan Google Cloud Workforce Identity Federation, lalu pilih integrasi Google Cloud Workforce Identity Federation dari hasilnya.
Klik Tambahkan Integrasi.
- Di kolom Application, masukkan nama untuk aplikasi Anda.
- Di kolom Tenant, masukkan ID Tenant yang diperoleh dari gcloud CLI.
- Klik Done.
-
Di tab Penyediaan, lakukan hal berikut:
Di panel Integrasi, klik Edit.
- Di kolom API Token, masukkan token SCIM yang Anda peroleh dari Google Cloud.
- Untuk mengonfirmasi validitas token API, klik Uji Kredensial.
- Pilih Impor Grup.
- Klik Simpan.
Di panel Ke Aplikasi, klik Edit.
- Pilih Buat Pengguna, Perbarui Atribut Pengguna, dan Nonaktifkan pengguna.
- Klik Simpan.
Memperbarui penyedia untuk mengaktifkan SCIM
Untuk mengaktifkan SCIM bagi penyedia, lakukan hal berikut:
OIDC
gcloud iam workforce-pools providers update-oidc PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
Ganti kode berikut:
PROVIDER_ID: ID penyedia workforce identity poolWORKFORCE_POOL_ID: ID workforce poolLOCATION: lokasi workforce pool
SAML
gcloud iam workforce-pools providers update-saml PROVIDER_ID \
--workforce-pool=WORKFORCE_POOL_ID \
--location=LOCATION \
--scim-usage=enabled-for-groups
Ganti kode berikut:
PROVIDER_ID: ID penyedia workforce identity poolWORKFORCE_POOL_ID: ID workforce poolLOCATION: lokasi workforce pool
Untuk memverifikasi sinkronisasi SCIM, lihat Memverifikasi sinkronisasi SCIM.
Memetakan token dan atribut SCIM
Anda harus memetakan atribut secara konsisten, baik di penyedia workforce identity pool maupun di tenant SCIM yang dikonfigurasi untuk penyedia. Untuk penyedia workforce identity pool, Anda menggunakan
flag --attribute-mapping, dan untuk tenant SCIM, Anda menggunakan flag --claim-mapping. Atribut IdP yang dipetakan ke google.subject untuk pengguna harus merujuk secara unik ke identitas yang sama, baik yang ditentukan dalam pemetaan token atau SCIM. Untuk mempelajari lebih lanjut cara memetakan atribut saat Anda menggunakan SCIM, lihat bagian
Dukungan SCIM.
Tabel berikut menunjukkan cara memetakan atribut dalam klaim token dan atribut SCIM:
| Atribut Google | Pemetaan penyedia workforce identity pool | Pemetaan tenant SCIM |
|---|---|---|
google.subject |
assertion.sub |
user.externalId |
google.subject |
assertion.subject |
user.userName |
google.subject |
assertion.subject.lowerAscii() |
user.userName.lowerAscii() |
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 pastikan Anda memberi tahu penyedia Anda tentang --scim-usage=enabled-for-groups |
N/A |
group.displayName |
Memverifikasi sinkronisasi SCIM
Setelah mengonfigurasi SCIM, Anda dapat menggunakan curl untuk memverifikasi bahwa pengguna dan grup disinkronkan dengan benar ke Google Cloud. Perintah ini memerlukan token SCIM yang valid dan ID tenant SCIM Anda.
Memverifikasi sinkronisasi pengguna
Untuk memverifikasi bahwa pengguna disinkronkan dengan benar, telusuri userName pengguna menggunakan filter berikut:
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Users?filter=userName%20eq%20%22USER_NAME%22"
Contoh respons:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "USER_ID",
"userName": "USER_NAME",
...
}
]
}
Memverifikasi sinkronisasi grup
Untuk memverifikasi bahwa grup disinkronkan dengan benar, telusuri displayName grup menggunakan filter berikut:
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Groups?filter=displayName%20eq%20%22GROUP_NAME%22"
Contoh respons:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "GROUP_ID",
"displayName": "GROUP_NAME",
...
}
]
}
Memverifikasi keanggotaan grup
Untuk memverifikasi apakah pengguna tertentu adalah anggota grup, gunakan filter yang menentukan ID grup dan ID pengguna.
curl -H "Authorization: Bearer SCIM_TOKEN" \ "https://iamscim.googleapis.com/v1alpha1/tenants/SCIM_TENANT_UID/Groups?filter=id%20eq%20%22GROUP_ID%22%20and%20members%20eq%20%22USER_ID%22"
Contoh respons jika pengguna adalah pelanggan:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 1,
"Resources": [
{
"id": "GROUP_ID",
"displayName": "GROUP_NAME",
...
}
]
}
Contoh respons jika pengguna bukan pelanggan:
{
"schemas": ["urn:ietf:params:scim:api:messages:2.0:ListResponse"],
"totalResults": 0,
"Resources": []
}
Catatan: Untuk mendapatkan GROUP_ID dan USER_ID, temukan terlebih dahulu grup dan pengguna menggunakan filter displayName dan userName. ID ditampilkan di kolom id respons. Ganti SCIM_TOKEN, SCIM_TENANT_UID, USER_NAME, GROUP_NAME, GROUP_ID, dan USER_ID dengan nilai sebenarnya.
Menghapus tenant SCIM secara paksa
Untuk menghapus paksa tenant SCIM, lakukan langkah-langkah berikut:
- Jika
--scim-usage=enabled-for-groupsditetapkan untuk penyedia Anda, nonaktifkan dari konfigurasi penyedia:gcloud iam workforce-pools providers update-oidc --provider=PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --location= global --scim-usage=SCIM_USAGE_UNSPECIFIEDGanti kode berikut:
PROVIDER_ID: ID penyedia workforce identity poolWORKFORCE_POOL_ID: ID workforce pool
- Hapus tenant SCIM:
gcloud iam workforce-pools providers scim-tenants delete SCIM_TENANT_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --provider=PROVIDER_ID \ --hard-delete \ --location=globalGanti kode berikut:
SCIM_TENANT_ID: ID tenant SCIM yang akan dihapusWORKFORCE_POOL_ID: ID workforce poolPROVIDER_ID: ID penyedia workforce identity pool
Langkah berikutnya
- Menghapus pengguna Workforce Identity Federation dan datanya
- Pelajari Google Cloud produk mana yang mendukung Workforce Identity Federation
- Menyiapkan akses pengguna ke konsol (gabungan)