0

我正在开发一个 SPA,它依赖于Identity Server的实例来验证用户。我需要一个在本地管理我的令牌的解决方案,但 Duende(Identity Server 的所有者)倾向于使用后端换前端 (BFF) 模式而不是 Javascript 库。这对我们不起作用。由于不再维护由 Identity Server 的作者编写的原始 oidc-client,我一直在寻找 Javascript 替代方案。最有可能的候选者似乎是 Microsoft 的MSAL.js,它是为 Azure AD 构建的,但据说支持 OIDC 标准。

据我所知,MSAL.js 使用刷新令牌强制您使用离线访问路径来更新安全令牌。即使我没有明确要求offline_access范围,图书馆还是会附加一个范围!但我的用例不需要刷新令牌。相反,我希望我的客户使用 OIDC 会话管理标准(通过提供商众所周知的 JSON 公开的 check_session_iframe 端点)使身份提供商上的会话保持新鲜。

我发现,如果我忽略offline_accessMSAL.js 库请求的范围,因此我的身份提供者只发布 ID 令牌和访问令牌,那么 MSAL 将继续正常工作。它甚至可以ssoSilent选择通过隐藏 iframe 中的连接/授权请求显式更新令牌。但据我所知,我不能让图书馆像过去的旧 oidc-client 那样通过 iframe 保持会话新鲜。

因此,鉴于会话管理是 OIDC 规范的一部分,并且 MSAL 应该是符合 OIDC 的库,我是否在这里遗漏了什么?

4

1 回答 1

1

不幸的是,此时 MSAL.js 没有与checksession端点集成的 API。如果您希望看到此添加,欢迎您在我们的 Github上打开 PR 。

于 2022-02-09T23:32:11.553 回答