部署 Microsoft SharePoint On-Prem 連接器

您可以設定 Google Cloud Search,除了 Google Workspace 內容外,也從貴機構的 SharePoint 內部部署內容傳回結果。您可以使用 Google Cloud Search SharePoint On-Prem 連接器,並設定該連接器來存取特定 SharePoint 資料來源。

重要事項

系統會採用的 SharePoint 設定

Cloud Search SharePoint On-Prem 連接器一律會遵守 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,請在 SharePoint Online 連接器設定檔中,設定 HTML 生成參數的值。您可以透過這些參數設定哪些欄位對比對結果的影響較大或較小。

如要設定結構定義,請按照「建立及註冊結構定義」中的操作說明進行。設定結構定義時,請注意下列事項:

  • 為將 SharePoint 內容類型名稱對應至相應的物件定義,連接器會排除不支援的字元,藉此正規化內容類型名稱。如果是物件定義,Cloud Search API 僅支援 A-Z、a-z 和 0-9 做為有效字元。舉例來說,內容類型「公告」會對應至物件定義「公告」。內容類型「新聞文章」會對應至「NewsArticle」(沒有空格)。

  • 如果連接器無法將物件定義與物件定義相符,就會使用備用物件類型 (itemMetadata.objectType)。進一步瞭解中繼資料設定參數

  • 為將 SharePoint 屬性名稱對應至屬性定義,連接器會先解碼十六進位編碼字元並移除「ows_」前置字元,然後排除不支援的字元 (除了 A-Z、a-z 和 0-9 以外的所有字元),藉此將屬性名稱正規化。

Microsoft Outlook 郵件處理

當連接器在編製內容索引時遇到 Microsoft Outlook .msg 檔案,會覆寫檔案的媒體類型,並將檔案編製為 application/vnd.ms-outlook.

多租戶設定

如果 SharePoint 是多租戶部署,也就是多個客戶網站代管在同一個 Web 應用程式上,您需要在設定檔中設定網站集合模式。在多租戶部署中,您只能取得網站集合的權限,無法取得 SharePoint On-Prem 連接器所需的「完整讀取」權限。

如要啟用網站集模式,請按照下列步驟操作:

  • 授予連結器使用者帳戶網站集合管理員權限。
  • 在連接器設定檔中,將 sharepoint.server 設為網站集合網址,例如 http://sharepoint.example.com/sites/sitecollection。網址不一定要與 SharePoint 上的網址完全相同。
  • 在連接器設定檔中,將 sharepoint.siteCollectionOnly 設為 true

如果您有多個要在多租戶環境中建立索引的網站集合,則必須為每個網站集合設定一個連線器執行個體。

已知的連接器限制

  • 連接器監控的資料庫越多,偵測資料庫中項目變更所需的時間就越長。
  • 每個網站集的 ACL 中使用的不重複使用者和群組越多,記憶體消耗量就越高。
  • 您只能使用一個 Active Directory 網域中的身分設定連接器。
  • 系統不支援部分常見的 Active Directory 和 Windows 主體,例如 EveryoneBUILTIN\UsersAll Authenticated Users
  • 刪除通知不會立即傳送,連接器可能需要 4 小時以上的時間,才能辨識出使用者已從來源存放區刪除內容。

系統需求

系統需求
作業系統
  • Windows Server 2016
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 位元)
軟體
  • SharePoint Server
    • SharePoint Server 2016
    • SharePoint Server 2013
  • 在執行 Google Cloud Search SharePoint On-Prem 連接器的電腦上安裝 Java JRE 1.8
驗證
  • NTLM
  • Kerberos
  • HTTP Basic
  • ADFS

部署連接器

