لا يتعرّف Google Cloud Search تلقائيًا إلا على هويات Google في "دليل Google Cloud". استخدِم موصّلات الهوية لمزامنة هويات المؤسسة مع هويات Google التي يستخدمها Cloud Search.
توفّر Google الخيارات التالية لتطوير موصّلات الهوية:
حزمة تطوير البرامج (SDK) لموصّل الهوية: هي الخيار الأفضل لمبرمجي Java. تُعدّ حزمة تطوير البرامج (SDK) برنامجًا تضمينيًا حول REST API، ما يتيح لك إنشاء الموصّلات بسرعة. لاستخدام حزمة تطوير البرامج (SDK)، يُرجى الاطّلاع على مقالة إنشاء موصّل هوية باستخدام حزمة تطوير البرامج (SDK) لموصّل الهوية.
واجهة برمجة تطبيقات REST منخفضة المستوى ومكتبات واجهات برمجة التطبيقات: هي الخيار الأفضل للمبرمجين الذين لا يستخدمون Java. لإنشاء موصّل هوية باستخدام واجهة برمجة التطبيقات REST، يُرجى الاطّلاع على مستندات Directory API: User Accounts لربط المستخدمين و مستندات Google Cloud Identity لربط المجموعات.
إنشاء موصّل هوية باستخدام حزمة تطوير البرامج (SDK) لموصّل الهوية
ينفّذ موصّل الهوية العادي المهام التالية:
- ضبط الموصّل
- استرداد المستخدمين من نظام الهوية وإرسالهم إلى Google
- استرداد المجموعات من نظام الهوية وإرسالها إلى Google
إعداد التبعيات
يجب تضمين هذه التبعيات في ملف الإصدار.
Maven
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-identity-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Gradle
compile group: 'com.google.enterprise.cloudsearch',
name: 'google-cloudsearch-identity-connector-sdk',
version: 'v1-0.0.3'
إنشاء إعدادات الموصّل
يستخدم كل موصّل ملف إعدادات للمَعلمات، مثل رقم تعريف المستودع.
يمكنك تحديد المَعلمات كأزواج مفتاح-قيمة ، مثل
api.sourceId=1234567890abcdef.
تتضمّن حزمة تطوير البرامج (SDK) في Google Cloud Search مَعلمات مقدَّمة من Google لجميع الموصّلات. يجب الإعلان عن ما يلي في ملف الإعدادات:
- مُوصِّل المحتوى: التعريف عن
api.sourceIdوapi.serviceAccountPrivateKeyFile. يحدّد هذان المعرّفان المستودع والمفتاح الخاص اللازم للوصول.
- موصّل الهوية: يجب الإعلان عن
api.identitySourceIdلتحديد مصدر الهوية الخارجي. لمزامنة المستخدمين، يجب أيضًا الإعلان عنapi.customerId(رقم التعريف الفريد لحسابك على Google Workspace).
يجب الإعلان عن المَعلمات الأخرى المقدَّمة من Google فقط لإلغاء قيمها التلقائية. لمعرفة التفاصيل حول إنشاء أرقام التعريف والمفاتيح، يُرجى الاطّلاع على مقالة المَعلمات المقدَّمة من Google.
يمكنك أيضًا تحديد مَعلمات خاصة بالمستودع في ملف الإعدادات.
تمرير ملف الإعدادات إلى الموصّل
يمكنك ضبط خاصية النظام 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.
تستدعي حزمة تطوير البرامج (SDK) طريقة initConfig() بعد أن تستدعي طريقة main() طريقة Application.build(). تنفّذ طريقة initConfig() ما يلي:
- التأكّد من عدم تهيئة
Configurationمن قبل - تهيئة عنصر
Configurationباستخدام أزواج المفتاح والقيمة المقدَّمة من Google
تنفيذ واجهة Repository
يزامن عنصر Repository هويات المستودع مع هويات Google. عند استخدام نموذج، ما عليك سوى إلغاء طرق معيّنة. بالنسبة إلى FullSyncIdentityConnector، يجب إلغاء الطرق التالية:
init(): للإعداد والتهيئةlistUsers(): لمزامنة جميع المستخدمينlistGroups(): لمزامنة جميع المجموعات- (اختياري)
close(): للتنظيف أثناء الإيقاف
الحصول على مَعلمات الإعدادات المخصّصة
يمكنك استرداد المَعلمات المخصّصة من عنصر Configuration، عادةً في طريقة init(). يوضّح المقتطف التالي كيفية استرداد مسارات CSV:
للحصول على مَعلمة تحتوي على عدة قيم وتحليلها، استخدِم أحد المحلّلات اللغوية للنوع في فئة Configuration لتحليل البيانات إلى أجزاء منفصلة.
يستخدم المقتطف التالي، من موصّل البرنامج التعليمي، طريقة
getMultiValue
للحصول على قائمة بأسماء مستودعات GitHub:
الحصول على عملية الربط لجميع المستخدمين
يمكنك إلغاء listUsers() لاسترداد عمليات ربط المستخدمين. تقبل هذه الطريقة نقطة تحقّق لاستئناف المزامنة في حال انقطاعها. لكل مستخدم:
- احصل على عملية الربط بين هوية Google والهوية الخارجية.
- يمكنك تجميع الزوج في المكرّر الذي تعرضه
listUsers().
الحصول على عملية ربط مستخدم
يوضّح هذا المقتطف كيفية استرداد عمليات ربط الهوية من ملف CSV:
تجميع عملية ربط مستخدم في مكرّر
تعرض طريقة listUsers() عنصر
CheckpointCloseableIterable
من
IdentityUser
عناصر.
الحصول على مجموعة
يمكنك إلغاء listGroups() لاسترداد المجموعات وأعضائها. تقبل هذه الطريقة نقطة تحقّق. لكل مجموعة:
- احصل على المجموعة وأعضائها.
- يمكنك تجميعها في المكرّر الذي تعرضه
listGroups().
الحصول على هوية المجموعة
يوضّح هذا المقتطف كيفية استرداد المجموعات والأعضاء من ملف CSV:
تجميع المجموعة والأعضاء في مكرّر
تعرض طريقة listGroups() عنصر CheckpointCloseableIterable من
IdentityGroup
عناصر.
الخطوات التالية
- (اختياري) يمكنك تنفيذ
close()لتحرير الموارد. - (اختياري) يمكنك إنشاء موصّل محتوى.