【问题标题】:Microsoft Graph - App is unauthorized to create Sharepoint List subscriptionMicrosoft Graph - 应用未经授权创建 Sharepoint 列表订阅
【发布时间】:2020-11-25 10:20:44
【问题描述】:

我很难使用 ClientCredential 身份验证流程制作应用程序以在 SharePoint 列表上创建订阅。

请求

var subscription = new Subscription
{
    ChangeType = "updated",
    NotificationUrl = "{validNotificationUrl}",
    Resource = "sites/root/lists/{listId}",
    ExpirationDateTime = DateTime.UtcNow.AddDays(2),
    ClientState = "{clientState}"
};

subscription = await _graphClient.Subscriptions.Request().AddAsync(subscription);

回应

Unauthorized 403
{
  "error": {
    "code": "ExtensionError",
    "message": "Operation: Create; Exception: [Status Code: Forbidden; Reason: Access denied. You do not have permission to perform this action or access this resource.]",
    "innerError": {
      "date": "2020-08-04T13:01:27",
      "request-id": "c480fa5d-4bbd-44a1-9f86-587548a29a19"
    }
}

我检查了请求 access_token,它具有所需的权限(Sites.ReadWrite.All, Sites.Manage.All 根据documentation 应该足够了)。 阅读订阅和创建列表适用于应用程序。

我开始尝试不同的配置,试图找出问题所在,并设法:

  • 让应用在用户资源上创建订阅。
  • 让委派用户在列表上创建订阅

我感觉很迷茫,因为我给应用程序比委派用户更多的权限,它仍然得到未经授权的 403,响应错误并不能说明如何解决这个问题。

是否有任何 SharePoint 列表订阅配置需要仅用于应用身份验证?

【问题讨论】:

  • 您是如何获得访问令牌的?使用秘密还是证书?
  • 我正在使用客户端密码对客户端凭据和委托用户流的应用程序进行身份验证。
  • 您可以尝试使用证书吗? Microsoft graph 中的 SharePoint API,以及它自己的 rest API 需要证书身份验证才能获取访问令牌以进行某些操作
  • 我已从使用客户端密码切换到证书,但没有结果。一切看起来都一样。我可以做我以前做过的请求,但是在 SP 列表上创建订阅仍然返回相同的错误。也许 request-id (11247f02-e8ff-4a1b-8917-23d6743aa9ee) 可能有用?

标签: microsoft-graph-api microsoft-graph-sdks sharepoint-list microsoft-graph-files


【解决方案1】:

该服务目前遇到一个问题,即仅应用列表和驱动器订阅在不应该的情况下被拒绝访问。该团队目前正在努力解决该问题。我建议您在我们调查问题时关注this issue,或者您打开支持票证,要求将您的票证链接到 ICM 200246697。

【讨论】:

    猜你喜欢
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 2022-11-04
    相关资源
    最近更新 更多