MSAL.js是否支持check_session_iframe OIDC端点



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

据我所知,MSAL.js使用刷新令牌来续订安全令牌,从而迫使您走下offline_access路径。即使我没有明确要求offline_access作用域,库也会附加一个!但是我的用例不需要刷新令牌。相反,我希望我的客户端使用OIDC会话管理标准(通过提供者众所周知的JSON公开的check_session_frame端点(保持身份提供者上的会话新鲜。

我发现,如果我忽略MSAL.js库请求的offline_access作用域,因此我的身份提供程序只发布ID令牌和访问令牌,那么MSAL将继续正常工作。它甚至有一个ssoSilent选项,用于通过隐藏iframe中的连接/授权请求显式续订令牌。但据我所知,我不能让库像旧的oidc客户端那样通过iframe保持会话的新鲜感。

因此,考虑到会话管理是OIDC规范的一部分,并且MSAL应该是一个符合OIDC的库,我是否遗漏了一些内容?

遗憾的是,目前MSAL.js没有与checksession端点集成的API。如果你想看到这个添加,欢迎你在我们的Github上打开一个PR。

最新更新