IBM Cloud Docs
Microsoft SharePoint Online

Microsoft SharePoint Online

抓取存储在 Microsoft SharePoint 在线数据源中的文档。

IBM Cloud Pak for Data IBM Cloud Pak for Data only

此信息仅适用于已安装的部署。 有关从托管部署连接到在线 SharePoint 网站的更多信息,请参阅 SharePoint Online

抓取哪些文件

  • 在对内容进行初始抓取时,会抓取可从您指定的站点集合路径访问的所有对象的文档,并将其添加到您的集合中。 与 SharePoint 内容相关联的自定义元数据也会被抓取。
  • 每个站点集合可以抓取一个站点集合路径。
  • 只有 Discovery 支持的文档才会被抓取,其他文档都会被忽略。 有关详细信息,请参阅 支持的文件类型
  • 支持文件级安全。 启用此选项后,用户可以抓取和查询与登录 SharePoint 时相同的内容。 有关详细信息,请参阅 支持文档级安全性
  • 当重新抓取资源时,会添加新文档,将更新后的文档修改为当前版本,并将已删除的文档从集合索引中删除。
  • 所有 Discovery 数据源连接器都是只读的。 无论向抓取账户授予何种权限,Discovery 都不会写入、更新或删除原始数据源中的任何内容。

Discovery 可以抓取以下对象:

  • 网站收藏
  • 站点
  • SubSites
  • 列表
  • 列表项目
  • 文件库
  • 清单项目附件

数据源需求

除了所有已安装部署的 数据源要求 之外,您的 SharePoint Online 数据源必须满足以下要求:

  • 您连接的站点集合必须是用企业计划创建的站点集合。 它不能是根据一线工人计划创建的集合。

  • 根据您在配置身份验证方法时指定的委托人类型,身份验证支持也有所不同。 在创建集合之前,确定要使用的委托人类型;之后不能更改委托人类型。 可用的选项如下所示:

    • 用户:抓取用户账户必须满足以下要求:

      • 账户必须拥有 Azure Active Directory 用户 ID,并具有访问所有要抓取的对象的权限。 例如,admin_user@company.onmicrosoft.com。 用户 ID 必须拥有 Site Collection Administrator 权限。

      • 账户必须启用传统身份验证。 要启用传统身份验证,请访问 Azure 门户,或联系您的 Azure Active Directory 管理员。

        连接器仅支持启用混合身份的 Password hash synchronization (PHS) 方法。 使用任何其他类型(如直通式身份验证或联邦),风险自负。 除非您在2020年1月之前创建了您的 SharePoint 在线账户,否则账户默认启用双重身份验证。 您必须禁用双因素身份验证。

        要查看和更改您的多重身份验证状态,请参阅 查看用户状态更改用户状态

    • 服务:当您作为 Azure Active Directory 服务委托人连接到数据时,可以使用多因素身份验证。

有关 SharePoint Online的更多信息,请参阅 微软 SharePoint 开发文档

使用用户委托时的前提步骤

如果要启用文档级安全性,必须采取一些步骤进行设置。 有关更多信息,请参阅关于文档级别安全性

下表列出了要为用户 principal 身份验证方法设置的权限。

  1. 注册您的应用程序。

    有关详细信息,请参阅 Microsoft 文档

  2. 配置 API 权限。

用户 principal API 配置
个 API 许可权 类型
Microsoft Graph(组) Group.Read.AllGroup.ReadWrite.All 委派
Microsoft Graph(目录) Directory.AccessAsUser.AllDirectory.Read.AllDirectory.ReadWrite.All 委派
SharePoint Online User.Read.AllUser.ReadWrite.All 委派

使用服务委托时的前提步骤

服务 principal 是用户创建的应用程序、服务和自动化工具用于访问特定 Azure 资源的安全身份。 它就像一个用户身份(通过证书验证),具有特定的角色和严格控制的权限。 如果以服务委托用户身份连接到 SharePoint Online,则无需禁用多因素身份验证即可访问数据。

