פריסת מחבר Microsoft SharePoint On-Prem

אתם יכולים להגדיר את Google Cloud Search כך שיחזיר תוצאות מתוכן SharePoint on-premises של הארגון שלכם, בנוסף לתוכן ב-Google Workspace. אתם משתמשים במחבר Google Cloud Search SharePoint On-Prem ומגדירים אותו כדי לגשת למקור נתונים ספציפי של SharePoint.

שיקולים חשובים

הגדרות SharePoint שנשמרות

המחבר של Cloud Search SharePoint On-Prem תמיד מכבד את ההגדרה Search Visibility ב-SharePoint, ואי אפשר לבטל את ההגדרה הזו. במסמכי טיוטה, ההרשאות בחשבון המשתמש (שהמחבר משתמש בו כדי לגשת ל-SharePoint Online) קובעות אילו מסמכי טיוטה יאונדקסו ויוחזרו. אם בחשבון יש רק הרשאות 'קריאה מלאה', המחבר יפעל בהתאם להגדרות של 'חשיפת פריט טיוטה' ב-SharePoint.

אפשר גם להגדיר את המחבר כך שיגביל את התוצאות על סמך הגישה לחשבון המשתמש. אפשר להשתמש בחשבונות משתמשים של Google ובחשבונות משתמשים חיצוניים כדי להגדיר רשימות ACL. כדי להחיל חיתוך הרשאות על תוכן ב-SharePoint, צריך לסנכרן את הזהויות החיצוניות הבאות עם ספריית Google:

  • משתמשים ב-Active Directory
  • קבוצות Active Directory
  • קבוצות מקומיות ב-SharePoint (עם משתמשים וקבוצות ב-Active Directory כחברים)

כדי לסנכרן משתמשים וקבוצות ב-AD, משתמשים ב-Google Cloud Directory Sync ומפעילים קבוצות עם מיפוי זהויות. כדי לסנכרן קבוצות מקומיות של SharePoint, משתמשים ב-SharePoint Identity Connector.

בנוסף, המחבר צריך לבצע חיפוש ב-AD כדי לאחזר מידע נוסף ולסנכרן את חשבונות המשתמש. לדוגמה, חיפוש באמצעות AD מאפשר למחבר לבצע את הפעולות הבאות:

  • ממפים את ה-SID של קבוצת דומיין לשם החשבון התואם (sAMAccountName).
  • מיפוי של sAMAccountName של משתמש לכתובת האימייל של חברים בקבוצה מקומית ב-SharePoint.

אופטימיזציה של החיפוש

כדי לשפר את חוויית המשתמשים, אפשר להגדיר את המחבר כך שיחזיר תוצאות חיפוש רלוונטיות יותר.

כדי להשתמש ב-API, צריך להגדיר ערכים לפרמטרים של יצירת HTML בקובץ ההגדרה של המחבר SharePoint Online. הפרמטרים האלה מאפשרים לכם להגדיר אילו שדות ישפיעו יותר או פחות על ההתאמות.

כדי להגדיר סכימה, פועלים לפי ההוראות במאמר בנושא יצירה ורישום של סכימה. כשמגדירים סכימה:

  • כדי למפות את השמות של סוגי התוכן ב-SharePoint להגדרות האובייקט המתאימות, המחבר מבצע נורמליזציה של השמות של סוגי התוכן על ידי החרגה של תווים לא נתמכים. בהגדרות של אובייקטים, Cloud Search API תומך רק בתווים A-Z,‏ a-z ו-0-9 כתווים תקינים. לדוגמה, סוג התוכן 'הודעות' ממופה להגדרת האובייקט 'הודעות'. סוג התוכן News Article (מאמר חדשותי) ממופה ל-NewsArticle (ללא רווח).

  • אם המחבר לא מצליח להתאים הגדרת אובייקט להגדרת אובייקט, הוא משתמש בסוג האובייקט של ברירת המחדל (itemMetadata.objectType). מידע נוסף על פרמטרים להגדרת מטא-נתונים

  • כדי למפות שמות של מאפיינים ב-SharePoint להגדרות של מאפיינים, המחבר מבצע נורמליזציה של שמות המאפיינים על ידי פענוח של תווים שמקודדים בפורמט הקסדצימלי והסרה של התחיליות ows_, ואז מוציא מהרשימה תווים לא נתמכים (כל התווים חוץ מ-A-Z,‏ a-z ו-0-9).

