授予在 Microsoft Outlook 中添加事件的权限

问题描述 投票:0回答:1

所以我有一个 React 应用程序,我想要求用户授予我的应用程序对其日历的访问权限。我使用授权代码和 PKCE 流程做到了这一点:

  • 用户单击按钮即可
    allow access to calendar
  • 用户带着参数前往
    https://login.microsoftonline.com/common/oauth2/v2.0/authorize
    (包括传入PKCE的加密验证码)
  • 用户被重定向到 Microsoft 网站以授予
    Calendars.ReadWrite
    offline_access
  • 的权限
  • 我的后端由 Microsoft 网站触发,并带有来自
    code
    Authorisation Code flow
  • 我的后端触发
    https://login.microsoftonline.com/common/oauth2/v2.0/token
    来获取
    access_token
    refresh_token
    (带有 PKCE 的未加密验证令牌)
  • 后端将
    refresh_token
    存储在数据库中,并使用
    access_token
    将事件添加到用户的日历
  • 如果我想在几天后向用户的日历添加事件,我可以使用
    refresh_token
    获取新的
    access_token
    ,而无需使用 Microsoft 登录屏幕再次提示用户

我这里有三个问题:

  1. 这个流程对于这样的应用程序实际上有意义吗?做得正确吗?
  2. 在后端存储
    refresh_token
    的最佳且最安全的方式是什么?
  3. 我通过常规 HTTP 请求执行这些操作。使用
    msal
    React 和 JavaScript 包以某种方式使其变得更容易是否有意义?
oauth-2.0 outlook microsoft-graph-api authorization azure-ad-msal
1个回答
0
投票
  1. 是的,这是一个相当标准的方法。
  2. 这个问题太宽泛且基于观点,无法准确回答。
  3. 是的,您应该使用 MSAL。一般来说,尽可能避免重新实现安全协议,而是依赖信誉良好、积极支持的库。
© www.soinside.com 2019 - 2024. All rights reserved.