对日历进行Graph API调用时禁用对OData的访问&&q;错误
我有一个从ServiceNow到Office 365的演示集成,上次我检查时一切正常(那是几天前)。我通过两种方式设置它(使用两个身份验证流):
授权码-这仍然工作正常。
客户端凭据-现在,当我尝试访问任何日历时,这会给我一个错误。应用程序已注册,权限在那里:
尝试运行getSchedule API时,收到以下响应:
"error": {
"code": "ErrorAccessDenied",
"message": "Access to OData is disabled.",
"innerError": {
"request-id": "e14a6800-ed63-4692-9934-cc0ec009d93b",
"date": "2020-03-16T14:43:34"
}
}
我找遍了我能查到的每一个地方。生成访问令牌。这肯定与日历的Graph API有关。
解决方案
问题与应用程序访问策略有关。
基本上,如果您在Microsoft 365的OAuth中使用应用程序权限,则可以使用以下说明进一步缩小权限范围: https://docs.microsoft.com/en-us/graph/auth-limit-mailbox-accessMicrosoft Graph应用程序权限(您可能不需要 他们):
- 邮件.Read
- Mail.ReadBasic
- Mail.ReadBasic.All
- Mail.ReadWrite
- 邮件发送
- MailboxSettings.Read
- MailboxSettings.ReadWrite
- 日历。阅读
- 日历.ReadWrite
- 合同。阅读
- Contacts.ReadWrite
有关配置应用程序访问策略的详细信息,请参阅
New-ApplicationAccessPolicy
的PowerShell cmdlet参考。处理API错误
API调用被拒绝时可能会遇到以下错误 由于配置的应用程序访问策略而进行访问。如果应用程序中的Microsoft Graph API调用返回此错误,请执行以下操作 与组织的Exchange Online管理员联系以确保 您的应用程序有权访问邮箱资源。{ "error": { "code": "ErrorAccessDenied", "message": "Access to OData is disabled.", "innerError": { "request-id": "<request GUID is here>", "date": "<UTC date format here>" } }
在我们的案例中,其中一个策略似乎没有正确删除/更新。删除与此集成相关的所有策略后,它再次开始工作。
相关文章