Azure AD扩展属性+ MS Graph API PATCH =权限不足,无法完成操作

时间:2019-04-11 09:04:52

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

在过去的两天里,我一直在努力解决这个问题。

我的目标是允许用户(任何常规的非管理员Azure AD用户)通过Microsoft Graph API为其AD“配置文件” /帐户更新(Azure AD)扩展属性的值。

请考虑以下情况:

  • 我在控制某些Azure租户+ Azure AD目录(全局管理员)
  • 有一个常规的Azure AD用户“ Joe”
  • 我已经创建了一个应用程序注册+服务主体(通过PS或在Azure Web UI中)
  • 我已使用以下Azure AD PS命令​​创建了Azure AD扩展属性:

Connect-AzureAD -TenantId xxx-xxx-xxx
$app = Get-AzureADApplication -ObjectId yyy-yyy-yyy
$app | New-AzureADApplicationExtensionProperty -Name "MyProp" -DataType "String" -TargetObjects "User"

响应:

Name                                                  TargetObjects
----                                                  -------------
extension_b63fa5d85b9d43b8b60f982e4bf2ad11_MyProp     {User}

  • 我已同意Admin同意企业应用程序“ Graph Explorer”上的Graph以及我自己的应用程序注册上的所有内容,尤其是 Directory.ReadWriteAll User.ReadWrite.All
  • 然后,我使用以普通用户“ Joe”身份登录的Graph Explorer(或使用我自己的App Registration的Postman)
  • 使用以下PATCH请求失败:

PATCH https://graph.microsoft.com/v1.0/me/

with body (type application/JSON):

{
    "extension_b63fa5d85b9d43b8b60f982e4bf2ad11_MyProp": "test"
}

它失败并显示以下响应:

{
    "error": {
        "code": "Authorization_RequestDenied",
        "message": "Insufficient privileges to complete the operation.",
        "innerError": {
            "request-id": "d0ef63c0-f944-44c4-b90d-413b076b2bca",
            "date": "2019-04-11T08:21:48"
        }
    }
}

我似乎无法找出原因。 注意事项:

  • 当我以全局管理员身份在Graph Explorer中登录时,我能够成功更新此属性
  • 我还可以使用全局管理员身份登录的所有使用Azure AD PS的用户更新此属性
  • 一旦我给Joe担任Azure AD的Global Admin或User Admin角色,他也可以更新该属性
  • 作为“ Joe”,使用上述图表浏览器(或邮递员)中的PATCH请求,我可以更新“手机”
  • 作为“ Joe”,在Graph Explorer(或Postman)中使用上述PATCH请求,我无法更新“ city”或“ givenname”

我在做什么错了?

0 个答案:

没有答案