【发布时间】:2019-02-28 03:21:06
【问题描述】:
我正在尝试使用 /me 端点或 /users/{currentUserID} 端点更新用户的首选语言,但这总是抛出:
403 "权限不足,无法完成操作。"
我已经根据documentation page检查了权限并添加了User.ReadWrite、User.ReadWrite.All、Directory.ReadWrite.All、Directory.AccessAsUser.All的权限 。这似乎没有任何效果。文档不正确还是缺少权限?
如果我使用 azure 广告管理员用户执行该请求,则该请求可以正常工作。
编辑:2019-04-18
我做了更多测试:
- 我使用https://demos.microsoft.com 创建了一个新的演示租户
- 我使用租户管理员帐户登录图形资源管理器,并同意 User.ReadWrite(以及图形资源管理器要求的其他默认权限)的管理员。
- 我使用演示用户登录。
- 我使用https://graph.microsoft.com/v1.0/me/ 上的补丁将首选语言 设置为“en-US”。 这很成功。
- 我尝试再次将语言更改为“de-DE”。 这不起作用:
"message": "权限不足,无法完成操作。", “内部错误”:{ “请求 ID”:“d1d30483-a3da-4775-af5b-4a3dd9823f11”, “日期”:“2019-04-18T07:40:27” }
因此,第一次设置语言时它似乎可以工作。但是以后更新是不可能的。
【问题讨论】:
-
你什么时候添加这些权限的?当您添加权限时,请尝试注销并再次登录,关闭浏览器和所有这些东西......然后再次尝试重新登录。您还可以检查解码令牌的json Web令牌权限(例如jsonwebtoken.io)。
-
我关闭了浏览器,然后以私密模式启动。没有帮助。
-
令牌看起来不错:"scp": "... Directory.AccessAsUser.All Directory.ReadWrite.All Files.ReadWrite.All Group.ReadWrite.All IdentityRiskEvent.Read.All Mail.ReadWrite MailboxSettings .ReadWrite Notes.ReadWrite.All openid People.Read profile Reports.Read.All Sites.ReadWrite.All Tasks.ReadWrite User.ReadBasic.All User.ReadWrite User.ReadWrite.All email",
-
好吧,那我不知道 :( 至少目前......也许是一个错误,是另一个权限......