在 SharePoint online 上调用 GET 请求时出现 Azure 数据工厂 401 错误 API

Azure Data Factory 401 error when calling GET request on SharePoint online API

我正在尝试在 Azure 数据工厂和 SharePoint Online 之间移动文件。

我在 SharePoint 位置有一些测试数据文件,我在数据工厂中有一个包含 Web Activity 和复制数据 activity 的管道。副本 activity 然后链接到数据湖作为其接收器。

我的期望结果 是复制数据 activity 被授予对 SharePoint Online API 的访问权限,然后继续将检索到的数据移动到数据湖。就目前而言,它具有不记名令牌,但无法通过 SharePoint Online API.

访问数据

我已遵循 Microsoft 指南 here,包括先决条件。

我在数据工厂中收到以下错误: Error code 2200 "Failure happened on 'Sink' side. ErrorCode=UserErrorInvalidCredentialToReadHttpFile,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=The credential to read http file is invalid.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Net.WebException,Message=The remote server returned an error: (401) Unauthorized.,Source=System,

错误出现在复制数据 activity(使用 HTTP 链接服务),不是网络 activity。因此,我成功地获得了传递给复制数据 activity 的不记名令牌,只是被拒绝了。

疑难解答:

我了解到,数据工厂中的替代 OData 链接服务无法在此处使用基本身份验证。因此,我尝试 this article 使用带有证书的 AAD 服务主体,但在尝试生成证书时遇到了更多问题。也许这是我最好的选择。

我使用过的最相关的帖子:

https://docs.microsoft.com/en-us/answers/questions/109275/copy-file-from-sharepoint-not-working.html

http://www.ktskumar.com/2017/01/access-sharepoint-online-using-postman/

Azure Data Factory and SharePoint

所以我找到了问题的解决方案。使用 Azure 逻辑应用将文件从 SharePoint Online 移动到 Azure 存储。

这比使用数据工厂要容易得多,我希望刚才有人告诉我这一点。

找到参考 here