我的 Node.js 应用的 OAuth2 和 Microsoft Graph API?

OAuth2 and Microsoft Graph API for my Node.js app?

我想将 Office365/Graph 日历集成添加到现有 Node.js 应用程序(托管在 AWS 上)。我已经对 Google 的日历进行了类似的集成,设置起来很简单。我对 Microsoft 版本的东西几乎没有那么幸运。

我发现至少有 4 种不同的方法来注册应用程序(获取 clientId 和 clientSecret),我似乎对每种方法都遇到了不同的错误,但无法正常工作。

我认为我的问题很大一部分是因为我以前从未在 MS 生态系统中工作过,所以我没有很多文档假定的基本知识。

我不想通过 Microsoft 托管任何东西 - 我什至需要 Azure 帐户吗?

我想允许任何拥有 Office365 帐户的用户将其连接到我的应用程序 - 我是否需要了解 Active Directory 才能执行此操作?这部分需要 Azure 吗?

我找到了使用这两个 https://login.microsoftonline.com/common/oauth2 and https://login.microsoftonline.com/common/oauth2/v2.0 的说明,我是否需要担心我使用哪个版本取决于我如何注册我的应用程序?

Microsoft Graph 利用 Azure AD 对用户进行身份验证和授权。文档指的是:

To get your app authorized, you must get the user authenticated first. You do this by redirecting the user to the Azure Active Directory (Azure AD) authorization endpoint, along with your app information, to sign in to their Office 365 account. Once the user is signed in, and consents to the permissions requested by your app (if the user has not done so already), your app will receive an authorization code required to acquire an OAuth access token.

所以您需要注册一个Azure帐号来配置Azure AD服务。有关详细信息,请参阅 https://graph.microsoft.io/en-us/docs/authorization/app_authorization

同时,要在node.js应用程序中实现Microsoft Graph,您可以参考以下代码示例以供参考。

Matt,如果您使用 oauth2/v2.0 身份验证端点,则无需 Azure 帐户即可执行此操作。当您这样做时,您可以使用 Microsoft 帐户在 apps.dev.microsoft.com 上注册。

请参阅 this tutorial 了解如何使用 Outlook REST API 执行此操作,这与图表类似(事实上,对于日历操作,调用和实体是相同的)。