טיפול בהודעות ב-Microsoft Outlook

כשהמחבר נתקל בקובצי ‎ .msg של Microsoft Outlook בזמן שהוא מבצע אינדוקס של התוכן, הוא מבטל את סוג המדיה של הקבצים ומבצע אינדוקס שלהם כ-application/vnd.ms-outlook.

הגדרות של דירות שותפים

אם SharePoint שלכם הוא פריסה מרובת דיירים, שבה כמה אתרים של לקוחות מתארחים באותה אפליקציית אינטרנט, אתם צריכים להגדיר מצב של אוסף אתרים בקובץ ההגדרות. בפריסות מרובות דיירים, אתם מקבלים הרשאות רק לאוסף האתרים שלכם ולא יכולים לקבל הרשאות Full Read, כפי שנדרש על ידי המחבר של SharePoint On-Prem.

כדי להפעיל את מצב אוסף האתרים:

  • נותנים לחשבון המשתמש של כלי החיבור הרשאות של מנהל אוסף אתרים.
  • מגדירים את sharepoint.server בקובץ ההגדרות של המחבר לכתובת ה-URL של אוסף האתרים, כמו http://sharepoint.example.com/sites/sitecollection. כתובת ה-URL לא צריכה להיות זהה לכתובת ב-SharePoint מבחינת אותיות רישיות וקטנות.
  • מגדירים את sharepoint.siteCollectionOnly בקובץ התצורה של המחבר לערך true.

אם יש לכם כמה אוספי אתרים שאתם רוצים להוסיף לאינדקס בסביבה מרובת דיירים, אתם צריכים להגדיר מופע מחבר אחד לכל אחד מאוספי האתרים.

מגבלות ידועות של מחברים

  • הזמן שנדרש למחבר כדי לזהות שינויים בפריטים במסדי הנתונים עולה ככל שמספר מסדי הנתונים שהמחבר עוקב אחריהם גדול יותר.
  • צריכת הזיכרון גדלה עם מספר המשתמשים והקבוצות הייחודיים שבהם משתמשים ברשימות ACL לכל אוסף אתרים.
  • אפשר להגדיר את המחבר עם זהויות רק מדומיין אחד של Active Directory.
  • חלק מהגורמים המרכזיים הנפוצים ב-Active Directory וב-Windows, כמו Everyone, ‏BUILTIN\Users ו-All Authenticated Users, לא נתמכים.
  • ההתראות על מחיקה לא מתקבלות באופן מיידי, ויכול להיות שיעברו יותר מ-4 שעות עד שהמחבר יזהה שמשתמש מחק תוכן ממאגר המקור.

דרישות מערכת

דרישות מערכת
מערכת הפעלה
  • Windows Server 2016
  • Ubuntu
  • ‫Red Hat Enterprise Linux 5.0
  • ‫SUSE Enterprise Linux 10 (64 bit)
תוכנה
  • שרת SharePoint
    • ‫SharePoint Server 2016
    • SharePoint Server 2013
  • ‫Java JRE 1.8 מותקן במחשב שבו יפעל המחבר של Google Cloud Search SharePoint On-Prem
אימות
  • NTLM
  • Kerberos
  • HTTP Basic
  • ADFS

פריסת המחבר

