डिफ़ॉल्ट रूप से, Google Cloud Search सिर्फ़ Google Cloud डायरेक्ट्री (उपयोगकर्ताओं और ग्रुप) में सेव की गई Google की पहचान की पहचान करता है. पहचान कनेक्टर का इस्तेमाल, आपके एंटरप्राइज़ की पहचान को Google Cloud Search में इस्तेमाल की जाने वाली Google पहचान से सिंक करने के लिए किया जाता है.
आइडेंटिटी कनेक्टर बनाने के लिए, Google ये विकल्प उपलब्ध कराता है:
पहचान कनेक्टर का SDK टूल. यह विकल्प उन डेवलपर के लिए है जो Java प्रोग्रामिंग भाषा में प्रोग्रामिंग कर रहे हैं. Identity Connector SDK टूल, REST API के चारों ओर एक रैपर है. इससे आपको तेज़ी से कनेक्टर बनाने में मदद मिलती है. SDK टूल का इस्तेमाल करके आइडेंटिटी कनेक्टर बनाने के लिए, Identity Connector SDK टूल का इस्तेमाल करके आइडेंटिटी कनेक्टर बनाना लेख पढ़ें.
एक लो-लेवल का REST API और एपीआई लाइब्रेरी. ये विकल्प उन डेवलपर के लिए हैं जो शायद Java में प्रोग्रामिंग न करते हों या जिनके कोडबेस में REST API या लाइब्रेरी का बेहतर तरीके से इस्तेमाल किया जा सकता हो. REST API का इस्तेमाल करके, आइडेंटिटी कनेक्टर बनाने के लिए, उपयोगकर्ताओं को मैप करने के बारे में जानकारी के लिए डायरेक्ट्री एपीआई: उपयोगकर्ता खाते और मैपिंग ग्रुप के बारे में जानकारी के लिए, Cloud Identity दस्तावेज़ देखें.
Identity Connector SDK टूल का इस्तेमाल करके, आइडेंटिटी कनेक्टर बनाना
सामान्य आइडेंटिटी कनेक्टर ये काम करते हैं:
- कनेक्टर कॉन्फ़िगर करें.
- अपने एंटरप्राइज़ आइडेंटिटी सिस्टम से सभी उपयोगकर्ताओं को वापस लाएं और Google आइडेंटिटी के साथ सिंक करने के लिए उन्हें Google के पास भेजें.
- अपने एंटरप्राइज़ आइडेंटिटी सिस्टम से सभी ग्रुप वापस लाएं और उन्हें Google को भेजें, ताकि वे Google आइडेंटिटी के साथ सिंक कर सकें.
डिपेंडेंसी सेट अप करें
SDK टूल का इस्तेमाल करने के लिए, आपको अपनी बिल्ड फ़ाइल में कुछ डिपेंडेंसी शामिल करनी होंगी. अपने बिल्ड एनवायरमेंट की डिपेंडेंसी देखने के लिए, नीचे दिए गए टैब पर क्लिक करें:
Maven
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-identity-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
ग्रेडल
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
का एलान करना होगा, क्योंकि यह पैरामीटर आपके बाहरी आइडेंटिटी सोर्स की लोकेशन की पहचान करता है. अगर उपयोगकर्ताओं को सिंक किया जा रहा है, तो आपको अपने एंटरप्राइज़ के Google Workspace खाते के लिए,api.customerId
को भी यूनीक आईडी के तौर पर बताना होगा.
जब तक आपको Google के उपलब्ध कराए गए अन्य पैरामीटर की डिफ़ॉल्ट वैल्यू को बदलना न हो, तब तक आपको उन्हें अपनी कॉन्फ़िगरेशन फ़ाइल में बताने की ज़रूरत नहीं है. Google के दिए गए कॉन्फ़िगरेशन पैरामीटर के बारे में ज़्यादा जानकारी, जैसे कि कुछ आईडी और कुंजियों को जनरेट करने का तरीका जानने के लिए, Google के उपलब्ध कराए गए कॉन्फ़िगरेशन पैरामीटर देखें.
अपनी कॉन्फ़िगरेशन फ़ाइल में इस्तेमाल के लिए, रिपॉज़िटरी के अपने खास पैरामीटर भी तय किए जा सकते हैं.
कॉन्फ़िगरेशन फ़ाइल को कनेक्टर पर पास करें
कॉन्फ़िगरेशन फ़ाइल को अपने कनेक्टर में भेजने के लिए, सिस्टम प्रॉपर्टी config
को सेट करें. कनेक्टर शुरू करते समय, -D
आर्ग्युमेंट का इस्तेमाल करके, प्रॉपर्टी को सेट किया जा सकता है. उदाहरण के लिए, यह कमांड, कनेक्टर को MyConfig.properties
कॉन्फ़िगरेशन फ़ाइल के साथ शुरू करता है:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
अगर यह आर्ग्युमेंट मौजूद नहीं है, तो SDK टूल, connector-config.properties
नाम की डिफ़ॉल्ट कॉन्फ़िगरेशन फ़ाइल को ऐक्सेस करने की कोशिश करता है.
टेंप्लेट क्लास का इस्तेमाल करके, पूरा सिंक आइडेंटिटी कनेक्टर बनाएं
Identity Connector SDK टूल में, FullSyncIdentityConnector
टेंप्लेट क्लास
शामिल होती है. इसका इस्तेमाल, आइडेंटिटी रिपॉज़िटरी के सभी उपयोगकर्ताओं और ग्रुप को Google आइडेंटिटी के साथ सिंक करने के लिए किया जा सकता है. इस सेक्शन में बताया गया है कि Google के अलावा किसी तीसरे पक्ष की आइडेंटिटी को स्टोर करने की जगह से उपयोगकर्ताओं और ग्रुप को पूरी तरह सिंक करने के लिए, FullSyncIdentityConnector
टेंप्लेट का इस्तेमाल कैसे करें.
दस्तावेज़ों का यह सेक्शन, IdentityConnecorSample.java
सैंपल से मिले कोड स्निपेट के बारे में बताता है. यह सैंपल, दो CSV फ़ाइलों में मौजूद उपयोगकर्ताओं और ग्रुप की
पहचानों को पढ़ता है और उन्हें Google वाली पहचानों के साथ सिंक करता है.
कनेक्टर का एंट्री पॉइंट लागू करना
किसी कनेक्टर का एंट्री पॉइंट, main()
तरीका होता है. इस तरीके का मुख्य टास्क है, Application
क्लास का इंस्टेंस बनाना और कनेक्टर को चलाने के लिए इसके start()
तरीके को शुरू करना.
application.start()
को कॉल करने से पहले, FullSyncIdentityConnector
टेंप्लेट को इंस्टैंशिएट करने के लिए, IdentityApplication.Builder
क्लास का इस्तेमाल करें. FullSyncIdentityConnector
,
Repository
ऑब्जेक्ट को स्वीकार करता है, जिसके मेथड को लागू किया जाएगा.
नीचे दिया गया कोड स्निपेट, main()
तरीके को लागू करने का तरीका बताता है:
हालांकि, कनेक्टर के main()
तरीके के कॉल Application.build
होने के बाद, SDK टूल initConfig()
तरीके को कॉल करता है.
initConfig()
वाला तरीका ये काम करता है:
- यह
Configuation.isInitialized()
तरीके को कॉल करता है, ताकि यह पक्का किया जा सके किConfiguration
को शुरू नहीं किया गया है. - Google के उपलब्ध कराए गए की-वैल्यू पेयर के साथ,
Configuration
ऑब्जेक्ट को शुरू करता है. हर की-वैल्यू पेयर कोConfiguration
ऑब्जेक्ट मेंConfigValue
ऑब्जेक्ट में स्टोर किया जाता है.
Repository
इंटरफ़ेस को लागू करें
Repository
ऑब्जेक्ट का एकमात्र मकसद, डेटा स्टोर करने की जगह की पहचानों को Google की पहचानों के साथ सिंक करना है. टेंप्लेट का इस्तेमाल करते समय, आपको आइडेंटिटी कनेक्टर बनाने के लिए Repository
इंटरफ़ेस में सिर्फ़ कुछ तरीकों को बदलना होगा. FullTraversalConnector
के लिए, आपको शायद इन तरीकों को बदलना होगा:
init()
तरीका. किसी भी आइडेंटिटी रिपॉज़िटरी को सेट-अप और शुरू करने के लिए, `init() तरीके को बदलें.listUsers()
तरीका. आइडेंटिटी रिपॉज़िटरी में मौजूद सभी उपयोगकर्ताओं को Google के उपयोगकर्ताओं के साथ सिंक करने के लिए,listUsers()
तरीके को बदलें.listGroups()
तरीका. आइडेंटिटी रिपॉज़िटरी में मौजूद सभी ग्रुप को Google Groups के साथ सिंक करने के लिए,listGroups()
तरीके को बदलें.(ज़रूरी नहीं)
close()
तरीका. अगर आपको डेटा स्टोर करने की जगह को क्लीनअप करना है, तोclose()
तरीके को बदलें. कनेक्टर के शटडाउन के दौरान, इस तरीके को एक बार कॉल किया जाता है.
कस्टम कॉन्फ़िगरेशन पैरामीटर पाएं
अपने कनेक्टर के कॉन्फ़िगरेशन को हैंडल करने के दौरान, आपको Configuration
ऑब्जेक्ट से सभी कस्टम पैरामीटर लेने होंगे. आम तौर पर, यह टास्क
Repository
क्लास के
init()
तरीके से किया जाता है.
Configuration
क्लास में किसी कॉन्फ़िगरेशन से अलग-अलग तरह का डेटा पाने के कई तरीके होते हैं. हर तरीका,
ConfigValue
ऑब्जेक्ट दिखाता है. इसके बाद, सही वैल्यू पाने के लिए ConfigValue
ऑब्जेक्ट के get()
तरीके का इस्तेमाल किया जाएगा.
नीचे दिए गए स्निपेट में, Configuration
ऑब्जेक्ट से userMappingCsvPath
और groupMappingCsvPath
वैल्यू को वापस पाने का तरीका बताया गया है:
कई वैल्यू वाला पैरामीटर पाने और पार्स करने के लिए, डेटा को अलग-अलग हिस्सों में पार्स करने के लिए, Configuration
क्लास के किसी एक तरह के पार्सर का इस्तेमाल करें.
ट्यूटोरियल कनेक्टर का यह स्निपेट, GitHub के डेटा स्टोर करने की जगह के नामों की सूची पाने के लिए, getMultiValue
तरीके का इस्तेमाल करता है:
सभी उपयोगकर्ताओं के लिए मैपिंग पाएं
इसे बदलें
listUsers()
, ताकि आपकी आइडेंटिटी रिपॉज़िटरी से सभी उपयोगकर्ताओं की मैपिंग की जा सके. listUsers()
वाला तरीका, उस चेकपॉइंट को स्वीकार करता है जो सिंक की जाने वाली आखिरी पहचान को दिखाता है. चेकपॉइंट का इस्तेमाल सिंक को फिर से शुरू करने के लिए किया जा सकता है,
ताकि प्रोसेस में रुकावट आने पर वह ठीक से काम कर सके. डेटा स्टोर करने की जगह में मौजूद हर उपयोगकर्ता के लिए, आपको listUsers()
तरीके में इन चरणों को पूरा करना होगा:
- Google की पहचान और उससे जुड़ी बाहरी पहचान वाली मैपिंग पाएं.
- पेयर को
listUsers()
तरीके से लौटाए गए, इटरेटर में पैकेज करें.
उपयोगकर्ता मैपिंग पाएं
नीचे दिया गया कोड स्निपेट, CSV फ़ाइल में स्टोर की गई पहचान की मैपिंग को वापस पाने का तरीका दिखाता है:
किसी उपयोगकर्ता को इटरेटर में पैकेज करना
इस listUsers()
तरीके से, Iterator
खास तौर पर IdentityUser
ऑब्जेक्ट के
CheckpointCloseableIterable
ऑब्जेक्ट दिखाए जाते हैं. एक इटरेटर बनाने और उसे दिखाने के लिए, CheckpointClosableIterableImpl.Builder
क्लास का इस्तेमाल किया जा सकता है. नीचे दिया गया कोड स्निपेट दिखाता है कि हर मैपिंग को सूची में कैसे पैकेज करें
उस सूची से इटरेटर बनाएं:
एक समूह बनाएं
इसे बदलें
listGroups()
, ताकि सभी ग्रुप और उनके सदस्यों को आपकी आइडेंटिटी के डेटा स्टोर करने की जगह से
वापस लाया जा सके. listGroups()
वाला तरीका, उस चेकपॉइंट को स्वीकार करता है जो सिंक की जाने वाली आखिरी पहचान को दिखाता है. चेकपॉइंट का इस्तेमाल, सिंक की प्रोसेस को फिर से शुरू करने के लिए किया जा सकता है. डेटा स्टोर करने की जगह में मौजूद हर उपयोगकर्ता के लिए, आपको listGroups()
तरीके में ये चरण पूरे करने होंगे:
- ग्रुप और उसके सदस्यों को जोड़ें.
- हर ग्रुप और सदस्यों को
listGroups()
तरीके से लौटाए गए, इटरेटर में पैकेज करें.
ग्रुप की पहचान जानें
नीचे दिया गया कोड स्निपेट, CSV फ़ाइल में स्टोर किए गए ग्रुप और सदस्यों को वापस पाने का तरीका बताता है:
ग्रुप और सदस्यों को इटरेटर में पैकेज करें
इस listGroups()
तरीके से, Iterator
खास तौर पर IdentityGroup
ऑब्जेक्ट के
CheckpointCloseableIterable
ऑब्जेक्ट दिखाए जाते हैं.
एक इटरेटर बनाने और उसे दिखाने के लिए, CheckpointClosableIterableImpl.Builder
क्लास का इस्तेमाल किया जा सकता है. नीचे दिया गया कोड स्निपेट बताता है कि
हर ग्रुप और सदस्यों को एक सूची में कैसे पैकेज किया जाए और उस सूची से इटरेटर कैसे बनाया जाए:
अगले चरण
यहां कुछ ऐसे तरीके बताए गए हैं जिन्हें आज़माया जा सकता है:
- (ज़रूरी नहीं) बंद होने से पहले किसी भी संसाधन को रिलीज़ करने के लिए, close() तरीका लागू करें.
- (ज़रूरी नहीं) Content Connector SDK टूल का इस्तेमाल करके कॉन्टेंट कनेक्टर बनाएं.