oauth-2.0 如何在我的外接程序中安全地保持oauth2访问令牌

yuvru6vn  于 2022-10-31  发布在  其他
关注(0)|答案(1)|浏览(201)

这个问题可能是this one的重复,但我相信它没有得到适当的解决,一年后我也提出了同样的问题。
我想使用自己的oauth提供者身份验证流程,并且我想了解从服务器获取令牌的最佳用户流程。
根据文档,我们需要使用displayDialogAsync方法打开oauth屏幕,该屏幕将身份验证代码发送到后端,后端可以解码该代码并创建可用于Office加载项前端的令牌。
然而,没有任何迹象表明后端如何将令牌发送到前端。因为设置令牌cookie将无法从插件端访问它。似乎唯一的方法是从服务器重定向到https://localhost:3000/oauthResult/index.html?authToken=XXXX。而该路由可以以某种方式将令牌存储在某个地方,然后关闭对话框。
所以我主要的两个问题是:
1.如何安全地将访问令牌从后端发送到前端,而不使用带有cookie的重定向
1.在Office加载项生态系统中的何处安全地存储加载项,以便桌面客户端和Web客户端都可以获取它?我知道不应该使用Settings对象来执行此操作。
我尝试使用从后端到插件前端的重定向,并在cookie中设置了auth令牌,但该cookie无法在以后从插件端读取。

kq0g1dla

kq0g1dla1#

要获得灵感,请参阅Caching in MSAL。MSAL.js是用于JavaScript的Microsoft身份验证库。MSAL.js使用Web存储API,并且可以配置为使用sessionStorage、localStorage或memoryStorage。正如本文所述,不同存储位置之间的选择反映了更好的用户体验与更高的安全性之间的权衡。

相关问题