代表用户的 Microsoft OAuth

时间:2021-02-10 15:42:25

标签: .net oauth-2.0 microsoft-graph-api

我有一个由前端 (Vue) 和后端 (.NET) 组成的应用程序,我想在用户的 Microsoft 日历中执行一些操作。(创建、更新、删除等)。目标是当用户在前端进行特定操作并向后端发送请求时,后端将使用microsoft graph api 进行一些操作。在浏览 Microsoft 文档时,我对在对用户进行身份验证后应该将收到的令牌存储在哪里感到有些困惑。

enter image description here

我目前有一个数据库,我的用户存储在其中。简单地将刷新令牌存储在该数据库中并在后端需要代表用户执行操作时检索它是否正确?文档提到将令牌作为 cookie 存储在浏览器中,但我不能简单地将它们存储在后端吗?

1 个答案:

答案 0 :(得分:0)

您的场景看起来像是您的 SPA 调用了您的 Web API,而后者又调用了 Graph API。

在这种情况下,SPA 可以调用您的 Web API 并提供 JWT 令牌。

您的 Web API 应验证令牌并使用 Microsoft 身份验证库 (MSAL) AcquireTokenOnBehalfOf 方法从 AAD 请求另一个令牌,以便您的 Web API 可以代表用户调用图形 API。

您的 Web API 还可以调用 AcquireTokenSilentlater 来代表同一用户请求其他 API 的令牌。 AcquireTokenSilent 在需要时刷新令牌。

A web API that calls web APIs