部署 Microsoft SharePoint On-Prem 連接器

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

重要事項

適用的 SharePoint 設定

Cloud Search SharePoint 地端部署連接器一律會採用 SharePoint 上的「Search Visibility」設定,無法覆寫。對於草稿文件,使用者帳戶 (連接器用來存取 SharePoint Online) 的權限會控制哪些草稿文件會建立索引並傳回。如果帳戶僅具備「完全讀取」權限,連接器會遵循 SharePoint 上的「草稿項目顯示設定」。

您也可以設定連接器,根據使用者帳戶存取權限制結果。您可以使用 Google 使用者和外部使用者定義 ACL。如要為 SharePoint 內容套用安全性裁減功能,請將下列外部 ID 與 Google 目錄同步:

  • Active Directory 使用者
  • Active Directory 群組
  • SharePoint 本機群組 (成員為 Active Directory 使用者和群組)

如要同步處理 AD 使用者和群組,請使用 Google Cloud Directory Sync,啟用對應身分群組。如要同步處理 SharePoint 本機群組,請使用 SharePoint 身分連接器。

連接器也需要使用 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 是多租戶部署,也就是在同一個網頁應用程式中代管多個客戶網站,則需要在設定檔中設定網站集合模式。在多租戶部署中,您只能取得網站集合的權限,無法取得 SharePoint 地端部署連接器所需的完全讀取權限。

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

  • 網站集合管理員權限授予連接器使用者帳戶。
  • 將連接器設定檔中的 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
  • 在要執行 Google Cloud Search SharePoint 地端連接器的電腦上安裝 Java JRE 1.8
驗證
  • NTLM
  • Kerberos
  • HTTP 基本驗證
  • ADFS

部署連接器

必要條件

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

  2. Google Workspace 管理員必須在 Cloud Search 中新增資料來源。記下資料來源 ID。

  3. 如果連接器根據 ACL 傳回結果 (結果不會公開),Google Workspace 管理員必須建立兩個身分來源,並提供其 ID:

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

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

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

  4. 為連接器設定使用者帳戶,讓該帳戶在使用者政策中擁有 SharePoint Web 應用程式的完整讀取權限。

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

  6. 如果任何網站集合都已鎖定寫入權限,請使用具備管理員權限的帳戶登入 SharePoint 伺服器,然後執行 PrepareWriteLockedSites.ps1 指令碼。

  7. 如要取得資料來源指標,以便為連接器設定提供資訊,請使用具備叢集管理權限的帳戶登入 SharePoint 伺服器,然後執行 diagnose_sp.ps1

    輸出內容會回報網頁應用程式、文件和使用者群組成員的數量。您可以根據這些資訊,預估所需的連接器執行個體數量、記憶體需求和文件數量。

步驟 1:安裝 Google Cloud Search SharePoint 地端連接器軟體。

  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 地端部署連接器設定檔

  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. 在隨即開啟的警告頁面中,按一下「我瞭解風險」和「新增例外狀況」。頁面會顯示「This Connection is Untrusted」等訊息,這是因為憑證是自行簽署的,並非由信任的憑證授權單位簽署。

  3. 點選「View」按鈕。

  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 地端部署識別資訊連接器

您必須執行這個步驟,才能將 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 內部連接器的值相同,但參數是 api.customerId,而非 api.sourceIdapi.customerId 的值是您從 Google Workspace 管理員取得的客戶 ID。

步驟 6:啟動 SharePoint 地端部署連接器

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

GCDS 同步處理使用者和群組後,請執行 SharePoint On-Prem 身分連接器,以便同步處理 SharePoint 網站集合群組。最後,請執行 SharePoing 內部部署連接器,為 Cloud Search 使用者建立索引並提供結果。

  1. 如果您尚未設定 ,請設定並執行 GCDS。請務必啟用識別資訊對應群組

  2. 執行 SharePoint 地端部署識別資訊連接器:

    $ 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 地端部署連接器。使用 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 內容。