必要條件

  1. 建立 Google Workspace 私密金鑰,其中包含服務帳戶 ID。如要瞭解如何取得私密金鑰,請參閱「 設定 Google Cloud Search API 的存取權」。

  2. Google Workspace 管理員必須新增可供搜尋的資料來源。記下資料來源 ID。

  3. 如果連接器會根據存取控制清單傳回結果 (結果並非公開),Google Workspace 管理員必須建立兩個身分來源,並提供 ID 給您:

    • 用於同步處理 Active Directory 使用者和群組的識別資訊來源。
    • SharePoint 本機群組的身分來源

    管理員也必須取得貴機構的 Google Workspace 客戶 ID,並提供給您。

    請參閱「在 Cloud Search 中對應使用者識別資訊」,瞭解如何取得這些值。

  4. 為連接器設定使用者帳戶,並在使用者政策中授予 SharePoint Web 應用程式的「完整讀取」權限。

  5. 如果 SharePoint Web Application 沒有根網站集合,請建立一個。

  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. 在開啟的警告頁面中,按一下「我瞭解風險」和「新增例外狀況」。由於憑證是自行簽署,而非由信任的憑證授權單位簽署,因此頁面會顯示「此連線不受信任」等訊息。

  3. 「查看」按鈕顯示後,請點選該按鈕。

  4. 前往「詳細資料」分頁,然後按一下「匯出」

  5. 將憑證儲存在連接器目錄中,並命名為 sharepoint.crt

  6. 按一下「關閉」,然後按一下「取消」關閉視窗。

  7. 開啟命令提示字元,然後輸入下列指令:

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

    系統提示「信任這個憑證嗎?」時,請回答「是」

步驟 4:設定記錄功能

  1. 在包含連接器二進位檔的目錄中,建立名為 logs 的資料夾。

  2. 在同一個目錄 (不是 logs) 中,建立名為 logging.properties 的 Latin1 編碼檔案。

  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 身分識別連接器

您必須執行這個步驟,才能將 SharePoint On-Prem 身分識別型 ACL 套用至搜尋結果。如果您使用公開 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.customerId,而不是 api.sourceIdapi.customerId 的值是您從 Google Workspace 管理員取得的客戶 ID。

步驟 6:啟動 SharePoint On-Prem 連接器

在下列步驟中,您會將內部部署 Active Directory 和 SharePoint 網站集合中的主體,對應至 Cloud Identity 服務中的身分。這項同步作業會透過 Google Cloud Directory Sync (GCDS) 和 SharePoint On-Prem 身分識別連接器完成。

GCDS 同步處理使用者和群組後,請執行 SharePoint On-Prem 身分識別連接器,同步處理 SharePoint 網站集合群組。最後,執行 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

設定參數參考資料

資料來源存取權

設定 參數
資料來源 ID api.sourceId=1234567890abcdef

必要欄位。Google Workspace 管理員設定的 Google Cloud Search 資料來源 ID。

服務帳戶私密金鑰檔案的路徑 api.serviceAccountPrivateKeyFile=PrivateKey.json

必要欄位。Google Cloud Search 服務帳戶金鑰檔案的路徑。

SharePoint 內部部署存取權

設定 參數
SharePoint 伺服器網址 sharepoint.server=http://yoursharepoint.example.com/

必要欄位。SharePoint 伺服器的網址,以完整主機名稱表示,例如 http://yoursharepoint.example.com/。如果主機名稱不完整,則必須在連接器主機上設定 DNS 覆寫。

SharePoint 使用者名稱 sharepoint.username=YOURDOMAIN\\ConnectorUser

在 Linux 或不屬於 SharePoint Server AD 網域的 Windows 電腦上執行連接器時,必須提供這項資訊。

SharePoint 密碼 sharepoint.password=user_password

在 Linux 或不屬於 SharePoint Server AD 網域的 Windows 電腦上執行連接器時,必須提供這項資訊。

使用即時驗證連線至 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:sharepointhttps://yoursharepoint.example.com/_trust

sharepoint.formsAuthenticationMode=ADFS

網站集合索引

設定 參數
索引類型 sharepoint.siteCollectionOnly=boolean

選用,但多租戶 SharePoint 部署作業除外 (瞭解詳情)。設為 true,即可將連接器索引 sharepoint.server 設為網站集合,而非虛擬伺服器。預設值為空值 (自動偵測)。

SharePoint 識別資訊對應

設定 參數
識別資訊來源 ID api.identitySourceId=1234567890abcdef

必要欄位。用於同步處理 SharePoint 本機群組的身分來源 ID。這是由 Google Workspace 管理員設定的 Google Cloud Search 來源 ID,詳情請參閱「新增可供搜尋的資料來源」。

參考識別資訊來源 api.referenceIdentitySources=CONTOSO,contoso

以半形逗號分隔的 Active Directory 主體參考身分來源清單。這個值與參照 Active Directory 主體的 Active Directory NETBIOS 名稱相符。

參考識別資訊來源 ID api.referenceIdentitySource.DOMAIN.id=identity-source-id

必要欄位。用於同步處理 Active Directory 主體的識別資訊來源 ID。

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

要用做所產生 HTML 的 HTML 範本標題的 SharePoint 欄位。

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 內容。