我正在构建一个 Web 应用程序;前端是使用 Angular8 的 SPA,后端是 ASP.NET Core 3.1 Web API。该应用程序已经有自己的身份验证方案,使用 JWT Bearer 令牌进行设置。
现在我需要为后端添加在用户的 Office365 日历上同步事件的功能。要求是:
- 用户应在前端登录其 Microsoft Office365 帐户;
- 前端应在后端“保存”身份验证结果,允许后端定期与 Micosoft Graph API 交互。
- 在(极少数)情况下,由于某些原因必须更新身份验证(例如需要不同的权限/范围),后端将通知前端需要新的登录。
我目前能够使用 MSAL.NET 和 msal-angular 在示例应用程序中执行成功登录,但我不能做的是将我从 msal-angular 获得的身份验证结果传递给 .NET 并使用它继续进行进一步通话和令牌续订。
我正在考虑修改/扩展 msal-angular 库以支持 MSAL.NET 中使用的 MSALv3 缓存序列化方案并将缓存发送到我的 Web 应用程序,但它似乎非常复杂和脆弱(我看到这些库的内部结构是跨版本不稳定)。
那么,MSAL 是否以其他方式支持此用例?我应该使用一些不同的库吗?