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