用于服务应用的Microsoft Graph API auhetication

时间:2016-01-27 12:29:24

标签: asp.net-mvc azure office365 microsoft-graph azure-ad-graph-api

我们正在使用Microsoft Graph开发一个Web应用程序,其中已登录的用户可以将所有日历事件导出到第三方日历应用程序。在初始导出之后,我们需要通过服务应用程序(在服务器上运行的计划任务)使导出的数据与日历更改保持同步。这需要是一个多租户应用程序,因为来自不同组织的人员应该能够使用此服务。

现在我们使用OAuth 2.0和OpenID Connect进行身份验证,如this sample中所述。后来我们了解到,在没有用户交互的情况下,我们使用此方法获得的访问令牌无法在服务应用中使用。考虑到我们的场景,实现这一目标的最佳方法是什么?

我已阅读App-only authorization method来执行此操作。如果我们使用此身份验证方法,则应用程序需要得到租户管理员的同意,并且这些应用程序在Office 365组织中可以访问的数据方面非常强大。考虑到我们正在开发不同组织使用的产品,使用这种方法是否可行?

1 个答案:

答案 0 :(得分:1)

要使用客户端凭据OAuth2.0流程(又名"仅限应用程序"或服务帐户访问权限,具体取决于您正在阅读的文档),每个租赁的管理员都需要指定守护进程可以为其租户中的用户提供哪些范围。最终用户无法自己为您的代码提供这些范围权限(至少据我所知)。

需要注意的一点是,如果您正在使用客户端凭据流,那么当前的图形API不允许您使用附加到Office 365组的日历。这对我们来说是一种痛苦,所以我们raised it as an issue that needs fixing in the Office 365 feedback system.如果这对您或其他任何人来说都是一个问题,请为此投几票,以便在Microsoft获得更多关注。 : - )