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