您可以将 Google Cloud Search 设置为返回来自组织的 SharePoint 本地内容以及 Google Workspace 内容的搜索结果。您将使用 Google Cloud Search Share On-Prem 连接器,并将其配置为访问特定的 SharePoint 数据源。
重要注意事项
遵从的 SharePoint 设置
Cloud SearchSharePoint On-Prem 连接器始终遵循 SharePoint 上的搜索可见性设置,此设置不可替换。对于草稿文档,用户帐号的权限(连接器用来访问 SharePoint Online 的权限)控制将哪些草稿文档编入索引并返回。如果该帐号仅具有“完全读取”权限,则连接器会遵循 SharePoint 上的“草稿项可见性”设置。
您还可以配置连接器,以根据用户帐号访问权限限制结果。您可以使用 Google 主帐号和外部主帐号来定义 ACL。如需对 HTTPS 内容应用安全修剪,请将以下外部身份与 Google 目录同步:
- Active Directory 用户
- Active Directory 群组
- SharePoint 本地群组(成员包括 Active Directory 用户和群组)
如需同步 AD 用户和群组,请使用 Google Cloud Directory Sync 来启用身份映射群组。要同步 SharePoint 本地群组,请使用 SharePoint 身份连接器。
连接器还需要通过 AD 执行查找以获取其他信息,以同步主帐号。例如,使用 AD 查找可让连接器执行以下操作:
- 将网域组的 SID 映射到相应的 sAMAccountName。
- 将用户 sAMAccountName 映射到 Shares 本地群组成员的电子邮件地址。
搜索优化
您可以将连接器配置为返回更相关的搜索结果,从而改善用户体验。
要使用该 API,请在 SharePoint Online 连接器配置文件中设置 HTML 生成参数的值。通过这些参数,您可以设置哪些字段对匹配项的影响较大。
如需设置架构,请按照创建和注册架构中的说明操作。设置架构时:
为了将 SharePoint 内容类型的名称映射到相应的对象定义,连接器会排除不支持的字符,使内容类型名称标准化。对于对象定义,Cloud Search API 仅支持 A-Z、a-z 和 0-9 作为有效字符。例如,内容类型“Advertises”映射到对象定义“Advertises”。内容类型“News Article”映射到“NewsArticle”(没有空格)。
当连接器无法将对象定义与对象定义相匹配时,会使用后备对象类型 (
itemMetadata.objectType
)。详细了解元数据配置参数。为了将 HTTPS 属性名称映射到属性定义,连接器通过以下方式对属性名称进行标准化:解码十六进制编码字符并移除“ows_”前缀,然后排除不受支持的字符(除 A-Z、a-z 和 0-9 以外的所有字符均为有效字符)。
Microsoft Outlook 邮件处理
如果连接器在将内容编入索引时遇到 Microsoft Outlook .msg 文件,它会替换此类文件的媒体类型并将其作为 application/vnd.ms-outlook.
编入索引
多租户配置
如果您的 SharePoint 是多租户部署(多个客户网站托管在同一 Web 应用中),则您需要在配置文件中配置网站集模式。在多租户部署中,您仅获得网站集的权限,无法按照 SharePoint On-Prem 连接器的要求获得完全读取权限。
若要启用网站集模式,请执行以下操作:
- 向连接器用户帐号授予 Site collection Administrator 权限。
- 将连接器配置文件中的
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 管理员必须添加要搜索的数据源。记录数据源 ID。
如果连接器基于 ACL 返回结果(结果未公开),则您的 Google Workspace 管理员必须创建两个身份源并提供其 ID:
- 一个用于同步 Active Directory 用户和群组的身份源。
- 一个用于同步 SharePoint 本地群组的身份源
管理员还必须获取贵组织的 Google Workspace 客户 ID 并将其提供给您。
如需了解如何获取这些值,请参阅在 Cloud Search 中映射用户身份。
为在用户政策中拥有关于 SharePoint Web 应用的完全读取权限的连接器设置用户帐号。
如果 SharePoint Web 应用没有根网站集,请创建一个。
如果有任何网站集被锁定,请使用拥有管理员权限的帐号登录 Sharepoint 服务器,然后运行
PrepareWriteLockedSites.ps1
脚本。如需获取数据源指标以配置连接器,请使用具有服务器场管理权限的帐号登录 Sharepoint 服务器,然后运行
diagnose_sp.ps1
。输出内容会报告 Web 应用、文档和用户组成员资格的数量。您可以利用这些信息来估算所需的连接器实例数量、内存要求和文档数量。
第 1 步:安装 Google Cloud Search SharePoint On-Prem 连接器软件。
从 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 步:创建 Share On-Prem 连接器配置文件
在连接器安装所在的目录中,创建一个文件。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 证书以将其添加为连接器的受信任主机。
在运行连接器的计算机上,打开浏览器并转到 Share。
在打开的警告页面中,点击我了解此风险和添加例外。该页面会显示类似“此连接不受信任”的消息,因为该证书是自签名证书,而不是由受信任的证书授权机构签名的。
显示查看按钮后,点击该按钮。
前往详细信息标签页,然后点击导出。
将证书保存在连接器目录中,并将其命名为
sharepoint.crt
。点击关闭,然后点击取消以关闭窗口。
打开命令提示符并输入以下命令:
$ keytool -importcert -keystore cacerts.jks -storepass changeit -file sharepoint.crt -alias sharepoint
当看到“是否信任此证书?”的提示时,输入 yes。
第 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 On-Prem 身份连接器
必须执行此步骤,才能将基于 SharePoint On-Prem 身份的 ACL 应用到搜索结果。如果您使用公共 ACL 设置连接器,则可以跳过此步骤。
在安装 Share 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 On-Prem 连接器的值几乎相同,区别在于该参数不是
api.sourceId
,而是api.customerId
。api.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 用户编制索引并提供结果。
运行 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
运行 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
|
使用 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。对于 SSL,请使用 686。 |
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。
|