我无法让数据工厂中的 Sharepoint Online List 连接器正常工作,我已按照 Microsoft 提供的指南分步操作三遍:https://learn.microsoft.com/en-us/azure /data-factory/connector-sharepoint-online-list ,但运气不好。我已在 AAD 应用程序中添加了所有共享点站点权限,但当我通过链接服务测试连接时仍然收到以下错误:
获取odata服务元数据失败,请检查服务url和凭证是否正确以及您的应用程序是否有该资源的权限。预期状态码:200,实际状态码:未经授权,响应为:{"error":"invalid_request","error_description":"Token type is not allowed."}.
我也尝试过直接在 Sharepoint 中创建一个应用程序来实现这一点,但仍然没有成功。知道这个问题是什么吗?
可能的原因是您使用的服务主体或托管身份没有访问特定文件夹/文件的权限。 请对所有需要复制的文件夹及子文件夹授予相应的权限
要使用托管标识进行 Azure 资源身份验证,请按照以下步骤操作:
第 1 步: 通过复制与工厂一起生成的“服务身份应用程序 ID”的值来检索数据工厂管理的身份信息。
第 2 步: 授予托管身份对 Data Lake Store 的访问权限。请参阅 Azure Data Lake Storage Gen1 中的访问控制,了解权限在 Data Lake Storage Gen1 中如何工作的示例。
•
As source
:在数据浏览器> 访问中,至少授予所有上游文件夹(包括根目录)的执行权限,以及要复制的文件的读取权限。您可以选择添加到此文件夹和所有子文件夹以进行递归,并添加为访问权限和默认权限条目。没有帐户级访问控制 (IAM) 的要求。
•
As sink
:在数据资源管理器> 访问中,至少授予所有上游文件夹(包括根)的执行权限,以及接收器文件夹的写入权限。您可以选择添加到此文件夹和所有子文件夹进行递归,并添加为访问权限和默认权限条目。
出现此问题的原因是数据工厂中的 SharePoint Online 列表使用“ACS”(访问控制服务)来获取访问令牌,进而授权对其他应用程序的访问。但是,对于 2018 年 11 月 7 日之后建立的租户,ACS 默认处于禁用状态。
分享链接,以防万一以后有人遇到同样的问题(我猜你已经解决了,因为你的帖子已经有两年了:))。