דרישות מוקדמות

  1. יוצרים מפתח פרטי של Google Workspace, שמכיל את מזהה חשבון השירות. במאמר הגדרת גישה ל-Google Cloud Search API מוסבר איך מקבלים מפתח פרטי.

  2. האדמין ב-Google Workspace צריך להוסיף מקור נתונים לחיפוש. רושמים את מזהה מקור הנתונים.

  3. אם המחבר מחזיר תוצאות שמבוססות על רשימות בקרת גישה (התוצאות לא ציבוריות), האדמין של Google Workspace צריך ליצור שני מקורות זהויות ולתת לכם את המזהים שלהם:

    • מקור זהות לסנכרון משתמשים וקבוצות ב-Active Directory.
    • מקור זהויות לקבוצות מקומיות ב-SharePoint

    האדמין צריך גם לקבל את מספר הלקוח של הארגון ב-Google Workspace ולתת לכם אותו.

    במאמר מיפוי זהויות משתמשים ב-Cloud Search מוסבר איך מקבלים את הערכים האלה.

  4. מגדירים חשבון משתמש למחבר עם הרשאות קריאה מלאה לאפליקציית האינטרנט של SharePoint במדיניות המשתמש.

  5. אם לאפליקציית האינטרנט של SharePoint אין אוסף אתרים בסיסי, צריך ליצור אחד.

  6. אם יש אוספי אתרים שמוגנים מפני כתיבה, צריך להיכנס לשרת SharePoint באמצעות חשבון עם הרשאות אדמין ולהריץ את הסקריפט PrepareWriteLockedSites.ps1.

  7. כדי לקבל מדדים של מקור הנתונים שיעזרו לכם להגדיר את המחבר, צריך להיכנס לשרת SharePoint עם חשבון שיש לו הרשאות אדמין בחוות השרתים ולהריץ את הפקודה diagnose_sp.ps1.

    בפלט מוצגים המספרים של אפליקציות האינטרנט, המסמכים והחברות בקבוצות משתמשים. אפשר להשתמש במידע הזה כדי להעריך כמה מופעים של מחברים צריך, מה דרישות הזיכרון וכמה מסמכים יש.

שלב 1. מתקינים את תוכנת המחבר Google Cloud Search SharePoint On-Prem.

  1. משכפלים את מאגר המחברים מ-GitHub.

    $ git clone https://github.com/google-cloudsearch/sharepoint-connector.git
    $ cd sharepoint-connector
  2. בודקים את הגרסה הרצויה של המחבר:

    $ git checkout tags/latest_version

    כאשר: latest_version = ערך כמו v1-0.0.5

  3. יוצרים את המחבר.

    $ mvn package

    כדי לדלג על בדיקות כשיוצרים את המחבר, מריצים את הפקודה mvn package -DskipTests במקום mvn package.

  4. מעתיקים את קובץ ה-ZIP של המחבר לספריית ההתקנה המקומית:

    $ cp target/google-cloudsearch-sharepoint-connector-latest_version.zip installation-dir
    $ cd installation-dir
    $ unzip google-cloudsearch-sharepoint-connector-latest_version.zip
    $ cd google-cloudsearch-sharepoint-connector-latest_version

שלב 2. יצירת קובץ התצורה של המחבר SharePoint On-Prem

  1. באותה ספרייה שבה מותקן המחבר, יוצרים קובץ. ‫Google ממליצה לתת לקובץ את השם connector-config.properties כדי שלא יהיה צורך בפרמטרים נוספים של שורת הפקודה להפעלת המחבר. אם אתם מתכננים להפעיל הרבה מופעים של מחברים, כדאי להוסיף פרטים לשם כדי להבדיל ביניהם.

  2. מוסיפים פרמטרים כצמדי מפתח/ערך לתוכן הקובץ, כמו בדוגמה הבאה:

    ### Sharepoint On-Prem Connector configuration ###
    
    # Required parameters for data source access
    api.sourceId=08ef8becd116faa4546b8ca2c84b2879
    api.serviceAccountPrivateKeyFile=service_account.json
    api.identitySourceId=08ef8becd116faa475de26d9b291fed9
    
    # Required parameters for SharePoint on-premises access
    sharepoint.server=http://sp-2016:32967/sites/doc-center-site-collection
    sharepoint.siteCollectionOnly=true
    sharepoint.username=contoso\\admin
    sharepoint.password=pa$sw0rd
    sharepoint.stripDomainInUserPrincipals=true
    
    # Required parameters for AD lookup
    adLookup.host=dc.contoso.com
    adLookup.username=contoso\\admin
    adLookup.password=pa$sw0rd
    api.referenceIdentitySources=CONTOSO,contoso
    api.referenceIdentitySource.contoso.id=08ef8becd116faa5d3783f8c5a80e5aa
    api.referenceIdentitySource.CONTOSO.id=08ef8becd116faa5d3783f8c5a80e5aa
    
    # Optional parameters for schema mapping
    contentTemplate.sharepointItem.title=Title
    contentTemplate.sharepointItem.unmappedColumnsMode=APPEND
    

    תיאורים מפורטים של כל פרמטר זמינים במאמר בנושא פרמטרים של הגדרות.

  3. (אופציונלי) מגדירים פרמטרים נוספים של המחבר, לפי הצורך. פרטים נוספים זמינים במאמר בנושא פרמטרים של מחברים שסופקו על ידי Google.

