首页 > 解决方案 > oidc-client-js 对敏感数据的重新认证

问题描述

我正在使用oidc-client-js库针对来自 Angular 应用程序的 IdentityServer4 实现处理 OIDC 重定向 SSO 样式身份验证。应用程序中的 IdToken/Cookie 可以使用 1 天以上。访问令牌的生命周期较短,并且会进行静默刷新。有时应用程序会在用户无需再次登录的情况下保持启动并运行,这是我们想要的,但由于敏感数据,我们可能希望在应用程序中验证用户身份的特定区域。

我看到通过让应用程序再次询问密码并执行 ResourceOwner 授权样式密码验证来执行此操作尚不受库支持。我不介意将现有的 popUpRedirect 与提示请求设置一起使用以强制登录。我坚持的是我没有看到上次用户登录的时间戳发生的任何地方(至少记录在案)。前任。如果用户在最后 5 分钟内登录,则可以访问敏感数据。

在所有人加入之前,我不是在寻找访问令牌时间戳或到期时间。我们的访问令牌在没有用户干预的情况下被静默刷新,所以这无济于事。我在寻找 IdToken 上的时间戳吗?图书馆是否公开了这一点?还是我在这个过程中都错了?提前致谢。

标签: identityserver4oidc-client-js

解决方案


auth_time声明是您需要在上次发生交互式身份验证时验证的内容。它同时存在于 id_token 和 access_token 中,因此客户端应该很容易检查它是否足够新(如果不是,则触发提示=登录请求),并且您可以在敏感的后端 API 中断言它是否足够新.


推荐阅读