โดยค่าเริ่มต้น Google Cloud Search จะจดจำเฉพาะข้อมูลประจำตัวของ Google ที่เก็บไว้ในไดเรกทอรี Google Cloud (ผู้ใช้และกลุ่ม) ตัวเชื่อมต่อข้อมูลประจำตัวใช้เพื่อซิงค์ข้อมูลประจำตัวขององค์กรกับข้อมูลประจำตัวของ Google ที่ Google Cloud Search ใช้
Google มีตัวเลือกต่อไปนี้สำหรับการพัฒนาเครื่องมือเชื่อมต่อข้อมูลระบุตัวตน
SDK ของโปรแกรมเชื่อมต่อข้อมูลประจำตัว ตัวเลือกนี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่เขียนโปรแกรมในภาษา Java Identity Connector SDK เป็น Wrapper ของ REST API ที่ช่วยให้คุณสร้างเครื่องมือเชื่อมต่อได้อย่างรวดเร็ว หากต้องการสร้างโปรแกรมเชื่อมต่อข้อมูลประจำตัวโดยใช้ SDK โปรดดูหัวข้อสร้างโปรแกรมเชื่อมต่อข้อมูลประจำตัวโดยใช้ Identity Connector SDK
REST API และไลบรารี API ระดับล่าง ตัวเลือกเหล่านี้มีไว้สำหรับนักพัฒนาซอฟต์แวร์ที่อาจไม่ได้เขียนโปรแกรมด้วย Java หรือมีฐานโค้ดที่รองรับ REST API หรือไลบรารีได้ดีกว่า หากต้องการสร้างเครื่องมือเชื่อมต่อข้อมูลประจำตัวโดยใช้ REST API โปรดดูข้อมูลเกี่ยวกับการแมปผู้ใช้ใน Directory API: บัญชีผู้ใช้ และข้อมูลเกี่ยวกับการแมปกลุ่มในเอกสารประกอบของ Cloud Identity
สร้างเครื่องมือเชื่อมต่อข้อมูลประจำตัวโดยใช้ Identity Connector SDK
โปรแกรมเชื่อมต่อข้อมูลประจำตัวทั่วไปจะทํางานต่อไปนี้
- กำหนดค่าเครื่องมือเชื่อมต่อ
- ดึงข้อมูลผู้ใช้ทั้งหมดจากระบบข้อมูลประจำตัวขององค์กรและส่งไปยัง Google เพื่อซิงค์กับข้อมูลประจำตัวของ Google
- เรียกข้อมูลกลุ่มทั้งหมดจากระบบข้อมูลประจำตัวขององค์กรและส่งไปยัง Google เพื่อซิงค์กับข้อมูลประจำตัวของ Google
ตั้งค่าทรัพยากร Dependency
คุณต้องใส่ Dependency บางรายการในไฟล์บิลด์เพื่อใช้ SDK คลิกแท็บด้านล่างเพื่อดูรายการที่ต้องใช้สำหรับสภาพแวดล้อมการสร้าง
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
สร้างโปรแกรมเชื่อมต่อข้อมูลประจำตัวแบบซิงค์ทั้งหมดโดยใช้คลาสเทมเพลต
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()
วิธีนี้ ระบบจะเรียกใช้เมธอดนี้ 1 ครั้งระหว่างการปิดเครื่องมือเชื่อมต่อ
รับพารามิเตอร์การกําหนดค่าที่กําหนดเอง
ในการจัดการการกําหนดค่าของเครื่องมือเชื่อมต่อ คุณจะต้องรับพารามิเตอร์ที่กําหนดเองจากออบเจ็กต์ Configuration
โดยปกติแล้ว การดำเนินการนี้จะอยู่ในเมธอดของคลาส Repository
init()
คลาส Configuration
มีเมธอดหลายวิธีในการรับข้อมูลประเภทต่างๆ จากการกำหนดค่า โดยแต่ละเมธอดจะแสดงผลออบเจ็กต์ ConfigValue
จากนั้นจะใช้เมธอด ConfigValue
ของออบเจ็กต์ get()
เพื่อดึงค่าจริง
ข้อมูลโค้ดต่อไปนี้แสดงวิธีดึงค่า userMappingCsvPath
และ groupMappingCsvPath
จากออบเจ็กต์ Configuration
หากต้องการรับและแยกวิเคราะห์พารามิเตอร์ที่มีหลายค่า ให้ใช้โปรแกรมแยกวิเคราะห์ประเภทของคลาส Configuration
รายการใดรายการหนึ่งเพื่อแยกวิเคราะห์ข้อมูลออกเป็นกลุ่มๆ
ข้อมูลโค้ดต่อไปนี้จากเครื่องมือเชื่อมต่อบทแนะนำใช้เมธอด getMultiValue
เพื่อรับรายการชื่อที่เก็บ GitHub
ดูการแมปสำหรับผู้ใช้ทั้งหมด
ลบล้าง
listUsers()
เพื่อเรียกข้อมูลการแมปสำหรับผู้ใช้ทั้งหมดจากที่เก็บข้อมูลประจำตัว เมธอด listUsers()
จะยอมรับจุดตรวจสอบที่แสดงถึงข้อมูลประจำตัวล่าสุดที่จะซิงค์ คุณสามารถใช้จุดตรวจสอบเพื่อซิงค์ต่อได้หากกระบวนการถูกขัดจังหวะ สำหรับผู้ใช้แต่ละรายในที่เก็บข้อมูล คุณจะทำตามขั้นตอนต่อไปนี้ในlistUsers()
- รับการแมปที่ประกอบด้วยข้อมูลประจำตัวของ Google และข้อมูลประจำตัวภายนอกที่เกี่ยวข้อง
- แพ็กคู่ไว้ในตัวดำเนินการวนซ้ำที่แสดงผลโดยเมธอด
listUsers()
รับการแมปผู้ใช้
ข้อมูลโค้ดต่อไปนี้แสดงวิธีเรียกข้อมูลการจับคู่ข้อมูลประจำตัวที่จัดเก็บไว้ในไฟล์ CSV
แพ็กเกจการแมปผู้ใช้เป็นตัวดำเนินการวนซ้ำ
เมธอด listUsers()
จะแสดงผล Iterator
โดยเฉพาะ CheckpointCloseableIterable
ของออบเจ็กต์ IdentityUser
คุณสามารถใช้คลาส CheckpointClosableIterableImpl.Builder
เพื่อสร้างและแสดงผลตัวดำเนินการวนซ้ำ ข้อมูลโค้ดต่อไปนี้แสดงวิธีแพ็กเกจการแมปแต่ละรายการเป็นลิสต์เพื่อสร้างตัวดำเนินการซ้ำจากลิสต์นั้น
รับกลุ่ม
ลบล้าง
listGroups()
เพื่อดึงข้อมูลกลุ่มและสมาชิกทั้งหมดจากที่เก็บข้อมูลประจำตัว เมธอด listGroups()
จะยอมรับจุดตรวจสอบที่แสดงถึงตัวตนล่าสุดที่จะซิงค์ คุณสามารถใช้จุดตรวจสอบเพื่อซิงค์ต่อได้หากกระบวนการถูกขัดจังหวะ สำหรับผู้ใช้แต่ละรายในที่เก็บข้อมูล คุณจะทำตามขั้นตอนต่อไปนี้ในเมธอด listGroups()
- รับกลุ่มและสมาชิกของกลุ่ม
- แพ็กเกจแต่ละกลุ่มและสมาชิกเป็น Iterator ที่แสดงผลโดยเมธอด
listGroups()
รับข้อมูลระบุตัวตนของกลุ่ม
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีเรียกข้อมูลกลุ่มและสมาชิกที่จัดเก็บไว้ในไฟล์ CSV
แพ็กเกจกลุ่มและสมาชิกเป็นตัวดำเนินการวนซ้ำ
เมธอด listGroups()
จะแสดงผล Iterator
โดยเฉพาะ CheckpointCloseableIterable
ของออบเจ็กต์ IdentityGroup
คุณสามารถใช้คลาส CheckpointClosableIterableImpl.Builder
เพื่อสร้างและแสดงผลตัวดำเนินการวนซ้ำ ข้อมูลโค้ดต่อไปนี้แสดงวิธีแพ็กเกจแต่ละกลุ่มและสมาชิกเป็นรายการ และสร้างตัวดำเนินการซ้ำจากรายการนั้น
ขั้นตอนถัดไป
ขั้นตอนถัดไปที่คุณอาจทำได้มีดังนี้
- (ไม่บังคับ) ใช้เมธอด close() เพื่อปล่อยทรัพยากรก่อนปิดระบบ
- (ไม่บังคับ) สร้างเครื่องมือเชื่อมต่อเนื้อหาโดยใช้ Content Connector SDK