【发布时间】:2022-02-09 22:07:33
【问题描述】:
我们有 2 个 MVC 应用程序作为客户端和一个 Identity Server 4。
我们已经使用 owin 设置了 cookie 中间件和 openIdconnect。
客户端 1 的 cookie 生命周期为 40 分钟。
客户端 2 的 cookie 生命周期为 10 分钟(出于安全原因,可能更严格)
我们在授权端点中发送 max-age = session_length,但在某些情况下,我们希望立即发送用户以进行重新身份验证(出于安全原因)。
因此,我们决定在这些情况下发送 max-age=0。
所以我们的问题是,如果我们需要在客户端 cookie 过期之前发送用户进行重新身份验证,用户将被重定向到最大年龄 = 0 的身份服务器,但是如果用户再次点击客户端登录页面会发生什么情况,用户将被重定向到 max-age=session_length 并且用户将获得令牌。
我们如何保护客户? 该用户未经过身份验证,因此我们不知道它是哪个用户。我们如何存储有关用户以前活动的信息?例如,我们可以在哪里存储之前的 max-age 值?因此,如果用户再次尝试访问登录页面,我们将知道正确的 max-age 值。
【问题讨论】:
-
解释有点乱,不知道你真正想要什么:只是让identityserver在每次执行auth请求时重定向到登录页面(身份服务器本身没有会话=没有sso)?跨度>
-
您说“用户未经过身份验证,所以我们不知道它是哪个用户”,但这只是身份提供者的特权,而不是客户端决定用户是否经过身份验证的特权。看起来你的照片有点上下颠倒。
标签: oauth single-sign-on identityserver4 owin openid-connect