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 身份验证方法设置的权限。
-
注册您的应用程序。
有关详细信息,请参阅 Microsoft 文档。
-
配置 API 权限。
个 API | 许可权 | 类型 |
---|---|---|
Microsoft Graph(组) | Group.Read.All 或 Group.ReadWrite.All |
委派 |
Microsoft Graph(目录) | Directory.AccessAsUser.All 、Directory.Read.All 或 Directory.ReadWrite.All |
委派 |
SharePoint Online | User.Read.All 或 User.ReadWrite.All |
委派 |
使用服务委托时的前提步骤
服务 principal 是用户创建的应用程序、服务和自动化工具用于访问特定 Azure 资源的安全身份。 它就像一个用户身份(通过证书验证),具有特定的角色和严格控制的权限。 如果以服务委托用户身份连接到 SharePoint Online,则无需禁用多因素身份验证即可访问数据。
要准备作为服务委托人进行连接,请完成以下步骤:
- 创建认证文件。
- 向 SharePoint Online 注册应用程序。
- 添加证书。
- 配置 API 权限。
- 启用 Azure 访问控制服务(ACS)。
- 创建站点权限。
创建认证文件
爬虫支持以下私钥格式:
- PKCS #1
- 带密码的 PKCS #1
- PKCS #8
- 带密码的 PKCS #8
下面的步骤演示了如何创建不带密码的 PKCS #1 格式私钥。
-
创建私钥
openssl genrsa 2048 > spo-private.key
-
创建公钥
openssl rsa -in spo-private.key -pubout -out spo-public.key
-
创建证书签名请求 (CSR) 文件。
openssl req -new -key spo-private.key > spo-request.csr
-
创建认证文件。
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 | 许可权 | 类型 |
---|---|---|
Microsoft Graph(组) | Group.Read.All |
应用程序 |
Microsoft Graph(目录) | Directory.Read.All |
应用程序 |
SharePoint | Sites.FullControl.All |
应用程序 |
下表列出了要为服务委托人身份验证方法设置的权限,文档级安全性已禁用。
个 API | 许可权 | 类型 |
---|---|---|
微软图表 | Sites.Read.All |
应用程序 |
SharePoint | Sites.Read.All |
应用程序 |
- 配置 API 权限后,单击 授予 {tenant-name} 的管理员同意。
启用 Azure 访问控制服务 (ACS)
只有在要为每个站点集合配置应用程序权限时,才需要执行此步骤。
-
打开 SharePoint 在线管理外壳。
有关详细信息,请参阅 开始使用 SharePoint 在线管理外壳。
-
运行以下命令,启用基于 ACS 的纯应用程序身份验证:
Set-PnPTenant -DisableCustomAppAuthentication $false
有关更多信息,请参阅 Set-PnPTenant。
-
请按照 Microsoft 文档中的步骤 使用 SharePoint 仅限应用程序授予访问权限。
-
复制客户ID和客户密码。
-
为您的部署定义适当的权限请求。
转到 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>
-
确认您信任该应用程序。
创建网站权限
为 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 项目开始,完成以下步骤:
-
从导航窗格中,选择 管理集合。
-
点击 “新收藏”。
-
单击 SharePoint Online,然后单击 Next。
-
为藏品命名。
-
如果 SharePoint 中文档的语言不是英语,请选择适当的语言。
有关受支持语言的列表,请参阅语言支持。
-
可选:更改同步计划。
有关详细信息,请参阅 爬行计划选项。
-
在 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
,然后提供以下值:
- 客户机标识
- 客户机密钥
-
-
在 Specify what you want to crawl 部分,为以下字段添加值:
- 网站收藏网址
- SharePoint 网络服务 URL。 例如,
https://organization_name.com
。 - 仅限用户负责人
- 在 Site Collection Name 字段中,指定站点集合使用的名称。 从站点集合设置中获取名称。
-
可选:如果使用代理服务器访问数据源服务器,则在代理设置部分,将启用代理设置开关设置为
On
。 为以下字段添加值:- 用户名
- 可选。 代理服务器用户名(如果代理服务器需要验证)。 如果您不知道用户名,可以从代理服务器的管理员处获取。
- 密码
- 可选。 代理服务器密码(如果代理服务器需要验证)。 如果您不知道密码,可以从代理服务器的管理员处获取。
- 代理服务器主机名或IP地址
- 代理服务器的主机名或IP地址。
- 代理服务器端口号
- 您要在代理服务器上连接的网络端口。
-
可选:如果要激活文档级安全性,请在安全性部分中,将启用文档级安全性开关设置为
On
。启用此选项后,用户可以抓取和查询与登录 SharePoint 时相同的内容。 有关详细信息,请参阅 支持文档级安全性。
仅限用户本金:启用此选项后,必须将注册时分配给应用程序的 Azure ID 添加到 Application ID 字段。
要启用文档级安全性,您必须向 SharePoint 注册应用程序。 如需了解更多信息,请参阅正在使用的 principal 类型的前提步骤。
-
如果您希望爬虫从网站图片中提取文本,请展开 更多处理设置,并将 应用光学字符识别 (OCR) 设置为
On
。启用 OCR 且文档包含图像时,处理时间会更长。 有关详细信息,请参阅 光学字符识别。
-
单击完成。
该系列创建迅速。 当数据被添加到数据集中时,需要更多的时间来处理数据。
如果想查看进度,请进入活动页面。 在导航窗格中,单击 管理收藏,然后单击打开收藏。