office365 - Microsoft graph people\me 返回空的用户列表
问题描述
我在 Office 365 试用版中创建了一个帐户。我在 Azure 上添加了具有权限的新应用注册:
BookingsAppointment.ReadWrite.All
Calendars.ReadWrite
Contacts.ReadWrite
EWS.AccessAsUser.All
Mail.ReadWrite
Mail.Send
People.Read
User.Read
User.ReadBasic.All
当我以创建办公室帐户的用户身份调用https://graph.microsoft.com/v1.0/me/people时,将获得完整的用户和资源列表。
当我以具有管理员权限的管理员身份调用时,我得到一个空列表。我在管理员用户和创建的管理员用户上调用权限链接:
https://login.microsoftonline.com/{}/oauth2/v2.0/authorize?client_id={}&response_type=code&scope=BookingsAppointment.ReadWrite.All%20Calendars.ReadWrite%20Contacts.ReadWrite%20EWS.AccessAsUser.All%20Mail.ReadWrite%20Mail.Send%20People.Read%20People.Read%20User.Read%20User.ReadBasic.All
怎么了?
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('fb6b188c-8698-4a03-9da4-82b7479c4625')/people",
"value": []
}
解决方案
对于能够使用委托授权访问其他用户联系人文件夹的用户(在您的情况下称为管理员),需要 Contacts.Read.Shared 或 Contacts.ReadWrite.Shared 参见https://docs.microsoft.com/en -us/graph/outlook-get-shared-contacts-folders。
另一件事是管理员权限对邮箱访问没有任何意义,例如对邮箱的委托访问都需要通过 Add-MailboxPermission https://docs.microsoft.com/en-us/exchange/recipients/mailbox-permissions专门授予?view=exchserver-2019或通过 Outlook 委托。(例如,如果您可以通过 OWA 或 Outlook 访问目标邮箱,则您的 Exchange 权限很好,但只是作为租户管理员就可以访问邮箱)。您的另一个选择是,如果您尝试创建一个将访问租户中所有邮箱的应用程序,请查看仅应用程序令牌https://docs.microsoft.com/en-us/azure/active-directory/develop/scenario-守护程序应用程序注册
推荐阅读
- text-processing - 是否有可以将文本翻译成日期的公共服务?
- c++ - 如何将 torch::tensor 形状与其他一些形状进行比较?
- performance - 有没有利用按字母顺序排列的倒排索引的算法?
- reactjs - 反应按钮单击事件无法正常工作
- r - 使用 Caret 和食谱训练模型:错误并非食谱中的所有变量都存在
- rust - 如何在 Rust HashMap 中使用引用计数键?
- java - 图像/外部 css 未在 Freemarker 模板中加载
- javascript - 对象中的匿名箭头函数
- kubernetes - 服务未与 Rollout 连接
- django - 有没有办法可以在 Django 旁边运行 Discord 机器人?