要准备作为服务委托人进行连接,请完成以下步骤:

  1. 创建认证文件
  2. 向 SharePoint Online 注册应用程序。
  3. 添加证书
  4. 配置 API 权限
  5. 启用 Azure 访问控制服务(ACS)
  6. 创建站点权限

创建认证文件

爬虫支持以下私钥格式:

  • PKCS #1
  • 带密码的 PKCS #1
  • PKCS #8
  • 带密码的 PKCS #8

下面的步骤演示了如何创建不带密码的 PKCS #1 格式私钥。

  1. 创建私钥

    openssl genrsa 2048 > spo-private.key
    
  2. 创建公钥

    openssl rsa -in spo-private.key -pubout -out spo-public.key
    
  3. 创建证书签名请求 (CSR) 文件。

    openssl req -new -key spo-private.key > spo-request.csr
    
  4. 创建认证文件。

    openssl x509 -req -in spo-request.csr -signkey spo-private.key -out spo.crt -days 3650
    

使用 SharePoint 在线注册应用程序

请按照 Microsoft 文档说明 注册 Azure AD 应用程序

做出以下选择

  • 选择 * 仅本组织目录中的账户*选项。
  • 将客户端类型设置为公共客户端。
  • 请记下注册应用程序时分配给应用程序的 Azure 应用程序(客户端)ID。

在门户网站注册应用程序时,会自动在主租户中创建应用程序对象和服务委托对象。

添加证书

上传之前创建的证书。

配置应用程序接口权限

按照 Microsoft 文档 添加 API 权限。

下表列出了要为服务委托人身份验证方法设置的权限,文档级安全性已启用。

启用了文档级安全 API 配置的服务委托人
个 API 许可权 类型
Microsoft Graph(组) Group.Read.All 应用程序
Microsoft Graph(目录) Directory.Read.All 应用程序
SharePoint Sites.FullControl.All 应用程序

下表列出了要为服务委托人身份验证方法设置的权限,文档级安全性已禁用。

禁用了文档级安全 API 配置的服务委托人
个 API 许可权 类型
微软图表 Sites.Read.All 应用程序
SharePoint Sites.Read.All 应用程序
  1. 配置 API 权限后,单击 授予 {tenant-name} 的管理员同意。

启用 Azure 访问控制服务 (ACS)

只有在要为每个站点集合配置应用程序权限时,才需要执行此步骤。

  1. 打开 SharePoint 在线管理外壳。

    有关详细信息,请参阅 开始使用 SharePoint 在线管理外壳

  2. 运行以下命令,启用基于 ACS 的纯应用程序身份验证:

    Set-PnPTenant -DisableCustomAppAuthentication $false
    

    有关更多信息,请参阅 Set-PnPTenant

  3. 请按照 Microsoft 文档中的步骤 使用 SharePoint 仅限应用程序授予访问权限。

  4. 复制客户ID和客户密码。

  5. 为您的部署定义适当的权限请求。

    转到 https://{tenant-name}.sharepoint.com/sites/{site}/_layouts/15/AppInv.aspx.

    如果启用了文档级安全性,请指定以下 XML 请求:

    <AppPermissionRequests AllowAppOnlyPolicy="true">
      <AppPermissionRequest Scope="http://sharepoint/content/sitecollection" Right="FullControl" />
    </AppPermissionRequests>
    

    如果禁用了文档级安全性,请指定以下 XML 请求:

    <AppPermissionRequests AllowAppOnlyPolicy="true">
      <AppPermissionRequest Scope="http://sharepoint/content/sitecollection" Right="Read" />
    </AppPermissionRequests>
    
  6. 确认您信任该应用程序。

创建网站权限

为 Microsoft Graph API 添加 Sites.Selected 权限。 需要 Sites.FullControl.All 权限才能调用以下 API:

curl -s -XPOST -H "Authorization: ${access_token}" -H "Content-Type: application/json" \
  https://graph.microsoft.com/v1.0/sites/{site}/permissions -d '{
  "roles": ["read"],
  "grantedToIdentities": [{
    "application": {
      "id": "{azure_ad_app_id}",
      "displayName": "{display_name}"
    }
  }]
}'

