डिफ़ॉल्ट रूप से, Google Cloud Search सिर्फ़ Google Cloud डायरेक्ट्री (उपयोगकर्ता और ग्रुप) में सेव Google की पहचानों की पहचान करता है. Identity Connector का इस्तेमाल आपके एंटरप्राइज़ की पहचान को Google की पहचान से सिंक करने के लिए किया जाता है. इसका इस्तेमाल Google Cloud Search करता है.
आइडेंटिटी कनेक्टर डेवलप करने के लिए, Google ये विकल्प देता है:
Identity कनेक्टर SDK टूल. यह विकल्प उन डेवलपर के लिए है जो Java प्रोग्रामिंग भाषा में प्रोग्रामिंग कर रहे हैं. Identity Connector SDK, REST API के आस-पास मौजूद एक रैपर होता है. इसकी मदद से, तेज़ी से कनेक्टर बनाए जा सकते हैं. SDK टूल का इस्तेमाल करके आईडी कनेक्टर बनाने के लिए, Identity कनेक्टर SDK टूल का इस्तेमाल करके पहचान कनेक्टर बनाना लेख पढ़ें.
कम लेवल का REST API और एपीआई लाइब्रेरी. ये विकल्प उन डेवलपर के लिए हैं जो शायद Java में प्रोग्रामिंग न कर रहे हों या जिनके कोडबेस में किसी REST API या लाइब्रेरी को बेहतर तरीके से शामिल किया जा सकता हो. REST API का इस्तेमाल करके आइडेंटिटी कनेक्टर बनाने के लिए, उपयोगकर्ताओं की मैपिंग के बारे में जानकारी के लिए, Directory API: User खाते और मैपिंग ग्रुप के बारे में जानकारी के लिए Cloud Identity दस्तावेज़ देखें.
आइडेंटिटी कनेक्टर 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()
तरीके को लागू करने का तरीका दिखाता है:
ऐसा होने पर, SDK टूल initConfig()
तरीके को तब कॉल करता है, जब आपके कनेक्टर main()
तरीके को कॉल करते हैं Application.build
.
initConfig()
तरीके से ये काम किए जाते हैं:
- यह पक्का करने के लिए कि
Configuration
शुरू नहीं हुआ है,Configuation.isInitialized()
तरीके का इस्तेमाल करता है. - 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 टूल का इस्तेमाल करके कॉन्टेंट कनेक्टर बनाएं.