【问题标题】:Controlling an application's API access to a SharePoint site控制应用程序对 SharePoint 网站的 API 访问
【发布时间】:2021-03-05 02:35:12
【问题描述】:

我有一个计划每天运行一次的外部程序(即没有用户交互)。此程序应使用 Microsoft Graph API 将文件上传到 SharePoint Online 网站。我可以通过注册一个应用程序在 Azure Active Directory 中启用此功能,并为此应用程序授予应用程序权限File.ReadWrite.All,然后发送一个 PUT 请求到 https://graph.microsoft.com/v1.0/drives/{drive-id}/items/{parent-id}:/{filename}:/content

但是,通过授予File.ReadWrite.All,该程序将有权访问我组织的所有网站集中的所有文件。我想限制对特定站点的访问,或者可能只是该站点中的特定文件夹。如何做到这一点? (程序运行时无需用户交互登录)

【问题讨论】:

  • 你结婚了吗?您是否设置了仅限 SharePoint 应用程序的上下文,您将拥有更多选项,如果您使用服务帐户凭据(密码不会过期且没有 O365 许可证的 AAD 帐户),您将拥有更多选项。
  • @DerekGusoff 你有解释这些选项的链接吗?

标签: microsoft-graph-api sharepoint-online


【解决方案1】:

编辑 (2021-03-04):现在可以这样做:https://developer.microsoft.com/office/blogs/controlling-app-access-on-specific-sharepoint-site-collections/

目前无法通过 Microsoft Graph 限制仅应用程序访问特定 SharePoint 网站。

【讨论】:

  • 还是这样吗?如果一个 azure 应用程序具有应用程序权限 Sites.Read.All,它似乎可以读取所有内容,希望我们可以以某种方式将其限制为仅某些站点并控制哪些站点使用 appinv.aspx 权限 XML 上下文,但它没有t 似乎以这种方式工作。如果 azure 应用拥有此应用权限,它似乎可以查看所有网站!
  • 据我所知,是的,情况一直如此。
  • @Becker 现在已经不是这样了:developer.microsoft.com/en-us/office/blogs/…
  • 这个有吗?我查看了 Microsoft Graph API 下的“选择 API 权限”,但找不到 Sites.selected。是否需要启用某些设置才能使其可访问?
  • @Sultanen 您可能正在查看“委派权限”。 Sites.Selected 是一个应用角色,列在“应用程序权限”下。
猜你喜欢
  • 2018-11-19
  • 2018-04-06
  • 2022-07-06
  • 1970-01-01
  • 2016-03-12
  • 1970-01-01
  • 2010-10-29
  • 1970-01-01
  • 2016-04-06
相关资源
最近更新 更多