使用仅应用程序的令牌时,Microsoft Graph返回“令牌不包含任何权限,...”

时间:2019-04-08 12:05:40

标签: microsoft-graph microsoft-graph-mail

我使用邮递员试图检索Outlook邮箱中收到的最新电子邮件。

为此,我已经在App Portal中声明了我的应用。然后,我可以执行一个GET请求,以从端点获取令牌:

https://login.microsoftonline.com/[tenantId]/oauth2/token

接下来,我尝试使用收到的令牌在

处执行请求
https://graph.microsoft.com/v1.0/me/mailfolders/inbox/messages

问题在于API返回:

{
  "code": "NoPermissionsInAccessToken",
  "message": "The token contains no permissions, or permissions can not be understood.",
}

在我的应用程序权限中,我已授权与阅读电子邮件有关的所有操作。我想念什么吗?

3 个答案:

答案 0 :(得分:0)

这听起来像是您忘记了“授予许可”(这对我们当中最好的人是:P)。

授予租户许可。最简单的方法是通过https://portal.azure.com-> Azure AD->应用程序注册->您的应用程序->设置->所需权限->按钮授予访问权限。)

与此answer

相关

它还有助于获取令牌并将其粘贴到https://jwt.ms中,这将向您显示令牌中的所有数据(并且还应显示有关授予的权限的声明)。

答案 1 :(得分:0)

我实际上没有获得该范围的管理员批准(本例中为read.mail)。在仅应用程序中,您需要获得管理员的批准。为此,管理员必须使用以下网址:

https://login.microsoftonline.com/common/adminconsent?client_id=[your_client_id]&state=[random_string]&redirect_uri=http://localhost/

将提示管理员批准权限。

答案 2 :(得分:0)

例外是用于查找会议时间或发送邮件的API,该API仅适用于 Office 365邮箱(在Azure AD上),不适用于 Microsoft帐户

>

为便于参考,本文的其余部分使用Outlook.com来包括这些Microsoft帐户域。

https://docs.microsoft.com/en-us/previous-versions/office/office-365-api/api/version-2.0/calendar-rest-operations