部署 Microsoft SharePoint On-Prem 连接器

您可以设置 Google Cloud Search,使其不仅会返回 Google Workspace 内容,还能够返回贵组织的 SharePoint 本地内容。您将使用 Google Cloud Search Share On-Prem 连接器,并将其配置为访问特定的 Sharepoint 数据源。

重要注意事项

遵循的 Sharepoint 设置

Cloud Search Share On-Prem 连接器始终遵循 Share 上的搜索可见性设置,该设置无法被覆盖。对于草稿文档,用户帐号的权限(连接器用来访问 Share Online)的权限控制将哪些草稿文档编入索引并返回。如果该帐号仅具有“完全读取”权限,则连接器会遵循 Share 上的“草稿项可见性”设置。

您还可以配置连接器,以根据用户帐号访问权限来限制结果。您可以使用 Google 主帐号和外部主帐号来定义 ACL。如需为 Sharepoint 内容应用安全修剪,请将以下外部身份与 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 作为有效字符。例如,内容类型“合作规范”映射到对象定义“通告”。内容类型“News Article”映射到“NewsArticle”(没有空格)。

  • 当连接器无法将对象定义与对象定义匹配时,会使用后备对象类型 (itemMetadata.objectType)。详细了解元数据配置参数

  • 为了将 SharePoint 属性名称映射到属性定义,连接器会解码十六进制编码字符并移除“ows_”前缀,然后排除不受支持的字符(除 A-Z、a-z 和 0-9 以外的所有字符均为有效字符),对属性名称进行标准化。

Microsoft Outlook 邮件处理

如果连接器在将内容编入索引时遇到 Microsoft Outlook .msg 文件,它会替换此类文件的媒体类型并将其作为 application/vnd.ms-outlook. 编入索引

多租户配置

如果您的 Sharepoint 是多租户部署,其中多个客户网站托管在同一 Web 应用中,则您需要在配置文件中配置网站集模式。在多租户部署中,您只能获得网站集的权限,无法按照 Share On-Prem 连接器要求获取完全读取权限。

若要启用网站集模式,请执行以下操作:

  • 为连接器用户帐号授予 Site collection Administrator 权限。
  • 将连接器配置文件中的 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 Share 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 Web 应用拥有完全读取权限的权限。

  5. 如果 Sharepoint Web 应用没有根网站集,请创建一个。

  6. 如果任何网站集被写入锁定,请使用具有管理员权限的帐号登录 Sharepoint 服务器,然后运行 PrepareWriteLockedSites.ps1 脚本。

  7. 如需获取数据源指标以告知连接器配置,请使用具有服务器场管理权限的帐号登录 Sharepoint 服务器,然后运行 diagnose_sp.ps1

    输出结果会报告 Web 应用、文档和用户组成员资格的数量。您可以使用这些信息来估算所需的连接器实例数、内存要求和文档数。

第 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 步:创建 Share 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. 在将运行连接器的计算机上,打开浏览器并转到 Share。

  2. 在打开的警告页面中,点击我了解此风险添加例外。此页面会显示“此连接不受信任”等消息,因为证书是自签名,而不是由受信任的证书授权机构签名。

  3. 查看按钮可用后,点击该按钮。

  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 身份连接器

必须执行此步骤,才能对搜索结果应用 Share On-Prem 基于身份的 ACL。如果连接器设置了公共 ACL,则可以跳过此步骤。

  1. 在安装 Share 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 步:启动 Share 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,请 配置并运行 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 作为网站集,而不是作为虚拟服务器。默认值为 null(自动检测)。

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

必需。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 内容。