Secara default, Google Cloud Search hanya mengenali identitas Google yang disimpan di Google Cloud Directory (pengguna dan grup). Konektor identitas digunakan untuk menyinkronkan identitas perusahaan Anda dengan identitas Google yang digunakan oleh Google Cloud Search.
Google menyediakan opsi berikut untuk mengembangkan konektor identitas:
Identity Connector SDK. Opsi ini ditujukan untuk developer yang melakukan pemrograman dalam bahasa pemrograman Java. Identity Connector SDK adalah wrapper di sekitar REST API yang dapat Anda gunakan untuk membuat konektor dengan cepat. Untuk membuat konektor identitas menggunakan SDK, lihat bagian Membuat konektor identitas menggunakan Identity Connector SDK.
REST API dan library API tingkat rendah. Opsi ini untuk developer yang mungkin tidak membuat program di Java atau yang memiliki codebase yang lebih mengakomodasi REST API atau library. Untuk membuat konektor identitas menggunakan REST API, lihat dapat Directory API: Akun Pengguna untuk informasi tentang pemetaan pengguna dan Dokumentasi Cloud Identity untuk informasi tentang pemetaan grup.
Membuat konektor identitas menggunakan Identity Connector SDK
Konektor identitas standar melakukan tugas-tugas berikut:
- Mengonfigurasi konektor.
- Mengambil semua pengguna dari sistem identitas perusahaan Anda dan mengirimkannya ke Google untuk disinkronkan dengan identitas Google.
- Mengambil semua grup dari sistem identitas perusahaan Anda dan mengirimkannya ke Google untuk disinkronkan dengan identitas Google.
Menyiapkan dependensi
Anda harus menyertakan dependensi tertentu dalam file build Anda untuk menggunakan SDK. Klik tab di bawah ini untuk melihat dependensi lingkungan 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'
Buat konfigurasi konektor Anda
Setiap konektor memiliki file konfigurasi yang berisi parameter yang digunakan oleh konektor, seperti ID untuk repositori Anda. Parameter didefinisikan sebagai
pasangan nilai kunci, seperti
api.sourceId=1234567890abcdef
.
Google Cloud Search SDK berisi beberapa parameter konfigurasi yang disediakan Google yang digunakan oleh semua konektor. Anda harus mendeklarasikan parameter yang disediakan Google berikut ini dalam file konfigurasi Anda:
- Untuk konektor konten, Anda harus mendeklarasikan
api.sourceId
danapi.serviceAccountPrivateKeyFile
sebagai parameter ini mengidentifikasi lokasi repositori dan kunci pribadi Anda yang diperlukan untuk mengakses repositori.
- Untuk konektor identitas, Anda harus mendeklarasikan
api.identitySourceId
sebagai ini mengidentifikasi lokasi sumber identitas eksternal Anda. Jika Anda menyinkronkan pengguna, Anda juga harus mendeklarasikanapi.customerId
sebagai ID unik untuk ke akun Google Workspace perusahaan Anda.
Kecuali jika Anda ingin mengganti nilai default parameter lain yang disediakan Google, Anda tidak perlu mendeklarasikannya dalam file konfigurasi Anda. Untuk informasi tambahan tentang parameter konfigurasi yang disediakan Google, seperti cara membuat ID dan kunci tertentu, lihat Parameter konfigurasi yang disediakan Google.
Anda juga dapat menentukan parameter spesifik repositori Anda sendiri untuk digunakan dalam file konfigurasi Anda.
Teruskan file konfigurasi ke konektor
Setel properti sistem config
untuk meneruskan file konfigurasi ke
konektor 20%. Anda dapat menetapkan properti menggunakan argumen -D
saat memulai
ke konektor. Misalnya, perintah berikut memulai konektor
dengan file konfigurasi MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Jika argumen ini tidak ada, SDK akan mencoba mengakses konfigurasi default
file bernama connector-config.properties
.
Membuat konektor identitas sinkronisasi lengkap menggunakan class template
Identity Connector SDK berisi class template FullSyncIdentityConnector
dapat Anda gunakan untuk menyinkronkan semua pengguna dan grup dari
repositori dengan identitas Google. Bagian ini menjelaskan cara menggunakan
Template FullSyncIdentityConnector
untuk melakukan sinkronisasi penuh pengguna dan grup dari identitas non-Google
repositori resource.
Bagian dokumen ini mengacu ke cuplikan kode dari
IdentityConnecorSample.java
contoh. Sampel ini membaca identitas pengguna dan grup dari dua file CSV dan menyinkronkannya dengan identitas Google.
Menerapkan titik entri konektor
Titik entri ke konektor adalah
Metode main()
. Tugas utama metode ini adalah membuat instance
Application
dan memanggil
start()
untuk menjalankan konektor.
Sebelum menelepon
application.start()
,
gunakan
IdentityApplication.Builder
untuk membuat instance
template FullSyncIdentityConnector
. FullSyncIdentityConnector
menerima
Repository
yang metodenya akan Anda implementasikan.
Cuplikan kode berikut menunjukkan cara menerapkan metode main()
:
Di balik layar, SDK memanggil
initConfig()
setelah metode main()
konektor Anda memanggil
Application.build
.
Metode initConfig()
akan melakukan tugas-tugas berikut:
- Memanggil
Configuation.isInitialized()
untuk memastikan bahwaConfiguration
belum diinisialisasi. - Melakukan inisialisasi objek
Configuration
dengan nilai kunci yang disediakan Google pasangan. Setiap pasangan nilai kunci disimpan dalamConfigValue
dalam objekConfiguration
.
Menerapkan antarmuka Repository
Satu-satunya tujuan objek Repository
adalah untuk menjalankan
menyinkronkan identitas repositori
ke identitas Google. Saat menggunakan
template, Anda hanya perlu mengganti metode tertentu dalam
Antarmuka Repository
untuk membuat konektor identitas. Untuk
FullTraversalConnector
, Anda kemungkinan akan mengganti metode berikut:
Tujuan
init()
. Untuk melakukan penyiapan dan inisialisasi repositori identitas, ganti dengan metode `init().Tujuan
listUsers()
. Untuk menyinkronkan semua pengguna di repositori identitas dengan pengguna Google, ganti metodelistUsers()
.Tujuan
listGroups()
. Untuk menyinkronkan semua grup di repositori identitas dengan Google Grup, mengganti metodelistGroups()
.(opsional)
close()
. Jika Anda perlu melakukan pembersihan repositori, ganticlose()
. Metode ini dipanggil sekali selama penutupan konektor.
Mendapatkan parameter konfigurasi khusus
Sebagai bagian dari penanganan konfigurasi konektor, Anda harus mendapatkan
parameter kustom dari
Configuration
. Tugas ini biasanya dilakukan di
Repository
kelas
init()
.
Class Configuration
memiliki beberapa metode untuk mendapatkan berbagai jenis data
dari suatu konfigurasi. Setiap metode menampilkan sebuah
ConfigValue
. Anda kemudian akan menggunakan objek ConfigValue
get()
untuk mengambil nilai aktual.
Cuplikan berikut menunjukkan cara mengambil userMappingCsvPath
dan
Nilai groupMappingCsvPath
dari objek Configuration
:
Untuk mendapatkan dan mengurai parameter yang berisi beberapa nilai, gunakan salah satu metode
Parser jenis class Configuration
untuk mengurai data menjadi potongan terpisah.
Cuplikan berikut, dari konektor tutorial, menggunakan
getMultiValue
untuk mendapatkan daftar nama repositori GitHub:
Mendapatkan pemetaan untuk semua pengguna
Ganti
listUsers()
untuk mengambil pemetaan bagi semua
pengguna dari repositori identitas Anda. Tujuan
Metode listUsers()
menerima checkpoint yang mewakili identitas terakhir untuk
disinkronkan. Checkpoint tersebut dapat digunakan untuk melanjutkan sinkronisasi jika prosesnya terganggu. Untuk setiap pengguna di repositori, Anda akan melakukan langkah-langkah berikut
metode listUsers()
:
- Dapatkan pemetaan yang terdiri dari identitas Google dan identitas eksternal terkait.
- Kemas pasangan ke dalam iterator yang ditampilkan oleh metode
listUsers()
.
Mendapatkan pemetaan pengguna
Cuplikan kode berikut menunjukkan cara mengambil pemetaan identitas yang disimpan dalam file CSV:
Menggabungkan pemetaan pengguna menjadi iterator
listUsers()
menampilkan Iterator
, khususnya metode
CheckpointCloseableIterable
,
pengguna
IdentityUser
objek terstruktur dalam jumlah besar. Anda dapat menggunakan
CheckpointClosableIterableImpl.Builder
untuk membangun dan mengembalikan iterator. Cuplikan kode berikut menunjukkan cara menggabungkan setiap pemetaan ke dalam daftar build asal iterator tersebut:
Mendapatkan grup
Ganti
listGroups()
untuk mengambil semua grup dan anggotanya dari identitas Anda
repositori resource. Metode listGroups()
menerima checkpoint yang mewakili
yang akan disinkronkan. Checkpoint tersebut dapat digunakan untuk melanjutkan sinkronisasi jika prosesnya terganggu. Untuk setiap pengguna di repositori Anda, Anda akan melakukan
langkah-langkah dalam metode listGroups()
:
- Mendapatkan grup dan anggotanya.
- Kemas setiap grup dan anggota ke dalam iterator yang dikembalikan oleh
Metode
listGroups()
.
Mendapatkan identitas grup
Cuplikan kode berikut menunjukkan cara mengambil grup dan anggota yang disimpan dalam file CSV:
Menggabungkan grup dan anggota ke dalam iterator
listGroups()
menampilkan Iterator
, khususnya metode
CheckpointCloseableIterable
,
pengguna
IdentityGroup
objek terstruktur dalam jumlah besar.
Anda dapat menggunakan
CheckpointClosableIterableImpl.Builder
untuk membangun dan mengembalikan iterator. Cuplikan kode berikut menunjukkan cara menggabungkan setiap grup dan anggotanya ke dalam sebuah daftar dan membuat iterator dari daftar tersebut:
Langkah Berikutnya
Berikut beberapa langkah yang dapat Anda ambil:
- (opsional) Terapkan metode close() untuk melepaskan resource sebelum penghentian.
- (opsional) Buat konektor konten menggunakan Content Connector SDK.