Kontrol akses di Google Cloud Search didasarkan pada akun Google pengguna. Saat mengindeks konten, semua ACL pada item harus menghasilkan ID pengguna Google atau grup (alamat email) yang valid.
Dalam banyak kasus, repositori tidak memiliki pengetahuan langsung tentang akun Google. Sebagai gantinya, pengguna dapat diwakili oleh akun lokal atau menggunakan login gabungan dengan penyedia identitas dan ID, selain alamat email pengguna, untuk mengidentifikasi setiap akun. ID ini disebut ID eksternal.
Dibuat menggunakan konsol Admin, Sumber identitas membantu menjembatani kesenjangan antara sistem identitas ini dengan:
- Menentukan bidang pengguna khusus untuk menyimpan ID eksternal. Kolom ini digunakan untuk menghasilkan ID eksternal ke akun Google.
- Menetapkan namespace untuk grup keamanan yang dikelola oleh repositori atau penyedia identitas.
Gunakan sumber identitas saat:
- Repositori tidak memiliki pengetahuan tentang alamat email utama pengguna di Google Workspace atau Google Cloud Directory.
- Repositori menentukan grup untuk kontrol akses yang tidak sesuai dengan grup berbasis email di Google Workspace.
Sumber identitas meningkatkan efisiensi pengindeksan dengan memisahkan pengindeksan dari pemetaan identitas. Pemisahan ini memungkinkan Anda untuk menunda mencari pengguna saat membuat ACL dan mengindeks item.
Contoh penerapan
Gambar 1 menunjukkan contoh penerapan di mana repositori dan cloud lokal digunakan oleh suatu perusahaan. Setiap repositori menggunakan berbagai jenis ID eksternal untuk merujuk ke pengguna.
Repositori 1 mengidentifikasi pengguna menggunakan alamat email yang dinyatakan menggunakan SAML. Karena repositori 1 memiliki pengetahuan tentang alamat email utama pengguna di Google Workspace atau Cloud Directory, sumber identitas tidak diperlukan.
Repositori 2 terintegrasi langsung dengan direktori lokal dan
mengidentifikasi pengguna dengan atribut sAMAccountName
mereka. Karena repositori 2 menggunakan atribut sAMAccountName
sebagai ID eksternal, diperlukan sumber identitas.
Membuat sumber identitas
Jika Anda memerlukan sumber identitas, lihat Memetakan identitas pengguna di Cloud Search.
Anda harus membuat sumber identitas sebelum membuat konektor konten karena Anda akan memerlukan ID sumber identitas tersebut untuk membuat ACL dan indeks data. Seperti yang disebutkan sebelumnya, membuat sumber identitas juga menciptakan properti pengguna khusus di Cloud Directory. Gunakan properti ini untuk mencatat ID eksternal untuk setiap pengguna di repositori Anda. Properti ini dinamai menggunakan konvensi IDENTITY_SOURCE_ID_identity
.
Tabel berikut menunjukkan dua sumber identitas, satu untuk menampung nama akun SAM (sAMAccountName) sebagai ID eksternal dan satu untuk menampung ID pengguna (uid) sebagai ID eksternal.
Sumber identitas | properti pengguna | ID Eksternal |
---|---|---|
id1 | id1_identity | sAMAccountName |
id2 | id2_identity | uid |
Buat sumber identitas untuk setiap kemungkinan ID eksternal yang digunakan untuk merujuk ke pengguna di perusahaan Anda.
Tabel berikut menunjukkan bagaimana pengguna dengan akun Google dan dua ID eksternal (id1_identity dan id2_identity) dan nilainya muncul di Cloud Directory:
pengguna | id1_identity | id2_identity | |
---|---|---|---|
Ann | ann@example.com | example\ann | 1001 |
Anda dapat mereferensikan pengguna yang sama menggunakan tiga ID yang berbeda, (Google email, sAMAccountName, dan uid) saat membentuk ACL untuk pengindeksan.
Menulis pengguna ACL
Gunakan metode getUserPrincpal() atau metode getGroupPrincipal() untuk membuat akun utama menggunakan ID eksternal yang disediakan.
Contoh berikut menunjukkan cara mengambil izin file. Izin ini termasuk nama setiap pengguna yang memiliki akses ke file.
Cuplikan kode berikut menunjukkan cara membuat akun utama yang merupakan pemilik, menggunakan ID eksternal (externalUserName
) yang disimpan dalam atribut.
Akhirnya, cuplikan kode berikut ini menunjukkan cara membuat akun utama yang merupakan pembaca file.
Setelah Anda memiliki daftar pembaca dan pemilik, Anda dapat membuat ACL:
REST API yang mendasarinya menggunakan pola
identitysources/IDENTITY_SOURCE_ID/users/EXTERNAL_ID
untuk ID saat membuat akun utama. Mengacu kembali ke tabel sebelumnya, jika Anda membuat ACL dengan id1_identity
(SAMAccountName) milik Ann, ID tersebut akan menghasilkan:
identitysources/id1_identity/users/example/ann
Seluruh ID ini disebut ID pengguna intermediate karena memberikan jembatan antara ID eksternal dan ID Google yang disimpan dengan Cloud Directory.
Untuk informasi lebih lanjut tentang pemodelan ACL yang digunakan untuk repositori, lihat ACL.
Grup peta
Sumber identitas juga berfungsi sebagai namespace untuk grup yang digunakan dalam ACL. Anda dapat menggunakan fitur namespace ini untuk membuat dan memetakan grup yang digunakan hanya untuk tujuan keamanan atau bersifat lokal untuk repositori.
Gunakan Cloud Identity Groups API untuk membuat grup dan mengelola keanggotaan. Untuk mengaitkan grup dengan sumber identitas, gunakan nama resource sumber identitas sebagai namespace grup.
Cuplikan kode berikut ini menunjukkan cara membuat grup menggunakan Cloud Identity Groups API:
Membuat ACL grup
Untuk membuat ACL grup, gunakan metode getGroupPrincipal() untuk membuat grup utama menggunakan ID eksternal yang disediakan. Kemudian, build ACL menggunakan class Acl.Builder sebagai berikut:
Konektor identitas
Meskipun Anda dapat menggunakan ID non-Google eksternal untuk membuat ACL dan mengindeks item, pengguna tidak dapat melihat item dalam penelusuran sampai ID eksternal mereka menghasilkan ID Google di Cloud Directory. Ada tiga cara untuk memastikan bahwa Cloud Directory mengetahui ID Google dan ID eksternal untuk pengguna:
- Perbarui secara manual setiap profil pengguna individu melalui konsol Admin. Proses ini hanya disarankan untuk pengujian dan pembuatan prototipe menggunakan beberapa profil pengguna.
- Petakan ID eksternal ke ID Google menggunakan Direktori API. Proses ini disarankan bagi pengguna yang tidak dapat menggunakan SDK Konektor Identitas.
- Buat konektor identitas menggunakan Identity Connector SDK. SDK ini menyederhanakan penggunaan Directory API untuk memetakan ID.
Konektor identitas adalah program yang digunakan untuk memetakan ID eksternal dari identitas perusahaan (pengguna dan grup) ke identitas internal Google yang digunakan oleh Google Cloud Search. Jika Anda harus membuat sumber identitas, Anda harus membuat konektor identitas.
Google Cloud Directory Sync (GCDS) adalah contoh konektor identitas. Konektor identitas ini memetakan informasi pengguna dan grup dari Active Directory Microsoft ke Cloud Directory bersama dengan atribut pengguna yang dapat mewakili identitas mereka di sistem lain.
Sinkronkan identitas menggunakan REST API
Gunakan metode update
untuk menyinkronkan identitas menggunakan REST API.
Memetakan ulang identitas
Setelah memetakan ulang identitas item ke identitas lain, Anda harus mengindeks ulang item agar identitas baru dapat diterapkan. Misalnya,
- jika Anda mencoba menghapus pemetaan dari pengguna atau memetakan ulang ke pengguna lain, pemetaan asli masih dipertahankan hingga Anda membuat indeks ulang.
- Jika Anda menghapus grup yang dipetakan yang ada di ACL item, lalu membuat
grup baru dengan
groupKey
yang sama, grup baru tidak akan memberikan akses ke item hingga item tersebut diindeks ulang.