通过Oauth2客户端凭据流,我获得了一个访问令牌,该访问令牌似乎具有针对Microsoft Graph API的正确的受众,角色...。
尽管如此,调用Graph API以获取特定用户的消息a仍会返回:
{
"error": {
"code": "UnknownError",
"message": "",
"innerError": {
"request-id": "1c24f471-ebca-489a-8264-8ef4cd66c72d",
"date": "2019-04-19T10:55:34"
}
}
}
令牌的有效负载似乎还可以:
{
"aud": "https://graph.microsoft.com",
"iss": "https://sts.windows.net/customer-tenant-XXXXXXXXXX/",
"iat": 1555670233,
"nbf": 1555670233,
"exp": 1555674133,
"aio": "42ZgYFgUNyvl6hTle8+nbZH4qu2/DwA=",
"app_displayname": "XXXXXXXXXXXXXXXX",
"appid": "OUR-ID-XXXXXXXXXXXXX",
"appidacr": "2",
"idp": "https://sts.windows.net/customer-tenant-XXXXXXXXXX/",
"oid": "YYYYYYYYYYYYYYYYYYYYYY",
"roles": [
"Mail.ReadWrite",
"Calendars.Read",
"Directory.Read.All",
"Chat.Read.All",
"ChannelMessage.Read.All",
"MailboxSettings.ReadWrite",
"Reports.Read.All"
],
"sub": "YYYYYYYYYYYYYYYYYYYYYYYYYY",
"tid": "WWWWWWWWWWWWWWWWWWWWWWWWWWW",
"uti": "ZZZZZZZZZZZZZZZZZZZZZZZZ",
"ver": "1.0",
"xms_tcdt": 1546954974
}
我的测试公司帐户上完全相同的身份验证流程完全可以正常工作。唯一的区别是我们的客户具有2016 Hybrid Exchange设置。单独的流程(一个用户的Oauth2授权代码)确实可以访问一个用户邮箱。
在客户Exchange配置上是否应该设置任何参数以使OAuth2 client_credentials流正常工作?