4

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

现在我们使用 OAuth 2.0 和 OpenID Connect 进行身份验证,如本示例中所述。后来我们了解到,如果没有用户交互,我们使用这种方法获得的访问令牌不能在服务应用程序中使用。考虑到我们的场景,实现这一目标的最佳方法是什么?

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

4

1 回答 1

1

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

需要注意的一件事是,如果您使用客户端凭据流,则当前 Graph API 不允许您处理附加到 Office 365 组的日历。这对我们来说很痛苦,因此我们将其作为需要在 Office 365 反馈系统中修复的问题提出。如果这对您或其他任何人来说是个问题,请投几票,以便它在微软得到更多关注。:-)

于 2016-01-27T21:18:32.673 回答