Email 403:提供的用户凭据没有使用Beta API查询电子邮件的必要访问范围
我有两个API密钥,它们似乎是使用完全相同的API权限定义的:Email 403:提供的用户凭据没有使用Beta API查询电子邮件的必要访问范围,email,debugging,permissions,jwt,microsoft-graph-api,Email,Debugging,Permissions,Jwt,Microsoft Graph Api,我有两个API密钥,它们似乎是使用完全相同的API权限定义的: Calendars.Read offline_access Calendars.Read.Shared openid email profile Files.Read.All Sites.Read.All Mail.Read User.Read Mail.Read.Shared
Calendars.Read offline_access
Calendars.Read.Shared openid
email profile
Files.Read.All Sites.Read.All
Mail.Read User.Read
Mail.Read.Shared
我意识到其中一些是多余的(例如日历。阅读和日历。阅读。共享),可能对我正在做的事情过于宽容。我的意图是,一旦我更好地理解这个问题,就缩小范围
我的应用程序正在尝试查询outlook日历和outlook邮件。当我使用其中一个键时,它工作正常,没有问题。如果使用另一个键,则API返回403,并显示以下消息:
{
"error": {
"code": "System.UnauthorizedAccessException",
"message": "\r\n The provided user credentials did not have necessary access-scopes ",
"innerError": {
"date": "2020-07-19T19:25:33",
"request-id": "e1c703df-4fed-4219-b2d4-1436ea762987"
}
}
}
当我查看针对每个密钥返回的访问令牌jwt时,它们具有非常不同的scp字段:
工作scp:日历。读取日历。读取。共享电子邮件文件。读取。所有邮件。读取邮件。读取。共享openid配置文件站点。读取。所有用户。读取“
scp失败:Calendars.Read.Shared Files.Read.All Mail.Read.Shared Sites.Read.All User.Read profile openid电子邮件
适用范围如下:
offline\u访问用户.Read Files.Read.All Mail.Read.Shared Calendars.Read.Shared Sites.Read.All
outlook邮件搜索的URL和请求如下所示:
https://graph.microsoft.com/beta/search/query
"requests": [
{
"query": {
"query_string": {
"query": "meeting"
}
},
"from": 0,
"enableTopResults": "true",
"entityTypes": [
"microsoft.graph.message"
],
"size": 20
}
]
}
关于这里发生了什么或者如何进一步调试有什么想法吗
谢谢