【问题标题】:Microsoft Graph API Insufficient privileges when trying to update 'mobilePhone'尝试更新“mobilePhone”时 Microsoft Graph API 权限不足
【发布时间】:2018-10-03 11:27:54
【问题描述】:

当尝试使用应用程序权限更新 (PATCH) 用户的 mobilePhone 属性时,来自 Graph 的响应是“权限不足,无法完成操作”(Authorization_RequestDenied)。

User.ReadWrite.AllDirectory.ReadWrite.All 权限均已授予。访问令牌通过 client_credentials 授权(oauth2/v2.0/token 端点)请求并指定 .default 范围,并且这两个权限都存在于访问令牌中的 role 声明中。

更新其他属性工作正常。该错误仅在更新 mobilePhone 属性时出现,并且仅具有应用程序权限(使用 Graph Explorer 和管理员用户有效)。

此行为突然开始于 2018 年 10 月 2 日。在此之前,更新手机属性也适用于应用程序权限(相同的权限)。

据我所知,用户 PATCH 请求或 mobilePhone 属性的 Graph 文档中没有添加新的限制/所需权限。这可能是什么问题?

注意:请求是使用 Microsoft.Graph.GraphServiceClient(.NET 标准)发出的,但在使用 Postman 发出请求时也是如此。

编辑:

这是来自 Graph API 的响应:

{
    "error": {
        "code": "Authorization_RequestDenied",
        "message": "Insufficient privileges to complete the operation.",
        "innerError": {
            "request-id": "e956cb0b-af0a-4bb7-aae3-59d39d007a82",
            "date": "2018-10-11T08:27:19"
        }
    }
}

【问题讨论】:

  • 坦率地说,这听起来像是 Graph API 的一个错误,为了提高知名度,该产品确实遵循 microsoft-graph 标签,所以希望他们注意到这一点 :)
  • 确实如此。您能否提供您应该在 403 错误响应中看到的客户端请求 ID 和时间戳,或者仅提供 full 错误响应。这将帮助我们查看日志并弄清楚发生了什么。理论上,User.ReadWrite.All 应该提供足够的权限来允许这种更改。
  • 感谢您的回复。 @DanKershaw-MSFT 我已经编辑了问题 - 添加了回复
  • @DanKershaw-MSFT 我们看到了同样的问题。同一应用程序可以在初始创建新用户 (POST) 操作中设置 mobilePhone 字段,但不能在更新用户 (PATCH) 中更改或设置它。

标签: azure-active-directory microsoft-graph-api


【解决方案1】:

我们的团队遇到了同样的问题,我们向 Microsoft 提出了支持请求并解决了问题。

解决方案是将帮助台管理员角色添加到服务主体/企业应用程序

Microsoft 更改了更新 PII 的安全策略并更改了允许更新的安全角色。

更多来自我们的支持请求答案:

发生这种情况的原因是最近由于新的 PII 敏感性问题而发生了变化。

因此,您现在需要将帮助台管理员角色添加到服务主体/企业应用程序。

您可以按照此处的文章执行此操作: https://blogs.msdn.microsoft.com/aaddevsup/2018/08/29/how-to-add-an-azure-ad-role-to-a-enterprise-application-service-principal/

这是修改值,例如:mobile/othermails/telephonenumber 属性。

【讨论】:

  • 感谢您发布该解决方法。需要明确的是,最近的这一变化影响了 3 个特定的用户属性——在 Microsoft Graph 中——businessPhones、mobilePhone 和即将发布的 otherMails;在 AAD 图中 - 电话号码、手机和其他邮件。我们还在研究运行 PowerShell 的替代方法以增加应用程序的权限。
  • @DanKershaw-MSFT -- 有没有办法将这些安全更改广播给 Azure AD 管理员?提前了解安全策略更改会很棒。谢谢!
  • @DanKershaw-MSFT 我们应该在哪里查看更新:PowerShell 的替代品?联系所有已经同意允许我们的应用程序更新其用户配置文件的客户,并告诉他们必须运行一些 PowerShell 才能为我们提供新的权限,这对我们或我们的客户来说都不是很好的体验。跨度>