डिफ़ॉल्ट रूप से, Google Cloud Search सिर्फ़ Google Cloud Directory में सेव की गई Google आइडेंटिटी (उपयोगकर्ता और ग्रुप) को पहचानता है. पहचान कनेक्टर का इस्तेमाल, Google Cloud Search में इस्तेमाल की जाने वाली Google की पहचानों के साथ, आपके एंटरप्राइज़ की पहचानों को सिंक करने के लिए किया जाता है.
Google, आइडेंटिटी कनेक्टर डेवलप करने के लिए ये विकल्प उपलब्ध कराता है:
Identity Connector SDK. यह विकल्प उन डेवलपर के लिए है जो Java प्रोग्रामिंग लैंग्वेज में प्रोग्रामिंग कर रहे हैं. Identity Connector SDK, REST API के चारों ओर एक रैपर है. इसकी मदद से, कनेक्टर तुरंत बनाए जा सकते हैं. एसडीके का इस्तेमाल करके, आइडेंटिटी कनेक्टर बनाने के लिए, Identity Connector SDK का इस्तेमाल करके आइडेंटिटी कनेक्टर बनाना लेख पढ़ें.
लो-लेवल REST API और एपीआई लाइब्रेरी. ये विकल्प उन डेवलपर के लिए हैं जो Java में प्रोग्रामिंग नहीं करते हैं या जिनका कोडबेस, REST API या लाइब्रेरी को बेहतर तरीके से इस्तेमाल करता है. REST API का इस्तेमाल करके आइडेंटिटी कनेक्टर बनाने के लिए, Directory API: User Accounts देखें. इसमें उपयोगकर्ताओं को मैप करने के बारे में जानकारी दी गई है. साथ ही, Cloud Identity Documentation देखें. इसमें ग्रुप को मैप करने के बारे में जानकारी दी गई है.
Identity Connector SDK का इस्तेमाल करके, आइडेंटिटी कनेक्टर बनाना
सामान्य तौर पर, आइडेंटिटी कनेक्टर ये काम करता है:
- कनेक्टर को कॉन्फ़िगर करें.
- अपने एंटरप्राइज़ आइडेंटिटी सिस्टम से सभी उपयोगकर्ताओं की जानकारी पाएं और उसे Google को भेजें, ताकि Google आइडेंटिटी के साथ सिंक किया जा सके.
- यह कुकी, आपके एंटरप्राइज़ आइडेंटिटी सिस्टम से सभी ग्रुप वापस लाती है और उन्हें Google को भेजती है, ताकि उन्हें Google आइडेंटिटी के साथ सिंक किया जा सके.
डिपेंडेंसी सेट अप करना
एसडीके का इस्तेमाल करने के लिए, आपको अपनी बिल्ड फ़ाइल में कुछ डिपेंडेंसी शामिल करनी होंगी. अपने बिल्ड एनवायरमेंट के लिए डिपेंडेंसी देखने के लिए, यहां दिए गए किसी टैब पर क्लिक करें:
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()
तरीके को लागू करने का तरीका बताया गया है:
पर्दे के पीछे, SDK टूल initConfig()
वाले तरीके को कॉल करता है. ऐसा तब होता है, जब आपके कनेक्टर का main()
वाला तरीका Application.build
को कॉल करता है.
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
तरीके का इस्तेमाल करता है:
सभी उपयोगकर्ताओं के लिए मैपिंग पाना
Override
listUsers()
का इस्तेमाल करके, आइडेंटिटी रिपॉज़िटरी में मौजूद सभी उपयोगकर्ताओं के लिए मैपिंग वापस पाएं. listUsers()
वाला तरीका, एक चेकपॉइंट स्वीकार करता है. यह चेकपॉइंट, सिंक की जाने वाली आखिरी पहचान को दिखाता है. अगर सिंक करने की प्रोसेस में कोई रुकावट आती है, तो इस चेकपॉइंट का इस्तेमाल करके सिंक करने की प्रोसेस को फिर से शुरू किया जा सकता है. अपनी रिपॉज़िटरी में मौजूद हर उपयोगकर्ता के लिए, आपको listUsers()
तरीके में यह तरीका अपनाना होगा:
- Google खाते की पहचान और उससे जुड़ी बाहरी पहचान की मैपिंग पाएं.
- जोड़े को
listUsers()
तरीके से लौटाए गए इटरेटर में पैकेज करें.
उपयोगकर्ता की मैपिंग पाना
नीचे दिया गया कोड स्निपेट, CSV फ़ाइल में सेव किए गए आइडेंटिटी मैपिंग को वापस पाने का तरीका दिखाता है:
उपयोगकर्ता मैपिंग को इटरेटर में पैकेज करना
listUsers()
मेथड, IdentityUser
ऑब्जेक्ट का Iterator
दिखाता है. खास तौर पर, CheckpointCloseableIterable
दिखाता है. इटररेटर बनाने और उसे वापस पाने के लिए, CheckpointClosableIterableImpl.Builder
क्लास का इस्तेमाल किया जा सकता है. यहां दिए गए कोड स्निपेट में बताया गया है कि हर मैपिंग को सूची में कैसे पैकेज किया जाए और उस सूची से इटरेटर कैसे बनाया जाए:
किसी ग्रुप की जानकारी पाना
अपनी पहचान से जुड़ी जानकारी के रिपॉज़िटरी से सभी ग्रुप और उनके सदस्यों की जानकारी पाने के लिए, Override
listGroups()
का इस्तेमाल करें. listGroups()
वाला तरीका, सिंक की जाने वाली आखिरी पहचान को दिखाने वाले चेकपॉइंट को स्वीकार करता है. अगर प्रोसेस में रुकावट आती है, तो सिंक करने की प्रोसेस को फिर से शुरू करने के लिए, चेकपॉइंट का इस्तेमाल किया जा सकता है. अपनी रिपॉज़िटरी में मौजूद हर उपयोगकर्ता के लिए, आपको listGroups()
तरीके में यह तरीका अपनाना होगा:
- ग्रुप और उसके सदस्यों की जानकारी पाएं.
- हर ग्रुप और सदस्य को,
listGroups()
तरीके से लौटाए गए इटरेटर में पैकेज करें.
ग्रुप की पहचान पाना
यहां दिए गए कोड स्निपेट में, CSV फ़ाइल में सेव किए गए ग्रुप और सदस्यों को वापस पाने का तरीका बताया गया है:
ग्रुप और सदस्यों को इटरेटर में पैकेज करना
listGroups()
मेथड, IdentityGroup
ऑब्जेक्ट का Iterator
दिखाता है. खास तौर पर, CheckpointCloseableIterable
दिखाता है.
इटररेटर बनाने और उसे वापस पाने के लिए, CheckpointClosableIterableImpl.Builder
क्लास का इस्तेमाल किया जा सकता है. यहां दिए गए कोड स्निपेट में बताया गया है कि हर ग्रुप और उसके सदस्यों को सूची में कैसे पैकेज किया जाता है. साथ ही, उस सूची से इटरेटर कैसे बनाया जाता है:
अगले चरण
यहां कुछ ऐसे तरीके दिए गए हैं जिन्हें आज़माया जा सकता है:
- (ज़रूरी नहीं) बंद करने से पहले किसी भी संसाधन को रिलीज़ करने के लिए, close() तरीके को लागू करें.
- (ज़रूरी नहीं) Content Connector SDK का इस्तेमाल करके, कॉन्टेंट कनेक्टर बनाएं.