我们使用Microsoft Graph在.Net Core 2.0应用程序中实现身份验证,以针对Azure AD进行身份验证。
工作正常,我们的目标是使用Microsoft Graph访问Office 365数据。
不幸的是,经过深入审核,我们发现Tasks are currently unsupported via Microsoft Graph并且必须通过Outlook REST API进行访问。
重要:Microsoft Graph中的/ beta版本下的API处于预览状态,可能会发生变化。不支持在生产应用程序中使用这些API。
我尝试在Outlook REST API标头中传递通过Microsoft Graph检索到的Bearer Token但我收到了invalid token
错误。
我希望我只是做错了,这是一种有效的方法。
由于MS Graph是Outlook REST API和其他人的“统一”替代品,因此可以使用Microsoft Graph令牌来访问Outlook REST API吗?
答案 0 :(得分:3)
是的,这是正确的行为。代币仅对特定“受众”有效,该代理由代币内的aud
声明表示。
如果您获得了Microsoft Graph API的令牌,则aud
参数将设置为https://graph.microsoft.com
。这与Office 365 API端点(https://outlook.office.com
或https://outlook.office365.com
)不匹配,因此令牌验证失败。你有两个选择。
offline_access
范围)。然后使用该刷新令牌获取具有适当受众的第二个令牌。您可以使用刷新令牌通过限定refresh request中的范围来请求与Office 365 API兼容的令牌。例如,如果您请求带有Tasks.Read
的图表标记,则可以将刷新请求中的Tasks.Read
限定为https://outlook.office.com/Tasks.Read
。
答案 1 :(得分:0)