به طور پیشفرض، جستجوی ابری گوگل فقط هویتهای گوگل را در فهرست راهنمای ابری گوگل شناسایی میکند. از رابطهای هویت برای همگامسازی هویتهای سازمانی با هویتهای گوگلی که جستجوی ابری استفاده میکند، استفاده کنید.
گوگل این گزینهها را برای توسعه رابطهای هویتی ارائه میدهد:
کیت توسعه نرمافزاری Identity Connector: بهترین گزینه برای برنامهنویسان جاوا. این کیت، پوششی پیرامون REST API است که به شما امکان میدهد به سرعت کانکتورها را ایجاد کنید. برای استفاده از SDK، به بخش «ایجاد کانکتور هویت با استفاده از SDK Identity Connector» مراجعه کنید.
یک API سطح پایین REST و کتابخانههای API: بهترین گزینه برای برنامهنویسان غیر جاوا. برای ایجاد یک رابط هویت با استفاده از REST API، برای نگاشت کاربران به Directory API: User Accounts و برای نگاشت گروهها به مستندات Google Cloud Identity مراجعه کنید.
با استفاده از 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) شامل پارامترهای ارائه شده توسط گوگل برای همه کانکتورها است. شما باید موارد زیر را در فایل پیکربندی خود اعلام کنید:
- رابط محتوا :
api.sourceIdوapi.serviceAccountPrivateKeyFileرا تعریف کنید. اینها مخزن شما و کلید خصوصی مورد نیاز برای دسترسی را مشخص میکنند.
- رابط هویت : برای شناسایی منبع هویت خارجی خود،
api.identitySourceIdرا تعریف کنید. برای همگامسازی کاربر،api.customerId(شناسه منحصر به فرد برای حساب Google Workspace شما) را نیز تعریف کنید.
پارامترهای ارائه شده توسط گوگل را فقط طوری تعریف کنید که مقادیر پیشفرض آنها لغو شود. برای جزئیات بیشتر در مورد تولید شناسهها و کلیدها، به پارامترهای ارائه شده توسط گوگل مراجعه کنید.
همچنین میتوانید پارامترهای مختص مخزن را در فایل پیکربندی خود تعریف کنید.
فایل پیکربندی را به کانکتور ارسال کنید
ویژگی سیستم 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 پس از فراخوانی Application.build() ) توسط متد main() شما، تابع initConfig() () را فراخوانی میکند. متد initConfig() به صورت زیر است:
- اطمینان حاصل میکند که
Configurationاز قبل مقداردهی اولیه نشده است. - شیء
Configurationرا با جفتهای کلید-مقدار ارائه شده توسط گوگل، مقداردهی اولیه میکند.
پیادهسازی رابط مخزن (Repository)
شیء Repository هویتهای مخزن را با هویتهای گوگل همگامسازی میکند. هنگام استفاده از یک الگو، فقط باید متدهای خاصی را بازنویسی کنید. برای FullSyncIdentityConnector ، این متدها را بازنویسی کنید:
-
init(): برای راهاندازی و مقداردهی اولیه. -
listUsers(): برای همگامسازی همه کاربران. -
listGroups(): برای همگامسازی همه گروهها. - (اختیاری)
close(): برای پاکسازی در حین خاموش شدن سیستم.
دریافت پارامترهای پیکربندی سفارشی
پارامترهای سفارشی را از شیء Configuration ، معمولاً در متد init() بازیابی کنید. قطعه کد زیر نحوه بازیابی مسیرهای CSV را نشان میدهد:
برای دریافت و تجزیه یک پارامتر حاوی چندین مقدار، از یکی از تجزیهکنندههای نوع کلاس Configuration برای تجزیه دادهها به تکههای گسسته استفاده کنید. قطعه کد زیر، از رابط آموزشی، از متد getMultiValue برای دریافت لیستی از نامهای مخزن GitHub استفاده میکند:
نقشه برداری را برای همه کاربران دریافت کنید
برای بازیابی نگاشتهای کاربر، تابع listUsers() را نادیده بگیرید. این متد یک نقطهی بررسی میپذیرد تا در صورت قطع شدن، همگامسازی را از سر بگیرد. برای هر کاربر:
- نگاشت بین هویت گوگل و هویت خارجی را دریافت کنید.
- این جفت را در تکرارکنندهای که توسط
listUsers()برگردانده میشود، بستهبندی کنید.
نقشه کاربری دریافت کنید
این قطعه کد بازیابی نگاشتهای هویت از یک فایل CSV را نشان میدهد:
بستهبندی نگاشت کاربر در یک تکرارکننده
متد listUsers() یک CheckpointCloseableIterable از اشیاء IdentityUser برمیگرداند.
یک گروه دریافت کنید
برای بازیابی گروهها و اعضای آنها، تابع listGroups() را بازنویسی کنید. این متد یک Checkpoint میپذیرد. برای هر گروه:
- گروه و اعضای آن را دریافت کنید.
- آنها را در تکرارکنندهای که توسط
listGroups()برگردانده میشود، بستهبندی کنید.
دریافت شناسه گروه
این قطعه کد بازیابی گروهها و اعضا از یک فایل CSV را نشان میدهد:
گروه و اعضا را در یک تکرارکننده بستهبندی کنید
متد listGroups() یک CheckpointCloseableIterable از اشیاء IdentityGroup را برمیگرداند.
مراحل بعدی
- (اختیاری) برای آزادسازی منابع، تابع
close()را پیادهسازی کنید. - (اختیاری) یک رابط محتوا ایجاد کنید .