لا تتعرّف Google Cloud Search تلقائيًا إلا على هويات Google المخزّنة في دليل Google Cloud (المستخدمون والمجموعات). تُستخدَم أدوات ربط الهويات ل مزامنة هويات مؤسستك مع هويات Google التي يستخدمها Google Cloud Search.
توفّر Google الخيارات التالية لتطوير أدوات ربط الهوية:
حزمة تطوير البرامج (SDK) لموصِّل الهوية هذا الخيار مخصّص للمطوّرين الذين يستخدمون لغة البرمجة Java. حزمة SDK لموصّل الهوية هي حزمة برمجية ملفّقة حول واجهة برمجة التطبيقات REST API تتيح لك إنشاء موصّلات بسرعة. لإنشاء موصِّل هوية باستخدام حزمة تطوير البرامج (SDK)، راجِع مقالة إنشاء موصِّل هوية باستخدام حزمة تطوير البرامج (SDK) لموصِّل الهوية.
واجهة برمجة تطبيقات REST ومكتبات واجهة برمجة التطبيقات ذات المستوى المنخفض هذه الخيارات مخصّصة للمطوّرين الذين قد لا يستخدمون لغة Java في البرمجة أو الذين تتلاءم قاعدة الرموز البرمجية لديهم بشكل أفضل مع استخدام واجهة برمجة التطبيقات REST API أو مكتبة. لإنشاء موصِّل هوية باستخدام واجهة برمجة التطبيقات REST API، يُرجى الرجوع إلى Directory API: حسابات المستخدمين للحصول على معلومات عن ربط المستخدمين ومستندات 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>
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 ويستخدمها جميع الموصِّلات. يجب الإفصاح عن المَعلمات التالية التي تقدّمها Google في ملف الإعدادات:
- بالنسبة إلى مُوصِّل المحتوى، يجب الإفصاح عن
api.sourceId
وapi.serviceAccountPrivateKeyFile
لأنّ هاتين المَعلمتَين تحدّدان الموقع الجغرافي للمستودع والمفتاح الخاص اللازمَين للوصول إلى المستودع.
- بالنسبة إلى أداة ربط الهوية، يجب تحديد
api.identitySourceId
لأنّ هذه القيمة تحدد الموقع الجغرافي لمصدر الهوية الخارجي. إذا كنت تتمكّن من مزامنة المستخدمين، عليك أيضًا الإفصاح عنapi.customerId
باعتباره المعرّف الفريد لحساب مؤسستك على Google Workspace.
ما لم تكن تريد إلغاء القيم التلقائية للمَعلمات الأخرى التي تقدّمها Google، ليس عليك الإفصاح عنها في ملف الإعداد. للحصول على معلومات إضافية عن مَعلمات الضبط التي تقدّمها Google، مثل كيفية إنشاء أرقام تعريف ومفاتيح معيّنة، يُرجى الرجوع إلى مَعلمات الضبط التي تقدّمها Google.
يمكنك أيضًا تحديد المَعلمات الخاصة بالمستودع لاستخدامها فيملف الإعدادات.
تمرير ملف الإعداد إلى الموصِّل
اضبط سمة النظام config
لتمرير ملف الضبط إلى
الموصِّل. يمكنك ضبط السمة باستخدام الوسيطة -D
عند بدء
الموصّل. على سبيل المثال، يبدأ الأمر التالي الموصِّل
باستخدام ملف الضبط MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
إذا لم تكن هذه الوسيطة متوفّرة، يحاول حِزم تطوير البرامج (SDK) الوصول إلى ملف إعدادات default
بعنوان connector-config.properties
.
إنشاء موصِّل هوية للمزامنة الكاملة باستخدام فئة نموذج
تحتوي حزمة تطوير البرامج (SDK) لموصِّل الهوية على FullSyncIdentityConnector
فئة نموذج
يمكنك استخدامها لمزامنة جميع المستخدمين والمجموعات من مستودع هوية
مع هويات Google. يوضّح هذا القسم كيفية استخدام نموذج
FullSyncIdentityConnector
لإجراء مزامنة كاملة للمستخدمين والمجموعات من مستودع هوية غير تابع لخدمة Google.
يشير هذا القسم من المستندات إلى مقتطفات رمز من ملف IdentityConnecorSample.java
. يقرأ هذا المثال هوية
المستخدم والمجموعة من ملفي CSV ويقوم بمزامنتهما مع هويات Google.
تنفيذ نقطة دخول الموصِّل
نقطة الدخول إلى الموصّل هي main()
. تتمثل المهمة الأساسية لهذه الطريقة في إنشاء مثيل لفئة
Application
وتشغيل أسلوب
start()
لتشغيل الموصّل.
قبل استدعاء
application.start()
،
استخدِم فئة
IdentityApplication.Builder
لإنشاء مثيل لنموذج
FullSyncIdentityConnector
. يقبل العنصر FullSyncIdentityConnector
ملفًا شخصيًا
Repository
ستنفِذ أساليبه.
يوضّح المقتطف التالي من الرمز البرمجي كيفية تنفيذ الطريقة main()
:
من وراء الكواليس، تستدعي حزمة تطوير البرامج (SDK) الأسلوب
initConfig()
بعد أن تستدعي طريقة main()
في أداة الربط
Application.build
.
تؤدي الطريقة initConfig()
المهام التالية:
- تستدعي الوسيطة
Configuation.isInitialized()
للتأكّد من عدم بدء معالجةConfiguration
. - يبدأ عنصر
Configuration
باستخدام أزواج ملفّات تعريف الارتباط التي تقدّمها Google. يتم تخزين كل زوج مفتاح/قيمة في عنصرConfigValue
ضمن عنصرConfiguration
.
تنفيذ واجهة Repository
الغرض الوحيد من عنصر Repository
هو تنفيذ عملية
مزامنة هويات المستودع مع هويات Google. عند استخدام
نموذج، ما عليك سوى إلغاء طرق معيّنة ضمن واجهة
Repository
لإنشاء موصِّل هوية. بالنسبة إلى
FullTraversalConnector
، من المحتمل أن تلغي الطرق التالية:
الطريقة
init()
لتنفيذ أي عملية إعداد وبدء لمستودع الهوية، يمكنك إلغاء طريقة init().الطريقة
listUsers()
لمزامنة جميع المستخدمين في مستودع الهوية مع مستخدمي Google، يمكنك إلغاء طريقةlistUsers()
.الطريقة
listGroups()
لمزامنة جميع المجموعات في مستودع الهوية مع "مجموعات Google"، استبدِل طريقةlistGroups()
.(اختياري) أسلوب
close()
إذا كنت بحاجة إلى تنفيذ عملية تنظيف للمستودع، يمكنك إلغاء طريقةclose()
. يتمّ استدعاء هذه الطريقة مرّة واحدة أثناء إيقاف الموصّل.
الحصول على مَعلمات الضبط المخصّصة
كجزء من التعامل مع إعدادات الموصّل، عليك الحصول على أي
مَعلمات مخصّصة من كائن
Configuration
. يتم تنفيذ هذه المهمة عادةً في أسلوب
Repository
class's
init()
.
تحتوي فئة Configuration
على عدة طرق للحصول على أنواع بيانات مختلفة
من إحدى الإعدادات. تُعرِض كل طريقة كائنًا
ConfigValue
. ستستخدم بعد ذلك العنصر ConfigValue
get()
لاسترداد القيمة الفعلية.
يوضِّح المقتطف التالي كيفية استرداد قيمة userMappingCsvPath
و
groupMappingCsvPath
من عنصر Configuration
:
للحصول على مَعلمة تحتوي على عدة قيم وتحليلها، استخدِم أحد أدوات تحليل أنواع فئة
Configuration
لتحليل البيانات إلى أجزاء منفصلة.
تستخدم المقتطف التالي، من الدليل التعليمي للموصّل، الأسلوب
getMultiValue
للحصول على قائمة بأسماء مستودعات GitHub:
الحصول على التعيين لجميع المستخدمين
يمكنك إلغاء الربط
listUsers()
لاسترداد عملية الربط لجميع المستخدمين من مستودع الهوية. تقبل الطريقة
listUsers()
نقطة تفتيش تمثّل آخر هوية تتم
مزامنتها. يمكن استخدام نقطة التحقق لاستئناف المزامنة في حال تعطُّل العملية. بالنسبة إلى كل مستخدم في مستودعك، عليك تنفيذ الخطوات التالية في
طريقة listUsers()
:
- الحصول على عملية ربط تتألف من هوية Google والهوية الخارجية المرتبط بها
- احرِص على تجميع الزوج في عنصر تكرار يعرضه الأسلوب
listUsers()
.
الحصول على تعيين مستخدم
يوضِّح المقتطف التالي من الرمز البرمجي كيفية استرداد عمليات ربط الهوية المخزّنة في ملف CSV:
تجميع تعيين مستخدم في أداة تكرار
تُرجِع الطريقة listUsers()
Iterator
، وتحديدًا CheckpointCloseableIterable
،
من
IdentityUser
كائنات. يمكنك استخدام فئة
CheckpointClosableIterableImpl.Builder
لإنشاء مكرّر وإرجاعه. يوضّح المقتطف التالي من الرمز البرمجي كيفية
تجميع كل تعيين في قائمة وإنشاء الموسّع من تلك
القائمة:
الحصول على مجموعة
يمكنك إلغاء الإعدادات
listGroups()
لاسترجاع جميع المجموعات وأعضائها من مستودع
الهوية. تقبل الطريقة listGroups()
نقطة تفتيش تمثّل آخر هوية
يتم مزامنتها. يمكن استخدام نقطة التحقق لاستئناف المزامنة في حال تعطُّل
العملية. لكل مستخدم في مستودعك، عليك تنفيذ
الخطوات التالية في طريقة listGroups()
:
- الحصول على المجموعة وأعضائها
- حِزم كل مجموعة وأعضاء في عنصر تكرار يعرضه الأسلوب
listGroups()
الحصول على هوية المجموعة
يوضِّح المقتطف التالي من الرمز البرمجي كيفية استرداد المجموعات والأعضاء المخزّنة في ملف CSV:
تجميع المجموعة والأعضاء في أداة تكرار
تُرجِع الطريقة listGroups()
Iterator
، وتحديدًا CheckpointCloseableIterable
،
من
IdentityGroup
كائنات.
يمكنك استخدام فئة
CheckpointClosableIterableImpl.Builder
لإنشاء مكرّر وإرجاعه. يوضّح المقتطف التالي من الرمز البرمجي كيفية
تجميع كل مجموعة وأعضاء في قائمة وإنشاء الموسّع من تلك
القائمة:
الخطوات التالية
في ما يلي بعض الخطوات التالية التي يمكنك اتّخاذها:
- (اختياري) نفِّذ الطريقة close() لتحرير أي موارد قبل إيقاف البرنامج.
- (اختياري) أنشئ رابط محتوى باستخدام حزمة SDK لرابط المحتوى.