使用Identity Server 4重新进行身份验证 [英] Re-authentication using Identity Server 4

查看:28
本文介绍了使用Identity Server 4重新进行身份验证的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们有2个MVC应用程序作为客户端和1个Identity Server 4。

我们已使用owin设置Cookie中间件和openIdconnect。

客户端%1的Cookie生存期为40分钟。

客户端2的Cookie生存期为10分钟(可能出于安全原因更严格)

我们在自动分区终结点中发送max-age=session_length,但在某些情况下,我们希望立即发送用户以进行重新身份验证(出于安全原因)。

因此,我们决定在这些情况下发送max-age=0。

因此,我们的问题是,如果我们需要在客户端Cookie过期之前发送用户进行重新身份验证,则用户将被重定向到max-age=0的Identity Server,但如果用户再次访问客户端登录页面,将使用max-age=session_length重定向用户,并且用户将获得令牌。

我们如何保护客户端? 用户没有经过身份验证,所以我们不知道它是哪个用户。我们如何存储有关用户以前活动的信息?例如,我们可以将先前的最大年龄值存储在哪里?因此,如果用户再次尝试访问登录页面,我们将知道正确的最长时间值。

推荐答案

OpenID Connect授权重定向过程中发送max-age参数时,在ID令牌中作为auth_time声明下发。您的每个客户端都将有一个单独的客户端。

因此,在给定传入请求的情况下,检查cookie,获取ID令牌,并查看是否超过auth_time。如果是(或者如果没有有效的应用程序cookie),请按照Anders的说法发送这些参数:

prompt=login, max_age=sessiontime

否则只发送此内容:

max_age=sessiontime
当您无法获得所需的注销可用性或可靠性时,通常会使用此机制。只需在注销时从应用程序中删除令牌,即可避免注销重定向到授权服务器。

这篇关于使用Identity Server 4重新进行身份验证的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