我正在尝试使用Microsoft图形API读取和编写Birthday和Hiredate用户属性。我配置了以下app和委派权限。
我作为普通用户获得访问被拒绝错误但是为azure admin工作。
代表 User.Read,User.ReadBasic.All,User.ReadWrite,Directory.AccessAsUser.All(仅限管理员),Directory.Read.All(仅限管理员),Directory.ReadWrite.All(仅限管理员),User.Read.All(仅管理员),User.ReadWrite.All(仅限管理员),
应用 Directory.Read.All,Directory.ReadWriteAll(仅限管理员),User.Read.All(仅限管理员),User.ReadWrite.All(仅限管理员)
请帮助我为应用程序读取和写入普通用户的生日和雇用日属性所需的权限。
答案 0 :(得分:2)
您不能在同一令牌中激活Application和Delegated范围。使用的完全基于您用于获取令牌的OAuth Grant。您可能会发现此文章很有用:Application vs Delegated Scopes。
您还选择了几个需要管理员同意的范围才能在租户中使用。在您获得此同意之前,普通用户将无法进行身份验证。您可能会发现此文章很有用:v2 Endpoint & Admin Consent。
就范围而言,为了阅读用户的个人资料(包含这些属性),您应该只需要User.Read
。您可以而且应该删除您要求的所有其他范围。在权限范围方面,更多永远不会更好。
注意:我上面提到的两篇文章都是我写的。此外,虽然他们处理v2端点,但其中的概念适用于AAD v1和v2 OAuth端点