除了 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 原則,例如
Everyone
、BUILTIN\Users
和All Authenticated Users
。 - 刪除通知不會立即傳送,連結器可能需要超過 4 小時,才能辨識使用者從來源存放區刪除內容。
系統需求
系統需求 | |
---|---|
作業系統 |
|
軟體 |
|
驗證 |
|
部署連接器
必要條件
建立 Google Workspace 私密金鑰,其中包含服務帳戶 ID。如要瞭解如何取得私密金鑰,請參閱「設定 Google Cloud Search API 存取權」。
Google Workspace 管理員必須在 Cloud Search 中新增資料來源。記下資料來源 ID。
如果連接器根據 ACL 傳回結果 (結果不會公開),Google Workspace 管理員必須建立兩個身分來源,並提供其 ID:
- 用於同步處理 Active Directory 使用者和群組的識別資訊來源。
- SharePoint 本機群組的 ID 來源
管理員也必須取得貴機構的 Google Workspace 客戶 ID,並提供給您。
如要瞭解如何取得這些值,請參閱「在 Cloud Search 中對應使用者識別資訊」。
為連接器設定使用者帳戶,讓該帳戶在使用者政策中擁有 SharePoint Web 應用程式的完整讀取權限。
如果 SharePoint Web 應用程式沒有根網站集合,請建立一個。
如果任何網站集合都已鎖定寫入權限,請使用具備管理員權限的帳戶登入 SharePoint 伺服器,然後執行
PrepareWriteLockedSites.ps1
指令碼。如要取得資料來源指標,以便為連接器設定提供資訊,請使用具備叢集管理權限的帳戶登入 SharePoint 伺服器,然後執行
diagnose_sp.ps1
。輸出內容會回報網頁應用程式、文件和使用者群組成員的數量。您可以根據這些資訊,預估所需的連接器執行個體數量、記憶體需求和文件數量。
步驟 1:安裝 Google Cloud Search SharePoint 地端連接器軟體。
從 GitHub 複製連接器存放區。
$ git clone https://github.com/google-cloudsearch/sharepoint-connector.git $ cd sharepoint-connector
請查看所需連接器的版本:
$ git checkout tags/latest_version
其中:
latest_version
= 值,例如v1-0.0.5
建構連接器。
$ mvn package
如要在建構連接器時略過測試,請執行
mvn package -DskipTests
而非mvn package
。將連接器 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 地端部署連接器設定檔
在連接器安裝所在的目錄中建立檔案。Google 建議您將檔案命名為
connector-config.properties
,這樣執行連接器時就不需要額外的命令列參數。如果您打算執行多個連接器執行個體,請在名稱中加入詳細資料以便區分。將參數做為鍵/值組合新增至檔案內容,如以下範例所示:
### 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
(選用) 視需要設定其他連接器參數。詳情請參閱「Google 提供的連接器參數」。
步驟 3:如要使用 HTTPS,請將 SharePoint 新增為信任的主機
如果 SharePoint 已設定為使用 HTTPS,請取得 SharePoint 憑證,並將其新增為連接器的受信任主機。
在要執行連接器的電腦上,開啟瀏覽器並前往 SharePoint。
在隨即開啟的警告頁面中,按一下「我瞭解風險」和「新增例外狀況」。頁面會顯示「This Connection is Untrusted」等訊息,這是因為憑證是自行簽署的,並非由信任的憑證授權單位簽署。
點選「View」按鈕。
前往「詳細資料」分頁,然後點選「匯出」。
將憑證儲存在名為
sharepoint.crt
的連接器目錄中。按一下「關閉」,然後點選「取消」即可關閉視窗。
開啟命令提示字元,然後輸入下列指令:
$ keytool -importcert -keystore cacerts.jks -storepass changeit -file sharepoint.crt -alias sharepoint
當系統提示「信任此憑證嗎?」時,請回答「是」。
步驟 4:設定記錄功能
在包含連接器二進位檔的目錄中,建立名為
logs
的資料夾。在同一個目錄 (非
logs
) 中建立名為logging.properties
的 Latin1 編碼檔案。在
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 設定連接器,可以略過這個步驟。
在 SharePoint Online 連接器安裝所在的目錄中建立檔案,並將其命名為
sharepoint-onprem-identity-connector.config
。將參數做為鍵/值組合新增至檔案內容,如以下範例所示:
### 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.sourceId
。api.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 使用者建立索引並提供結果。
如果您尚未設定 ,請設定並執行 GCDS。請務必啟用識別資訊對應群組。
執行 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
執行 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
|
使用 ADFS 驗證連線至 SharePoint | sharepoint.username=AdaptorUser@yourdomain.com
|
網站集合索引
設定 | 參數 |
索引類型 | sharepoint.siteCollectionOnly=boolean
選用 (多租戶 SharePoint 部署除外,請參閱這篇文章瞭解詳情)。將其設為 true,即可將連接器索引 |
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
必要欄位。 |
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。
|