כברירת מחדל, Google Cloud Search מזהה רק זהויות של Google שמאוחסנות בספרייה של Google Cloud (משתמשים וקבוצות). מחברי זהויות משמשים לסנכרון הזהויות של הארגון עם הזהויות של Google שמשמשות את Google Cloud Search.
Google מספקת את האפשרויות הבאות לפיתוח מחברי זהויות:
SDK של מחבר הזהויות. האפשרות הזו מיועדת למפתחים שמתכנתים בשפת התכנות Java. ערכת ה-SDK של Identity Connector היא wrapper סביב ה-API ל-REST, שמאפשרת ליצור מחברים במהירות. כדי ליצור מחבר זהויות באמצעות ה-SDK, אפשר לעיין במאמר יצירת מחבר זהויות באמצעות Identity Connector SDK.
REST API וספריות API ברמה נמוכה. האפשרויות האלה מיועדות למפתחים שאולי לא מתכנתים ב-Java או שבסיס הקוד שלהם מתאים יותר ל-REST API או לספרייה. כדי ליצור מחבר זהויות באמצעות REST API, אפשר לעיין במאמר Directory API: User Accounts לקבלת מידע על מיפוי משתמשים, ובCloud Identity Documentation לקבלת מידע על מיפוי קבוצות.
יצירת מחבר זהויות באמצעות Identity Connector SDK
מחבר זהויות טיפוסי מבצע את המשימות הבאות:
- מגדירים את המחבר.
- שליפת כל המשתמשים ממערכת הזהויות הארגונית ושליחתם אל Google לצורך סנכרון עם הזהויות ב-Google.
- מאחזרים את כל הקבוצות ממערכת ניהול הזהויות של הארגון ושולחים אותן ל-Google כדי לסנכרן אותן עם הזהויות ב-Google.
הגדרת יחסי תלות
כדי להשתמש ב-SDK, צריך לכלול יחסי תלות מסוימים בקובץ ה-build. לוחצים על אחת מהכרטיסיות שלמטה כדי לראות את התלויות של סביבת ה-build:
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 מנסה לגשת לקובץ הגדרות ברירת מחדל בשם connector-config.properties
.
יצירת מחבר זהויות לביצוע סנכרון מלא באמצעות מחלקת תבנית
ערכת ה-SDK של Identity Connector מכילה מחלקת תבנית 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
init()
.
במחלקה Configuration
יש כמה שיטות לקבלת סוגים שונים של נתונים מההגדרה. כל שיטה מחזירה אובייקט ConfigValue
. לאחר מכן משתמשים בשיטה get()
של האובייקט ConfigValue
כדי לאחזר את הערך בפועל.
בדוגמה הבאה מוצג קטע קוד שמראה איך לאחזר את הערך של userMappingCsvPath
ושל groupMappingCsvPath
מאובייקט Configuration
:
כדי לקבל ולנתח פרמטר שמכיל כמה ערכים, צריך להשתמש באחד ממנתחי הסוגים של המחלקה Configuration
כדי לנתח את הנתונים לחלקים נפרדים.
בקטע הקוד הבא, מתוך מחבר הנתונים של המדריך, נעשה שימוש בשיטה getMultiValue
כדי לקבל רשימה של שמות מאגרי GitHub:
קבלת המיפוי לכל המשתמשים
מחליפים את listUsers()
כדי לאחזר את המיפוי של כל המשתמשים ממאגר הזהויות. השיטה
listUsers()
מקבלת נקודת ביקורת שמייצגת את הזהות האחרונה שסונכרנה. אפשר להשתמש בנקודת הבדיקה כדי להמשיך את הסנכרון אם התהליך מופסק. לכל משתמש במאגר, תבצעו את השלבים הבאים בשיטה listUsers()
:
- קבלת מיפוי שכולל את הזהות ב-Google ואת הזהות החיצונית שמשויכת אליה.
- אורזים את הצמד לתוך איטרטור שמוחזר על ידי השיטה
listUsers()
.
קבלת מיפוי משתמשים
קטע הקוד הבא מדגים איך לאחזר את מיפויי הזהויות שמאוחסנים בקובץ CSV:
אריזת מיפוי משתמשים באיטרטור
השיטה listUsers()
מחזירה Iterator
, במיוחד CheckpointCloseableIterable
, של אובייקטים מסוג IdentityUser
. אפשר להשתמש במחלקה
CheckpointClosableIterableImpl.Builder
כדי ליצור איטרטור ולהחזיר אותו. בקטע הקוד הבא מוצג אופן האריזה של כל מיפוי ברשימה, והאופן שבו יוצרים את האיטרטור מהרשימה הזו:
קבלת קבוצה
Override
listGroups()
כדי לאחזר את כל הקבוצות והחברים שלהן ממאגר הזהויות. השיטה listGroups()
מקבלת נקודת ביקורת שמייצגת את הזהות האחרונה שסונכרנה. אפשר להשתמש בנקודת הבדיקה כדי להמשיך את הסנכרון אם התהליך מופסק. לכל משתמש במאגר, תבצעו את השלבים האלה בשיטה listGroups()
:
- קבלת הקבוצה והחברים בה.
- החבילה של כל קבוצה והחברים בה מועברת לאיטרטור שמוחזר על ידי השיטה
listGroups()
.
קבלת זהות הקבוצה
קטע הקוד הבא מדגים איך לאחזר את הקבוצות והחברים שמאוחסנים בקובץ CSV:
אריזת הקבוצה והחברים שלה באיטרטור
השיטה listGroups()
מחזירה Iterator
, במיוחד CheckpointCloseableIterable
, של אובייקטים מסוג IdentityGroup
.
אפשר להשתמש במחלקה
CheckpointClosableIterableImpl.Builder
כדי ליצור איטרטור ולהחזיר אותו. בקטע הקוד הבא מוצג אופן האריזה של כל קבוצה והחברים בה לרשימה, ויצירת האיטרטור מהרשימה הזו:
השלבים הבאים
הנה כמה שלבים אפשריים:
- (אופציונלי) מטמיעים את השיטה close() כדי לשחרר משאבים לפני כיבוי.
- (אופציונלי) יוצרים מחבר תוכן באמצעות Content Connector SDK.