MSAL.js 是否支持 check_session_iframe OIDC 端点?

Does MSAL.js support the check_session_iframe OIDC endpoint?

我正在开发一个 SPA,它依赖于为 Azure AD 构建的 Identity Server for authenticating users. I need a solution that manages my tokens locally, but Duende (the owners of Identity Server) lean towards a Backend For Frontend (BFF) pattern over Javascript libraries. This isn't going to work for us. Since the original oidc-client that was written by the authors of Identity Server is no longer maintained I've been looking at Javascript alternatives. The most likely candidate would seem to be Microsoft's MSAL.js 实例,但据称支持 OIDC 标准。

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

我发现,如果我忽略 MSAL.js 库请求的 offline_access 范围,那么我的身份提供者只发布 ID 令牌和访问令牌,那么 MSAL 将继续正常工作。它甚至有一个 ssoSilent 选项,用于通过隐藏 iframe 中的 connect/authorize 请求显式更新令牌。但据我所知,我无法像旧的 oidc-client 那样让库通过 iframe 保持会话新鲜。

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

遗憾的是,此时 MSAL.js 没有与 checksession 端点集成的 API。如果你想看到这个添加,欢迎你在 our Github.

上打开一个 PR