首页 > 解决方案 > 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": []
}

标签: office365microsoft-graph-api

解决方案


对于能够使用委托授权访问其他用户联系人文件夹的用户(在您的情况下称为管理员),需要 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-守护程序应用程序注册


推荐阅读