שלב 3. ב-HTTPS, מוסיפים את SharePoint כמארח מהימן

אם SharePoint מוגדר לשימוש ב-HTTPS, צריך לקבל אישור SharePoint כדי להוסיף אותו כמארח מהימן למחבר.

  1. במחשב שבו יפעל המחבר, פותחים דפדפן ועוברים אל SharePoint.

  2. בדף האזהרה שנפתח, לוחצים על I Understand the Risks (אני מבין את הסיכונים) ועל Add Exception (הוספת חריגה). בדף מוצגת הודעה כמו 'החיבור הזה לא מהימן' כי האישור הוא בחתימה עצמית ולא בחתימה של רשות אישורים מהימנה.

  3. כשהלחצן הצגה זמין, לוחצים עליו.

  4. עוברים לכרטיסייה פרטים ולוחצים על ייצוא.

  5. שומרים את האישור בספריית המחבר בשם sharepoint.crt.

  6. לוחצים על סגירה ואז על ביטול כדי לסגור את החלונות.

  7. פותחים שורת פקודה ומזינים את הפקודה הבאה:

    $ keytool -importcert -keystore cacerts.jks -storepass changeit -file sharepoint.crt -alias sharepoint

    כשמוצגת ההודעה 'האם לתת אמון באישור הזה?', עונים כן.

שלב 4. הגדרה של רישום ביומן

  1. בספרייה שמכילה את הקובץ הבינארי של המחבר, יוצרים תיקייה בשם logs.

  2. באותה ספרייה (לא logs), יוצרים קובץ בקידוד Latin1 בשם logging.properties.

  3. מוסיפים את הטקסט הבא ל-logging.properties:

    handlers = java.util.logging.ConsoleHandler,java.util.logging.FileHandler
    # Default log level
    .level = INFO
    # uncomment line below to increase logging level for SharePoint APIsa
    #com.google.enterprise.cloudsearch.sharepoint.level=FINE
    
    # uncomment line below to increase logging level to enable API trace
    #com.google.api.client.http.level = FINE
    java.util.logging.ConsoleHandler.level = INFO
    java.util.logging.FileHandler.pattern=logs/connector-sharepoint.%g.log
    java.util.logging.FileHandler.limit=10485760
    java.util.logging.FileHandler.count=10
    java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
    

שלב 5. הגדרת מחבר הזהויות של SharePoint On-Prem

השלב הזה נדרש כדי להחיל על תוצאות החיפוש רשימות ACL מבוססות-זהות של SharePoint On-Prem. אם הגדרתם את המחבר עם רשימות ACL ציבוריות, אתם יכולים לדלג על השלב הזה.

  1. באותה תיקייה שבה מותקן המחבר של SharePoint Online, יוצרים קובץ ונותנים לו את השם sharepoint-onprem-identity-connector.config.

  2. מוסיפים פרמטרים כצמדי מפתח/ערך לתוכן הקובץ, כמו בדוגמה הבאה:

    ### SharePoint On-prem identity connector configuration ###
    
    # Required parameters for data source access
    api.customerId=C05d3djk8
    api.serviceAccountPrivateKeyFile=service_account.json
    api.identitySourceId=08ef8becd116faa475de26d9b291fed9
    
    # Required parameters for SharePoint access
    sharepoint.server=http://sp-2016:32967/sites/doc-center-site-collection
    sharepoint.siteCollectionOnly=true
    sharepoint.username=contoso\\admin
    sharepoint.password=pa$sw0rd
    sharepoint.stripDomainInUserPrincipals=true
    
    # Required parameters for AD lookup
    adLookup.host=dc.contoso.com
    adLookup.username=contoso\\admin
    adLookup.password=pa$sw0rd
    api.referenceIdentitySources=CONTOSO,contoso
    api.referenceIdentitySource.contoso.id=08ef8becd116faa5d3783f8c5a80e5aa
    api.referenceIdentitySource.CONTOSO.id=08ef8becd116faa5d3783f8c5a80e5aa
    

    הערכים כמעט זהים לאלה של מחבר SharePoint On-Prem, אלא שבמקום api.sourceId, הפרמטר הוא api.customerId. הערך של api.customerId הוא מספר הלקוח שקיבלתם מהאדמין שלכם ב-Google Workspace.

