به طور پیشفرض، Google Cloud Search فقط هویتهای Google ذخیره شده در فهرست Google Cloud (کاربران و گروهها) را شناسایی میکند. رابطهای هویت برای همگامسازی هویت شرکت شما با هویتهای Google مورد استفاده توسط Google Cloud Search استفاده میشوند.
Google گزینه های زیر را برای توسعه اتصال دهنده های هویت ارائه می دهد:
Identity Connector SDK. این گزینه برای توسعه دهندگانی است که به زبان برنامه نویسی جاوا برنامه نویسی می کنند. Identity Connector SDK یک بسته بندی در اطراف REST API است که به شما امکان می دهد به سرعت کانکتور ایجاد کنید. برای ایجاد یک رابط هویت با استفاده از SDK، به ایجاد رابط هویت با استفاده از SDK اتصال هویت مراجعه کنید.
یک REST API و کتابخانه های API سطح پایین. این گزینهها برای توسعهدهندگانی هستند که ممکن است در جاوا برنامهنویسی نکنند یا پایگاه کدشان بهتر است یک REST API یا یک کتابخانه را در خود جای دهد. برای ایجاد یک رابط هویتی با استفاده از REST API، برای اطلاعات در مورد کاربران نقشه برداری به Directory API: User Accounts و برای اطلاعات در مورد گروه های نقشه برداری Cloud Identity Documentation مراجعه کنید.
با استفاده از Identity Connector SDK یک رابط هویت ایجاد کنید
یک اتصال دهنده هویت معمولی وظایف زیر را انجام می دهد:
- کانکتور را پیکربندی کنید.
- همه کاربران را از سیستم هویت سازمانی خود بازیابی کنید و آنها را برای همگام سازی با هویت های Google به Google ارسال کنید.
- همه گروه ها را از سیستم هویت سازمانی خود بازیابی کنید و آنها را برای همگام سازی با هویت های Google به Google ارسال کنید.
وابستگی ها را تنظیم کنید
برای استفاده از SDK باید وابستگی های خاصی را در فایل ساخت خود قرار دهید. برای مشاهده وابستگی های محیط ساخت خود، روی یک تب زیر کلیک کنید:
ماون
<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
را اعلام کنید زیرا این پارامتر مکان منبع هویت خارجی شما را مشخص می کند. اگر کاربران را همگامسازی میکنید، بایدapi.customerId
بهعنوان شناسه منحصربهفرد برای حساب Google Workspace شرکت خود نیز اعلام کنید.
مگر اینکه بخواهید مقادیر پیشفرض سایر پارامترهای ارائهشده توسط 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 می خواند و آنها را با شناسه های گوگل همگام می کند.
نقطه ورودی کانکتور را پیاده سازی کنید
نقطه ورود به یک کانکتور روش 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 Groups، روشlistGroups()
لغو کنید.(اختیاری) متد
close()
. اگر نیاز به پاکسازی مخزن دارید، متدclose()
را لغو کنید. این روش یک بار در هنگام خاموش شدن کانکتور فراخوانی می شود.
پارامترهای پیکربندی سفارشی را دریافت کنید
به عنوان بخشی از مدیریت پیکربندی کانکتور خود، باید هر پارامتر سفارشی را از شی Configuration
دریافت کنید. این کار معمولاً در متد init()
کلاس Repository
انجام می شود.
کلاس Configuration
چندین روش برای دریافت انواع داده های مختلف از یک پیکربندی دارد. هر متد یک شی ConfigValue
برمی گرداند. سپس از متد get()
شی ConfigValue
برای بازیابی مقدار واقعی استفاده خواهید کرد. قطعه زیر نحوه بازیابی مقدار 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 را برای آزاد کردن هر منبعی قبل از خاموش شدن اجرا کنید.
- (اختیاری) با استفاده از Content Connector SDK یک رابط محتوا ایجاد کنید .