כברירת מחדל, Google Cloud Search מזהה רק זהויות של Google בספרייה של Google Cloud. משתמשים במחברי זהויות כדי לסנכרן זהויות ארגוניות עם הזהויות של Google שבהן נעשה שימוש ב-Cloud Search.
Google מספקת את האפשרויות הבאות לפיתוח מחברי זהויות:
Identity Connector SDK: הכי מתאים למתכנתי Java. ערכת ה-SDK היא עטיפה (wrapper) של API בארכיטקטורת REST שמאפשרת ליצור מחברים במהירות. כדי להשתמש ב-SDK, אפשר לעיין במאמר בנושא יצירת מחבר זהויות באמצעות Identity Connector SDK.
API בארכיטקטורת REST וספריות API ברמה נמוכה: מתאים במיוחד למתכנתים שלא משתמשים ב-Java. כדי ליצור מחבר זהויות באמצעות API בארכיטקטורת REST, אפשר לעיין במאמר בנושא Directory API: User Accounts למיפוי משתמשים ובמאמר בנושא Google Cloud Identity documentation למיפוי קבוצות.
יצירת מחבר זהויות באמצעות Identity Connector SDK
מחבר זהויות טיפוסי מבצע את המשימות הבאות:
- הגדרת המחבר.
- מאחזר משתמשים ממערכת הזהויות שלכם ושולח אותם אל Google.
- הכלי מאחזר קבוצות ממערכת הזהויות שלכם ושולח אותן ל-Google.
הגדרת יחסי תלות
כוללים את התלויות האלה בקובץ ה-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 לכל המחברים. צריך להצהיר על הפרטים הבאים בקובץ ההגדרות:
- מחבר תוכן: צריך להצהיר על
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() אחרי ששולחים קריאה ל-method main() שלכם
Application.build(). השיטה initConfig():
- מוודאים שהרכיב
Configurationלא אותחל כבר. - הפונקציה מאתחלת את האובייקט
Configurationעם צמדי מפתח/ערך שסופקו על ידי Google.
הטמעה של ממשק המאגר
אובייקט 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()כדי לשחרר משאבים. - (אופציונלי) יוצרים מחבר תוכן.