SharePoint文件夹应用程序权限 - 未经授权

3
我编写的 Python Flask 应用程序使用 Office 365 库与我们公司 SharePoint (在 365 云中) 进行交互。
我设置了以下应用程序权限,但是 https://xyz.sharepoint.com/sites/xxxyyyzzz/_api/Web/getFolderByServerRelativeUrl('sites%2Fxxxyyyzzz%2FFreigegebene%2520Dokumente%2FGeneral')/Folders 返回“401 - 未经授权的错误”。
<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/sitecollection" Right="FullControl" />
  <AppPermissionRequest Scope="http://sharepoint/content/sitecollection" Right="FullControl"/>
  <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl"/>
      <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web/list" Right="FullControl"/>
      <AppPermissionRequest Scope="http://sharepoint/content/xyz" Right="FullControl"/>
</AppPermissionRequests>

这将解析为以下权限:

  • 允许它完全控制此站点集。
  • 允许它完全控制此站点。
  • 允许它完全控制列表:
    • 文档
  • 允许它与其他用户共享其权限。
  • 允许它访问有关此站点用户的基本信息。

上传/下载文件等其他调用正在工作,但我无法使列表文件夹/创建文件夹正常工作。 在文档中也没有找到其他权限或更高的访问级别。

我缺少什么?


401错误意味着您没有任何访问令牌来请求SharePoint资源。此错误与访问权限无关。首先,您必须修复身份验证错误,然后您将看到有关对资源进行授权(访问权限)的信息。403错误涉及访问权限。 - Maxim
要在SharePoint Online上进行身份验证,您必须创建具有访问SharePoint权限的AAD应用程序注册,并请求OAuth令牌,如此处所述:https://blog.velingeorgiev.com/azure-python-flask-external-app-consuming-office365-sharepoint-site。如果您已完成此操作,请提供有关您的项目的更多信息。 - Maxim
正如提到的,其他调用是有效的,因此很难理解为什么这应该是一个认证错误。没有文件是公开的,但我可以通过api接收它们,所以连接似乎是正常的? - Nico Müller
浏览器开发者控制台、Fiddler或其他调试Web请求的应用程序可以帮助您理解应用程序查询成功或失败之间的差异。现在我假设您的应用程序没有正确的身份验证令牌。不幸的是,您没有描述如何在应用程序中实现身份验证。插件权限不等同于身份验证。在您的应用程序请求中某个地方缺少或不正确的身份验证令牌。 - Maxim
我终于成功解决了。错误非常恼人,实际上是递归创建文件夹的问题。使用 Office365 Python 库进行认证是有效的。 - Nico Müller
1个回答

1

401-未经授权的错误非常令人恼火,实际上这是创建文件夹树的问题。使用Office365 Python库进行身份验证。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接