有关详细信息,请参阅 Microsoft 文档

连接到 SharePoint 在线数据源

请从您的 Discovery 项目开始,完成以下步骤:

  1. 从导航窗格中,选择 管理集合

  2. 点击 “新收藏”。

  3. 单击 SharePoint Online,然后单击 Next

  4. 为藏品命名。

  5. 如果 SharePoint 中文档的语言不是英语,请选择适当的语言。

    有关受支持语言的列表,请参阅语言支持

  6. 可选:更改同步计划。

    有关详细信息,请参阅 爬行计划选项

  7. Authentication method 部分中,从以下选项中指定在使用 SharePoint 进行身份验证时要使用的 principal 类型:

    • 用户:您的 Active Directory 组织中的用户。

      Enter your credentials 部分,请填写以下字段:

      用户名
      SharePoint 用户有权访问所有需要抓取和索引的网站和列表,例如 crawl_username@company.onmicrosoft.com
      密码
      SharePoint 用户的密码。

      此值不会返回,仅在创建或修改凭据时使用。

    • 服务:用户创建的应用程序、服务和自动化工具用于访问特定 Azure 资源的安全标识。 它就像一个用户身份(通过证书验证),具有特定的角色和严格控制的权限。

      4.0.3版本新增了对使用服务委托的支持。

      Enter your credentials 部分,请填写以下字段:

      租户名称

      数据所在的租户。 例如,ibm.onmicrosoft.com

      应用程序标识

      您的应用程序的ID。 例如,19ce9f74-cd14-4b68-8dfc-4bcc75ed2fe9。 上传以下文件

      认证文件

      您在 SharePoint 中创建的认证文件。 例如,myinfo.crt

      专用密钥文件

      您在 SharePoint 中创建的私钥文件。 例如,private.app.key

      如果需要私钥密码,请指定密码。 如果该爬虫只有访问指定站点集合的权限,请将 Azure 访问控制服务 开关设置为 On,然后提供以下值:

      • 客户机标识
      • 客户机密钥
  8. Specify what you want to crawl 部分,为以下字段添加值:

    网站收藏网址
    SharePoint 网络服务 URL。 例如,https://organization_name.com
    仅限用户负责人
    Site Collection Name 字段中,指定站点集合使用的名称。 从站点集合设置中获取名称。
  9. 可选:如果使用代理服务器访问数据源服务器,则在代理设置部分,将启用代理设置开关设置为 On。 为以下字段添加值:

    用户名
    可选。 代理服务器用户名(如果代理服务器需要验证)。 如果您不知道用户名,可以从代理服务器的管理员处获取。
    密码
    可选。 代理服务器密码(如果代理服务器需要验证)。 如果您不知道密码,可以从代理服务器的管理员处获取。
    代理服务器主机名或IP地址
    代理服务器的主机名或IP地址。
    代理服务器端口号
    您要在代理服务器上连接的网络端口。
  10. 可选:如果要激活文档级安全性,请在安全性部分中,将启用文档级安全性开关设置为 On

    启用此选项后,用户可以抓取和查询与登录 SharePoint 时相同的内容。 有关详细信息,请参阅 支持文档级安全性

    仅限用户本金:启用此选项后,必须将注册时分配给应用程序的 Azure ID 添加到 Application ID 字段。

    要启用文档级安全性,您必须向 SharePoint 注册应用程序。 如需了解更多信息,请参阅正在使用的 principal 类型的前提步骤。

  11. 如果您希望爬虫从网站图片中提取文本,请展开 更多处理设置,并将 应用光学字符识别 (OCR) 设置为 On

    启用 OCR 且文档包含图像时,处理时间会更长。 有关详细信息,请参阅 光学字符识别

  12. 单击完成

该系列创建迅速。 当数据被添加到数据集中时,需要更多的时间来处理数据。

如果想查看进度,请进入活动页面。 在导航窗格中,单击 管理收藏,然后单击打开收藏。