我们正在使用 Microsoft Graph开发一个Web应用程序,其中登录用户可以将所有日历事件导出到第三方日历应用程序.在初始导出之后,我们需要通过服务应用程序(在服务器上运行的计划任务)使导出的数据与日历更改保持同步.这需要是一个多租户应用程序,因为来自不同组织的人员应该能够使用此服务.
现在我们使用OAuth 2.0和OpenID Connect进行了身份验证,如this sample所述.稍后我们了解到,使用此方法获取的访问令牌无法在没有用户交互的情况下在服务应用中使用.考虑到我们的场景,实现这一目标的最佳方法是什么?
我已经阅读了关于App-only authorization method这样做的内容.如果我们使用此身份验证方法,则应用程序需要得到租户管理员的同意,并且这些应用程序在Office 365组织中可以访问的数据方面非常强大.考虑到我们正在开发不同组织使用的产品,使用这种方法是否可行?
最佳答案 要使用客户端凭据OAuth2.0流程(也称为“仅限应用程序”或服务帐户访问权限,具体取决于您正在阅读的文档),每个租赁的管理员都需要指定您的守护进程可以为其租户中的用户提供哪些范围.最终用户无法自己为您的代码提供这些范围权限(据我所知).
需要注意的一点是,如果您使用客户端凭据流,目前Graph API不允许您使用附加到Office 365组的日历.这对我们来说是一种痛苦,所以如果这对你或其他任何人来说都是一个问题,那么我们已经有了raised it as an issue that needs fixing in the Office 365 feedback system.,请为此投几票,以便在微软获得更多关注. 🙂