Secara default, Google Cloud Search hanya mengenali identitas Google di Google Cloud Directory. Gunakan konektor identitas untuk menyinkronkan identitas perusahaan ke identitas Google yang digunakan Cloud Search.
Google menyediakan opsi berikut untuk mengembangkan konektor identitas:
Identity Connector SDK: Terbaik untuk programmer Java. SDK adalah wrapper di sekitar REST API yang memungkinkan Anda membuat konektor dengan cepat. Untuk menggunakan SDK, lihat Membuat konektor identitas menggunakan Identity Connector SDK.
REST API dan library API tingkat rendah: Terbaik untuk programmer non-Java. Untuk membuat konektor identitas menggunakan REST API, lihat API Direktori: Akun Pengguna untuk memetakan pengguna dan dokumentasi Google Cloud Identity untuk memetakan grup.
Membuat konektor identitas menggunakan Identity Connector SDK
Konektor identitas umum melakukan tugas berikut:
- Mengonfigurasi konektor.
- Mengambil pengguna dari sistem identitas Anda dan mengirimkannya ke Google.
- Mengambil grup dari sistem identitas Anda dan mengirimkannya ke Google.
Menyiapkan dependensi
Sertakan dependensi ini dalam file build Anda.
Maven
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-identity-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Gradle
compile group: 'com.google.enterprise.cloudsearch',
name: 'google-cloudsearch-identity-connector-sdk',
version: 'v1-0.0.3'
Membuat konfigurasi konektor Anda
Setiap konektor menggunakan file konfigurasi untuk parameter seperti ID repositori Anda.
Tentukan parameter sebagai kunci-nilai pasangan, seperti
api.sourceId=1234567890abcdef.
Google Cloud Search SDK menyertakan parameter yang disediakan Google untuk semua konektor. Anda harus mendeklarasikan hal berikut dalam file konfigurasi Anda:
- Konektor konten: Deklarasikan
api.sourceIddanapi.serviceAccountPrivateKeyFile. Parameter ini mengidentifikasi repositori Anda dan kunci pribadi yang diperlukan untuk akses.
- Konektor identitas: Deklarasikan
api.identitySourceIduntuk mengidentifikasi sumber identitas eksternal Anda. Untuk sinkronisasi pengguna, deklarasikan jugaapi.customerId(ID unik untuk akun Google Workspace Anda).
Deklarasikan parameter lain yang disediakan Google hanya untuk mengganti nilai defaultnya. Untuk mengetahui detail tentang cara membuat ID dan kunci, lihat Parameter yang disediakan Google.
Anda juga dapat menentukan parameter khusus repositori dalam file konfigurasi Anda.
Meneruskan file konfigurasi ke konektor
Tetapkan properti sistem config untuk meneruskan file konfigurasi. Gunakan argumen -D saat memulai konektor. Contoh:
java -classpath myconnector.jar -Dconfig=MyConfig.properties MyConnector
Jika Anda menghapus argumen ini, SDK akan mencoba menggunakan file bernama connector-config.properties di direktori lokal.
Membuat konektor identitas sinkronisasi lengkap menggunakan class template
SDK menyertakan template FullSyncIdentityConnector untuk menyinkronkan semua pengguna dan grup dari repositori Anda. Bagian ini menjelaskan cara menggunakannya.
Bagian ini merujuk ke kode dari sampel IdentityConnectorSample.java, yang membaca identitas dari file CSV.
Mengimplementasikan titik entri konektor
Titik entri adalah metode main(). Titik entri membuat instance
Application
dan memanggil
start()
untuk menjalankan konektor.
Sebelum memanggil application.start(), gunakan
IdentityApplication.Builder
untuk membuat instance template FullSyncIdentityConnector.
SDK memanggil initConfig() setelah metode main() Anda memanggil Application.build(). Metode initConfig():
- Memastikan
Configurationbelum diinisialisasi. - Menginisialisasi objek
Configurationdengan pasangan kunci-nilai yang disediakan Google.
Mengimplementasikan antarmuka Repository
Objek Repository menyinkronkan identitas repositori ke identitas Google. Saat menggunakan template, Anda hanya perlu mengganti metode tertentu. Untuk FullSyncIdentityConnector, ganti metode ini:
init(): Untuk penyiapan dan inisialisasi.listUsers(): Untuk menyinkronkan semua pengguna.listGroups(): Untuk menyinkronkan semua grup.- (Opsional)
close(): Untuk pembersihan selama penonaktifan.
Mendapatkan parameter konfigurasi khusus
Ambil parameter kustom dari objek Configuration, biasanya dalam metode init(). Cuplikan berikut menunjukkan cara mengambil jalur CSV:
Untuk mendapatkan dan menguraikan parameter yang berisi beberapa nilai, gunakan salah satu jenis parser class Configuration untuk mengurai data menjadi potongan terpisah.
Cuplikan berikut, dari konektor tutorial, menggunakan
getMultiValue
metode untuk mendapatkan daftar nama repositori GitHub:
Mendapatkan pemetaan untuk semua pengguna
Ganti listUsers() untuk mengambil pemetaan pengguna. Metode ini menerima checkpoint untuk melanjutkan sinkronisasi jika terganggu. Untuk setiap pengguna:
- Dapatkan pemetaan antara identitas Google dan identitas eksternal.
- Gabungkan pasangan ke dalam iterator yang ditampilkan oleh
listUsers().
Mendapatkan pemetaan pengguna
Cuplikan ini menunjukkan cara mengambil pemetaan identitas dari file CSV:
Menggabungkan pemetaan pengguna menjadi iterator
Metode listUsers() menampilkan
CheckpointCloseableIterable
dari
IdentityUser
objek.
Mendapatkan grup
Ganti listGroups() untuk mengambil grup dan anggotanya. Metode ini menerima checkpoint. Untuk setiap grup:
- Dapatkan grup dan anggotanya.
- Gabungkan ke dalam iterator yang ditampilkan oleh
listGroups().
Mendapatkan identitas grup
Cuplikan ini menunjukkan cara mengambil grup dan anggota dari file CSV:
Menggabungkan grup dan anggota ke dalam iterator
Metode listGroups() menampilkan CheckpointCloseableIterable dari
IdentityGroup
objek.
Langkah Berikutnya
- (Opsional) Implementasikan
close()untuk melepaskan resource. - (Opsional) Buat konektor konten.