PATCHing mobilePhone时的授权问题,而不是其他属性

时间:2018-03-07 16:58:24

标签: microsoft-graph

我们有一个使用User.ReadWrite.All权限范围来更新用户属性的应用。我们使用客户端凭据流(也称为app-only)来使用这些请求的图表进行身份验证。

昨天我们发现我们可以为用户提供PATCH postalCode而不会出现问题,但我们无法使用PATCH mobilePhone。我们会得到Authorization_RequestDenied

E.g。请求:

PATCH https://graph.microsoft.com/v1.0/myorganization/users/6c778de7-e2d1-4561-9ecf-2f8bdc8b4ebd

{
    "mobilePhone": "+1 33164339301"
}

在Authorization标头中包含有效的承载令牌,其中包含以下有效内容(我为租户和应用程序编辑了ID):

{
  "aud": "https://graph.microsoft.com",
  "iss": "https://sts.windows.net/<REDACTED>/",
  "iat": 1520381940,
  "nbf": 1520381940,
  "exp": 1520385840,
  "aio": "<REDACTED>",
  "app_displayname": "<REDACTED>",
  "appid": "<REDACTED>",
  "appidacr": "1",
  "idp": "https://sts.windows.net/<REDACTED>/",
  "oid": "<REDACTED>",
  "roles": [
    "User.ReadWrite.All"
  ],
  "sub": "<REDACTED>",
  "tid": "<REDACTED>",
  "uti": "<REDACTED>",
  "ver": "1.0"
}

响应:

{
  "error": {
    "code": "Authorization_RequestDenied",
    "message": "Insufficient privileges to complete the operation.",
    "innerError": {
      "request-id": "da640831-a28c-4c66-aa74-8eebede64fc7",
      "date": "2018-03-07T00:34:43"
    }
  }
}

请注意,JWT包含User.ReadWrite.All,它需要管理员同意并且应该能够更新用户属性。

但是,使用完全相同的JWT,我能够使用PATCH postalCode。

有问题的用户看起来不像是在本地同步,因为用户会出现以下情况:

"onPremisesImmutableId": null,
"onPremisesLastSyncDateTime": null,
"onPremisesProvisioningErrors": [],
"onPremisesSecurityIdentifier": null,
"onPremisesSamAccountName": null,
"onPremisesSyncEnabled": null,
"onPremisesUserPrincipalName": null,

旁注:(不确定是否有帮助)但如果我使用mobilePhone的当前值进行PATCH,则会得到204响应,而不是403.

是否还有其他因素会妨碍mobilePhone被修补?

更新:这是图表团队确认的错误,现已修复。您现在应该能够正确修补mobilePhone。

0 个答案:

没有答案