部署 Microsoft SharePoint On-Prem 連接器

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

重要事項

Honored 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 連接器。

連接器也必須向 AD 執行查詢,才能擷取其他資訊來同步處理主體。舉例來說,使用 AD 查詢即可讓連接器執行下列操作:

  • 將網域群組的 SID 對應至對應的 sAMAccountName。
  • 將使用者 sAMAccountName 對應至 SharePoint 本機群組成員的電子郵件地址。

搜尋最佳化

您可以設定連接器傳回更相關的搜尋結果,藉此提升使用者體驗。

如要使用這個 API,請在 SharePoint Online 連接器設定檔中,設定 HTML 產生參數值。透過這些參數,您就能設定哪些欄位對比對的影響較高或較低。

如要設定結構定義,請按照「建立及註冊結構定義」一文的說明操作。設定結構定義時:

  • 為了將 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 郵件處理

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

多用戶群設定

如果您的 SharePoint 採用多用戶部署模式,可讓多個客戶網站透過同一個網頁應用程式代管,您就必須在設定檔中設定網站收集模式。在多用戶群部署中,您只會取得網站集合的權限,無法取得 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 伺服器
    • SharePoint Server 2016
    • SharePoint Server 2013
  • 已安裝 Java JRE 1.8 的電腦,以便執行 Google Cloud Search SharePoint On-Prem 連接器
驗證機制
  • NTLM
  • Kerberos
  • HTTP 基本
  • ADFS

部署連接器

先備知識

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

  2. 您的 Google Workspace 管理員必須在搜尋中新增資料來源。記錄資料來源 ID。

  3. 如果連接器根據 ACL 傳回結果 (不會公開結果),則 Google Workspace 管理員必須建立兩個識別資訊來源,並提供這些來源的 ID:

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

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

    請參閱在 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 憑證,以便將 SharePoint 憑證新增為連接器的信任主機。

  1. 在要執行連接器的電腦上,開啟瀏覽器並前往 SharePoint。

  2. 在隨即開啟的警告頁面中,依序點選「IUnderstanding the Risks」和「Add Exception」。網頁會顯示「這個連線不信任」之類的訊息,因為憑證是自行簽署,而非由信任的憑證授權單位簽署。

  3. 出現「View」按鈕後,請按一下該按鈕。

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

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

  6. 依序點選「關閉」和「取消」,即可關閉視窗。

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

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

    當系統顯示「信任這個憑證嗎?」時,請回答 yes

步驟 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.sourceId 以外,參數為 api.customerIdapi.customerId 的值就是 Google Workspace 管理員提供給您的客戶 ID。

步驟 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

設定參數參考資料

資料來源存取權

設定 參數
資料來源 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 部署作業除外 (瞭解詳情)。如果將連接器索引 sharepoint.server 設為 True,則可將連接器索引 sharepoint.server 當做網站集合,而非虛擬伺服器。預設值為空值 (自動偵測)。

SharePoint 識別資訊對應

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

必要欄位。用於同步處理 SharePoint 本機群組的識別資訊來源 ID。由 Google Workspace 管理員設定的 Google Cloud Search 來源 ID,如「在搜尋中加入資料來源」一文所述。

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

有效目錄主體的參照識別資訊來源清單 (以半形逗號分隔)。值與參考 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。如果是安全資料傳輸層 (SSL),請使用 686。

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。

  • 附加:連接器會產生內含所有欄位的 HTML 內容,包括未設定品質等級 (高、中或低) 的欄位。
  • IGNORE:連接器產生 HTML 內容,其中僅有對應欄位。