我已经为用户注册了架构扩展。
我想用它来存储用户登录应用后的数据,但我无法弄清楚权限。在我的(管理员)帐户我能够,没问题,但我收到的正常用户帐户:
"error": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation.",
"innerError": {
"request-id": "2ee94ed5-f351-4992-8db0-2e3b420aa581",
"date": "2017-10-04T09:37:49"
}
}
我使用架构扩展而不是开放扩展(确实有效)的原因是我需要能够通过扩展来过滤用户。我似乎无法通过开放式扩展来做到这一点。
PATCH请求如下:
https://graph.microsoft.com/v1.0/me
{
"extkh2zr49b_notifications":{
"badgeCount":"0",
"pushToken":"test",
}
}
我对该应用的委派权限为:
profile
,openid
,Directory.AccessAsUser.All
,Directory.ReadWrite.All
,User.ReadWrite.All
答案 0 :(得分:1)
在普通用户可以利用某些范围之前,首先需要为这些范围提供Admin Consent。在您的情况下,范围Directory.AccessAsUser.All
,Directory.ReadWrite.All
和User.ReadWrite.All
需要得到同意。
您可能会发现此文章有用:v2 Endpoint and Admin Consent。
答案 1 :(得分:1)
我认为普通用户无法编辑其架构扩展。我尝试授予所有可用权限。
我最终使用的是开放式扩展程序。我能够返回一个组的所有成员以及他们的扩展。这对我来说已经足够了(远比检查组织中每个用户的扩展程序要好得多......)
查询如下:
?https://graph.microsoft.com/v1.0/groups/[id]/members/ $ / microsoft.graph.user $扩展=扩展&安培; $选择= ID
我在微软的任何官方文档中都找不到这个,所以希望它继续有效!