שלב 6. הפעלת המחבר SharePoint On-Prem

בשלבים הבאים, ממפים את הגורמים המורשים ב-Active Directory המקומי ובאוסף האתרים של SharePoint לזהויות בשירות Cloud Identity. הסנכרון הזה מתבצע באמצעות Google Cloud Directory Sync‏ (GCDS) ומחבר הזהויות של SharePoint On-Prem.

אחרי ש-GCDS מסנכרן את המשתמשים והקבוצות, כדי לסנכרן את קבוצות האתרים ב-SharePoint, מריצים את כלי המחבר של הזהויות ב-SharePoint On-Prem. לבסוף, מריצים את המחבר SharePoing On-Prem כדי ליצור אינדקס ולהציג תוצאות למשתמשי Cloud Search.

  1. אם עדיין לא עשיתם זאת, מגדירים ומריצים את GCDS. חשוב להפעיל קבוצות של זהויות ממופות.

  2. מריצים את מחבר הזהויות של SharePoint On-Prem:

    $ java -Djava.util.logging.config.file=logging.properties -cp "google-cloudsearch-sharepoint-connector-version.jar" com.google.enterprise.cloudsearch.sharepoint.SharePointIdentityConnector -Dconfig=sharepoint-onprem-identity-connector.config
  3. מריצים את המחבר SharePoint On-Prem. משתמשים בתחביר הפקודה לאבטחה של אתר SharePoint:

    • ‫HTTP (לא נדרש מארח מהימן):

      $ java -Djava.util.logging.config.file=logging.properties -jar google-cloudsearch-sharepoint-connector-v1-version.jar
    • ‫HTTPS (הוספת SharePoint כמארח מהימן):

      $ java -Djavax.net.ssl.trustStore=cacerts.jks -Djavax.net.ssl.trustStoreType=jks -Djavax.net.ssl.trustStorePassword=changeit -Djava.util.logging.config.file=logging.properties -jar google-cloudsearch-sharepoint-connector-v1-version.jar

הסבר על פרמטרים להגדרה

גישה למקור נתונים

הגדרה פרמטר
מזהה מקור הנתונים api.sourceId=1234567890abcdef

חובה. מזהה מקור הנתונים של Google Cloud Search שהוגדר על ידי האדמין של Google Workspace.

הנתיב לקובץ המפתח הפרטי של חשבון השירות api.serviceAccountPrivateKeyFile=PrivateKey.json

חובה. הנתיב לקובץ המפתח של חשבון השירות של Google Cloud Search.

גישה ל-SharePoint מקומי

הגדרה פרמטר
כתובת ה-URL של שרת SharePoint sharepoint.server=http://yoursharepoint.example.com/

חובה. כתובת ה-URL של שרת SharePoint כשם מארח מלא, כמו http://yoursharepoint.example.com/. אם שם המארח לא מלא, צריך להגדיר החלפת DNS במארח המחבר.

שם המשתמש ב-SharePoint sharepoint.username=YOURDOMAIN\\ConnectorUser

חובה כשמריצים את המחבר ב-Linux או במחשב Windows שלא שייך לדומיין של SharePoint Server AD.

סיסמה ל-SharePoint sharepoint.password=user_password

חובה כשמריצים את המחבר ב-Linux או במחשב Windows שלא שייך לדומיין של SharePoint Server AD.

שימוש באימות בזמן אמת כדי להתחבר ל-SharePoint sharepoint.username=AdaptorUser Live Authentication Id

sharepoint.password uS3R_passWoRD

sharepoint.formsAuthenticationMode=LIVE

שימוש באימות ADFS כדי להתחבר ל-SharePoint sharepoint.username=AdaptorUser@yourdomain.com

sharepoint.password=uS3R_passWoRD

sharepoint.sts.endpoint=https://adfs.example.com/adfs/services/trust/2005/usernamemixed

