ডিফল্টরূপে, গুগল ক্লাউড সার্চ শুধুমাত্র গুগল ক্লাউড ডিরেক্টরিতে থাকা গুগল আইডেন্টিটিগুলোকেই শনাক্ত করে। ক্লাউড সার্চ যে গুগল আইডেন্টিটিগুলো ব্যবহার করে, সেগুলোর সাথে এন্টারপ্রাইজ আইডেন্টিটিগুলোকে সিঙ্ক করতে আইডেন্টিটি কানেক্টর ব্যবহার করুন।
আইডেন্টিটি কানেক্টর তৈরির জন্য গুগল এই বিকল্পগুলো প্রদান করে:
আইডেন্টিটি কানেক্টর এসডিকে: জাভা প্রোগ্রামারদের জন্য সেরা। এই এসডিকে হলো REST API-এর একটি র্যাপার যা আপনাকে দ্রুত কানেক্টর তৈরি করতে দেয়। এসডিকে ব্যবহার করতে, “আইডেন্টিটি কানেক্টর এসডিকে ব্যবহার করে একটি আইডেন্টিটি কানেক্টর তৈরি করুন” দেখুন।
একটি নিম্ন-স্তরের REST API এবং API লাইব্রেরি: যারা জাভা প্রোগ্রামার নন, তাদের জন্য সর্বোত্তম। REST API ব্যবহার করে একটি আইডেন্টিটি কানেক্টর তৈরি করতে, ব্যবহারকারীদের ম্যাপ করার জন্য ডিরেক্টরি এপিআই: ইউজার অ্যাকাউন্টস এবং গ্রুপ ম্যাপ করার জন্য গুগল ক্লাউড আইডেন্টিটি ডকুমেন্টেশন দেখুন।
আইডেন্টিটি কানেক্টর এসডিকে ব্যবহার করে একটি আইডেন্টিটি কানেক্টর তৈরি করুন।
একটি সাধারণ আইডেন্টিটি কানেক্টর নিম্নলিখিত কাজগুলো সম্পাদন করে:
- কানেক্টরটি কনফিগার করে।
- আপনার পরিচয় ব্যবস্থা থেকে ব্যবহারকারীদের সংগ্রহ করে গুগলে পাঠায়।
- আপনার পরিচয় ব্যবস্থা থেকে গ্রুপগুলো সংগ্রহ করে গুগলে পাঠায়।
নির্ভরতা সেট আপ করুন
আপনার বিল্ড ফাইলে এই নির্ভরতাগুলো অন্তর্ভুক্ত করুন।
ম্যাভেন
<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 ।
গুগল ক্লাউড সার্চ এসডিকে-তে সকল কানেক্টরের জন্য গুগল-প্রদত্ত প্যারামিটার অন্তর্ভুক্ত রয়েছে। আপনাকে আপনার কনফিগারেশন ফাইলে নিম্নলিখিতগুলি অবশ্যই ঘোষণা করতে হবে:
- কন্টেন্ট কানেক্টর :
api.sourceIdএবংapi.serviceAccountPrivateKeyFileঘোষণা করুন। এগুলো আপনার রিপোজিটরি এবং অ্যাক্সেসের জন্য প্রয়োজনীয় প্রাইভেট কী শনাক্ত করে।
- আইডেন্টিটি কানেক্টর : আপনার বাহ্যিক আইডেন্টিটি সোর্স শনাক্ত করতে
api.identitySourceIdডিক্লেয়ার করুন। ইউজার সিঙ্কিংয়ের জন্য,api.customerId(আপনার গুগল ওয়ার্কস্পেস অ্যাকাউন্টের ইউনিক আইডি) ডিক্লেয়ার করুন।
অন্যান্য গুগল-প্রদত্ত প্যারামিটারগুলো শুধুমাত্র তাদের ডিফল্ট মান ওভাররাইড করার জন্য ঘোষণা করুন। আইডি এবং কী তৈরি করার বিষয়ে বিস্তারিত জানতে, গুগল-প্রদত্ত প্যারামিটারসমূহ দেখুন।
আপনি আপনার কনফিগারেশন ফাইলে রিপোজিটরি-নির্দিষ্ট প্যারামিটারও নির্ধারণ করতে পারেন।
কনফিগারেশন ফাইলটি কানেক্টরের কাছে পাঠান।
কনফিগারেশন ফাইলটি পাস করার জন্য config সিস্টেম প্রপার্টি সেট করুন। কানেক্টরটি চালু করার সময় -D আর্গুমেন্টটি ব্যবহার করুন। উদাহরণস্বরূপ:
java -classpath myconnector.jar -Dconfig=MyConfig.properties MyConnector
আপনি যদি এই আর্গুমেন্টটি বাদ দেন, তাহলে SDK স্থানীয় ডিরেক্টরিতে থাকা connector-config.properties নামের ফাইলটি ব্যবহার করার চেষ্টা করে।
একটি টেমপ্লেট ক্লাস ব্যবহার করে একটি সম্পূর্ণ সিঙ্ক আইডেন্টিটি কানেক্টর তৈরি করুন।
আপনার রিপোজিটরি থেকে সমস্ত ব্যবহারকারী এবং গ্রুপ সিঙ্ক করার জন্য SDK-তে একটি FullSyncIdentityConnector টেমপ্লেট অন্তর্ভুক্ত রয়েছে। এই বিভাগে এটি কীভাবে ব্যবহার করতে হয় তা ব্যাখ্যা করা হয়েছে।
এই অংশে IdentityConnectorSample.java স্যাম্পলের কোড উল্লেখ করা হয়েছে, যা CSV ফাইল থেকে পরিচয়পত্র পড়ে।
কানেক্টর এন্ট্রি পয়েন্ট বাস্তবায়ন করুন
এন্ট্রি পয়েন্ট হলো main() মেথড। এটি একটি Application ইনস্ট্যান্স তৈরি করে এবং কানেক্টরটি চালানোর জন্য start() মেথডকে কল করে।
application.start() কল করার আগে, IdentityApplication.Builder ব্যবহার করে FullSyncIdentityConnector টেমপ্লেটটি ইনস্ট্যানশিয়েট করুন।
আপনার main() মেথড Application.build() কল করার পর SDK, initConfig() কল করে। initConfig() মেথডটি হলো:
-
Configurationআগে থেকেই প্রারম্ভিক অবস্থায় নেই তা নিশ্চিত করে। - গুগল-প্রদত্ত কী-ভ্যালু পেয়ার দিয়ে
Configurationঅবজেক্টটি ইনিশিয়ালাইজ করে।
রিপোজিটরি ইন্টারফেস বাস্তবায়ন করুন
Repository অবজেক্টটি রিপোজিটরি আইডেন্টিটিগুলোকে গুগল আইডেন্টিটির সাথে সিঙ্ক করে। একটি টেমপ্লেট ব্যবহার করার সময়, আপনাকে শুধুমাত্র নির্দিষ্ট কিছু মেথড ওভাররাইড করতে হবে। FullSyncIdentityConnector জন্য, এই মেথডগুলো ওভাররাইড করুন:
-
init(): সেটআপ এবং প্রারম্ভিককরণের জন্য। -
listUsers(): সকল ব্যবহারকারীকে সিঙ্ক করার জন্য। -
listGroups(): সকল গ্রুপ সিঙ্ক করার জন্য। - (ঐচ্ছিক)
close(): শাটডাউনের সময় পরিষ্কার-পরিচ্ছন্নতার জন্য।
কাস্টম কনফিগারেশন প্যারামিটার পান
Configuration অবজেক্ট থেকে কাস্টম প্যারামিটারগুলো পুনরুদ্ধার করুন, সাধারণত init() মেথডের মাধ্যমে। নিচের কোড স্নিপেটটিতে দেখানো হয়েছে কিভাবে CSV পাথগুলো পুনরুদ্ধার করতে হয়:
একাধিক মান ধারণকারী কোনো প্যারামিটার পেতে ও পার্স করতে, ডেটাটিকে আলাদা আলাদা খণ্ডে পার্স করার জন্য Configuration ক্লাসের টাইপ পার্সারগুলোর মধ্যে একটি ব্যবহার করুন। টিউটোরিয়াল কানেক্টর থেকে নেওয়া নিম্নলিখিত কোড স্নিপেটটি, GitHub রিপোজিটরি নামগুলোর একটি তালিকা পেতে getMultiValue মেথডটি ব্যবহার করে:
সকল ব্যবহারকারীর জন্য ম্যাপিং পান
ব্যবহারকারী ম্যাপিং পুনরুদ্ধার করতে listUsers() মেথডটি ওভাররাইড করুন। সিঙ্কিং বাধাগ্রস্ত হলে তা পুনরায় শুরু করার জন্য এই মেথডটি একটি চেকপয়েন্ট গ্রহণ করে। প্রতিটি ব্যবহারকারীর জন্য:
- গুগল আইডেন্টিটি এবং এক্সটার্নাল আইডেন্টিটির মধ্যেকার ম্যাপিংটি বের করুন।
-
listUsers()দ্বারা ফেরত আসা ইটারেটরের মধ্যে জোড়াটিকে প্যাকেজ করুন।
ব্যবহারকারী ম্যাপিং পান
এই কোড স্নিপেটটি একটি CSV ফাইল থেকে আইডেন্টিটি ম্যাপিং পুনরুদ্ধার করার পদ্ধতি প্রদর্শন করে:
একটি ব্যবহারকারী ম্যাপিংকে ইটারেটরের মধ্যে প্যাকেজ করুন
listUsers() মেথডটি IdentityUser অবজেক্টের একটি CheckpointCloseableIterable রিটার্ন করে।
একটি দল গঠন করুন
গ্রুপ এবং তাদের সদস্যদের পুনরুদ্ধার করতে listGroups() মেথডটি ওভাররাইড করুন। এই মেথডটি একটি চেকপয়েন্ট গ্রহণ করে। প্রতিটি গ্রুপের জন্য:
- গ্রুপটি এবং এর সদস্যদের খুঁজে বের করুন।
-
listGroups()দ্বারা ফেরত আসা ইটারেটরের মধ্যে সেগুলোকে প্যাকেজ করুন।
গোষ্ঠীর পরিচয় জানুন
এই কোড স্নিপেটটি একটি CSV ফাইল থেকে গ্রুপ এবং সদস্যদের পুনরুদ্ধার করার পদ্ধতি প্রদর্শন করে:
গ্রুপ এবং সদস্যদের একটি ইটারেটরে প্যাকেজ করুন
listGroups() মেথডটি IdentityGroup অবজেক্টের একটি CheckpointCloseableIterable রিটার্ন করে।
পরবর্তী পদক্ষেপ
- (ঐচ্ছিক) রিসোর্স মুক্ত করার জন্য
close()প্রয়োগ করুন। - (ঐচ্ছিক) একটি কন্টেন্ট কানেক্টর তৈরি করুন ।