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