sharepoint.sts.realm=urn:myserver:sharepoint או https://yoursharepoint.example.com/_trust

sharepoint.formsAuthenticationMode=ADFS

הוספה לאינדקס של אוסף אתרים

הגדרה פרמטר
סוג האינדקס sharepoint.siteCollectionOnly=boolean

אופציונלי, למעט פריסות של SharePoint עם כמה דיירים (מידע נוסף). הגדרה לערך true כדי שהמחבר sharepoint.server יאנדקס כקבוצת אתרים ולא כשרת וירטואלי. ברירת המחדל היא null (זיהוי אוטומטי).

מיפוי זהויות ב-SharePoint

הגדרה פרמטר
המזהה של מקור הזהות api.identitySourceId=1234567890abcdef

חובה. מזהה מקור הזהויות לסינכרון קבוצות מקומיות של SharePoint.מזהה המקור של Google Cloud Search שהוגדר על ידי האדמין ב-Google Workspace, כפי שמתואר במאמר הוספת מקור נתונים לחיפוש.

הפניה למקורות זהות api.referenceIdentitySources=CONTOSO,contoso

רשימה מופרדת בפסיקים של מקורות זהויות להפניה עבור חשבונות משתמשים ב-Active Directory. הערך תואם לשם NETBIOS של Active Directory של הגורמים המרכזיים ב-Active Directory שאליהם מתייחסים.

מזהים של מקורות זהות להפניה api.referenceIdentitySource.DOMAIN.id=identity-source-id

חובה. המזהה של מקור הזהות לסנכרון של ישויות ב-Active Directory.

חיפוש ב-Active Directory

הגדרה פרמטר
מארח Active Directory adLookup.host=host

חובה. שם המארח של Active Directory, כמו dc.contoso.com, או כתובת ה-IP.

יציאת חיפוש ב-Active Directory adLookup.port=port

אופציונלי. ברירת המחדל היא 389. משתמשים ב-686 ל-SSL.

שיטת חיפוש ב-Active Directory adLookup.method=value

אופציונלי. ברירת המחדל היא standard. לחיבורי HTTPS, צריך להגדיר ssl.

משתמש לחיפוש ב-Active Directory adLookup.username=CONTOSO\user1

חובה. למשתמש יש הרשאה לבצע חיפושים בספריית Active Directory.

סיסמה לחיפוש ב-Active Directory adLookup.password=password123

חובה. הסיסמה של המשתמש שצוין על ידי adLookup.user.

יצירת תוכן HTML

הגדרה פרמטר
שדה הכותרת של תבנית HTML contentTemplate.sharePointItem.title=Title

השדה ב-SharePoint שמשמש ככותרת של תבנית ה-HTML עבור קוד ה-HTML שנוצר.

שדות של תוכן HTML באיכות חיפוש גבוהה contentTemplate.sharePointItem.quality.high=highField1[,highField2,...]

רשימה מופרדת בפסיקים של שדות שרוצים לכלול ב-HTML שנוצר כשדות באיכות גבוהה. אם מונחי החיפוש תואמים לשדות האלה, התוצאות מקבלות דירוג גבוה יותר.

שדות של תוכן HTML באיכות חיפוש בינונית contentTemplate.sharePointItem.quality.medium=mediumField1[,mediumField2,...]

רשימה מופרדת בפסיקים של שדות שייכללו ב-HTML שנוצר כשדות באיכות בינונית.

שדות של תוכן HTML באיכות חיפוש נמוכה contentTemplate.sharePointItem.quality.low=lowField1[,lowField2,...]

רשימה מופרדת בפסיקים של שדות שרוצים לכלול ב-HTML שנוצר כשדות באיכות נמוכה.

עמודות של תוכן HTML שלא מופו contentTemplate.sharepointItem.unmappedColumnsMode=APPEND

איך המחבר מטפל בעמודות לא ממופות. הערך הוא APPEND (ברירת מחדל) או IGNORE.

  • ‫APPEND – המחבר יוצר תוכן HTML עם כל השדות, כולל שדות שלא מוגדרת להם רמת איכות (גבוהה, בינונית או נמוכה).
  • IGNORE (התעלמות) – המחבר יוצר תוכן HTML עם שדות ממופים בלבד.