โดยค่าเริ่มต้น Google Cloud Search จะรู้จักเฉพาะข้อมูลประจำตัว Google ใน Google Cloud Directory ให้ใช้ เครื่องมือเชื่อมต่อข้อมูลประจำตัวเพื่อซิงค์ข้อมูลประจำตัวขององค์กรกับข้อมูลประจำตัว Google ที่ Cloud Search ใช้
Google มีตัวเลือกต่อไปนี้สำหรับการพัฒนาเครื่องมือเชื่อมต่อข้อมูลประจำตัว
Identity Connector SDK: เหมาะที่สุดสำหรับโปรแกรมเมอร์ Java SDK เป็น Wrapper ของ REST API ที่ช่วยให้คุณสร้างเครื่องมือเชื่อมต่อได้อย่างรวดเร็ว หากต้องการใช้ SDK โปรดดู สร้างเครื่องมือเชื่อมต่อข้อมูลประจำตัวโดยใช้ Identity Connector SDK
REST API และไลบรารี API ระดับต่ำ: เหมาะที่สุดสำหรับโปรแกรมเมอร์ที่ไม่ใช่ Java หากต้องการสร้างเครื่องมือเชื่อมต่อข้อมูลประจำตัวโดยใช้ REST API โปรดดู Directory API: User Accounts สำหรับการแมปผู้ใช้ และ เอกสารประกอบ Google Cloud Identity สำหรับการแมปกลุ่ม
สร้างเครื่องมือเชื่อมต่อข้อมูลประจำตัวโดยใช้ Identity Connector SDK
เครื่องมือเชื่อมต่อข้อมูลประจำตัวทั่วไปจะทำงานต่อไปนี้
- กำหนดค่าเครื่องมือเชื่อมต่อ
- ดึงข้อมูลผู้ใช้จากระบบข้อมูลประจำตัวและส่งไปยัง Google
- ดึงข้อมูลกลุ่มจากระบบข้อมูลประจำตัวและส่งไปยัง Google
ตั้งค่าการขึ้นต่อกัน
รวมการขึ้นต่อกันต่อไปนี้ในไฟล์บิลด์
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'
สร้างการกำหนดค่าเครื่องมือเชื่อมต่อ
เครื่องมือเชื่อมต่อทุกรายการใช้ไฟล์การกำหนดค่าสำหรับพารามิเตอร์ต่างๆ เช่น รหัสที่เก็บ
กำหนดพารามิเตอร์เป็นคู่ คีย์-ค่า เช่น
api.sourceId=1234567890abcdef
Google Cloud Search SDK มีพารามิเตอร์ที่ Google จัดหาให้สำหรับเครื่องมือเชื่อมต่อทั้งหมด คุณต้องประกาศพารามิเตอร์ต่อไปนี้ในไฟล์การกำหนดค่า
- เครื่องมือเชื่อมต่อเนื้อหา: ประกาศ
api.sourceIdและapi.serviceAccountPrivateKeyFileพารามิเตอร์เหล่านี้จะระบุที่เก็บและคีย์ส่วนตัวที่จำเป็นสำหรับการเข้าถึง
- เครื่องมือเชื่อมต่อข้อมูลประจำตัว: ประกาศ
api.identitySourceIdเพื่อระบุ แหล่งที่มาของข้อมูลประจำตัวภายนอก สำหรับการซิงค์ผู้ใช้ ให้ประกาศapi.customerId(รหัสที่ไม่ซ้ำกันสำหรับบัญชี Google Workspace) ด้วย
ประกาศพารามิเตอร์อื่นๆ ที่ Google จัดหาให้ก็ต่อเมื่อต้องการลบล้างค่าเริ่มต้นของพารามิเตอร์เหล่านั้น ดูรายละเอียดเกี่ยวกับการสร้างรหัสและคีย์ได้ที่ พารามิเตอร์ที่ Google จัดหาให้
นอกจากนี้ คุณยังกำหนดพารามิเตอร์เฉพาะที่เก็บในไฟล์การกำหนดค่าได้ด้วย
ส่งไฟล์การกำหนดค่าไปยังเครื่องมือเชื่อมต่อ
ตั้งค่าพร็อพเพอร์ตี้ระบบ config เพื่อส่งไฟล์การกำหนดค่า ใช้อาร์กิวเมนต์ -D เมื่อเริ่มต้นเครื่องมือเชื่อมต่อ เช่น
java -classpath myconnector.jar -Dconfig=MyConfig.properties MyConnector
หากไม่ระบุอาร์กิวเมนต์นี้ SDK จะพยายามใช้ไฟล์ชื่อ connector-config.properties ในไดเรกทอรีภายใน
สร้างเครื่องมือเชื่อมต่อข้อมูลประจำตัวแบบซิงค์เต็มโดยใช้คลาสเทมเพลต
SDK มีเทมเพลต FullSyncIdentityConnector สำหรับซิงค์ผู้ใช้และกลุ่มทั้งหมดจากที่เก็บ ส่วนนี้จะอธิบายวิธีใช้เทมเพลตดังกล่าว
ส่วนนี้อ้างอิงถึงโค้ดจากตัวอย่าง IdentityConnectorSample.java ซึ่งอ่านข้อมูลประจำตัวจากไฟล์ CSV
ใช้จุดเข้าใช้งานเครื่องมือเชื่อมต่อ
จุดเข้าใช้งานคือเมธอด main() โดยจะสร้างอินสแตนซ์
Application
และเรียก
start()
เพื่อเรียกใช้เครื่องมือเชื่อมต่อ
ก่อนที่จะเรียก application.start() ให้ใช้
IdentityApplication.Builder
เพื่อสร้างอินสแตนซ์เทมเพลต FullSyncIdentityConnector
SDK จะเรียก initConfig() หลังจากเมธอด main() เรียก Application.build() เมธอด initConfig() จะทำดังนี้
- ตรวจสอบว่า
Configurationได้เริ่มต้นแล้ว - เริ่มต้นออบเจ็กต์
Configurationด้วยคู่คีย์-ค่าที่ Google จัดหาให้
ใช้อินเทอร์เฟซที่เก็บ
ออบเจ็กต์ Repository จะซิงค์ข้อมูลประจำตัวที่เก็บกับข้อมูลประจำตัว Google เมื่อใช้เทมเพลต คุณจะต้องลบล้างเมธอดบางรายการเท่านั้น สำหรับ FullSyncIdentityConnector ให้ลบล้างเมธอดต่อไปนี้
init(): สำหรับการตั้งค่าและการเริ่มต้นlistUsers(): สำหรับซิงค์ผู้ใช้ทั้งหมดlistGroups(): สำหรับซิงค์กลุ่มทั้งหมด- (ไม่บังคับ)
close(): สำหรับการล้างข้อมูลระหว่างการปิดระบบ
รับพารามิเตอร์การกำหนดค่าที่กำหนดเอง
ดึงข้อมูลพารามิเตอร์ที่กำหนดเองจากออบเจ็กต์ Configuration ซึ่งโดยปกติจะอยู่ในเมธอด init() ข้อมูลโค้ดต่อไปนี้แสดงวิธีดึงข้อมูลเส้นทาง CSV
หากต้องการรับและแยกวิเคราะห์พารามิเตอร์ที่มีค่าหลายค่า ให้ใช้ตัวแยกวิเคราะห์ประเภทของคลาส Configuration เพื่อแยกวิเคราะห์ข้อมูลเป็นส่วนๆ
ข้อมูลโค้ดต่อไปนี้จากเครื่องมือเชื่อมต่อบทแนะนำจะใช้
getMultiValue
เมธอดเพื่อรับรายการชื่อที่เก็บ GitHub
รับการแมปสำหรับผู้ใช้ทั้งหมด
ลบล้าง listUsers() เพื่อดึงข้อมูลการแมปผู้ใช้ เมธอดนี้ยอมรับจุดตรวจสอบเพื่อดำเนินการซิงค์ต่อหากมีการขัดจังหวะ สำหรับผู้ใช้แต่ละราย ให้ทำดังนี้
- รับการแมประหว่างข้อมูลประจำตัว Google กับข้อมูลประจำตัวภายนอก
- จัดแพ็กเกจคู่ลงใน Iterator ที่แสดงผลโดย
listUsers()
รับการแมปผู้ใช้
ข้อมูลโค้ดนี้แสดงการดึงข้อมูลการแมปข้อมูลประจำตัวจากไฟล์ CSV
จัดแพ็กเกจการแมปผู้ใช้ลงใน Iterator
เมธอด listUsers() จะแสดงผล
CheckpointCloseableIterable
ของ
IdentityUser
ออบเจ็กต์
รับกลุ่ม
ลบล้าง listGroups() เพื่อดึงข้อมูลกลุ่มและสมาชิกของกลุ่ม เมธอดนี้ยอมรับจุดตรวจสอบ สำหรับแต่ละกลุ่ม ให้ทำดังนี้
- รับกลุ่มและสมาชิกของกลุ่ม
- จัดแพ็กเกจกลุ่มและสมาชิกของกลุ่มลงใน Iterator ที่แสดงผลโดย
listGroups()
รับข้อมูลประจำตัวของกลุ่ม
ข้อมูลโค้ดนี้แสดงการดึงข้อมูลกลุ่มและสมาชิกจากไฟล์ CSV
จัดแพ็กเกจกลุ่มและสมาชิกของกลุ่มลงใน Iterator
เมธอด listGroups() จะแสดงผล CheckpointCloseableIterable ของ
IdentityGroup
ออบเจ็กต์
ขั้นตอนถัดไป
- (ไม่บังคับ) ใช้
close()เพื่อปล่อยทรัพยากร - (ไม่บังคับ) สร้างเครื่องมือเชื่อมต่อเนื้อหา