我正在通过IdentityServer将ASP.NET Web应用程序从Forms身份验证转移到OIDC身份验证,其中隐式流程用于获取ID令牌。表单身份验证在客户端web.config中具有诸如“超时”和“ slidingExpiration”之类的选项,我正在寻找一种方法来确保使用IdentityServer时客户端具有相同的可配置性。
我了解在这种情况下有两个单独的cookie管理系统-客户端和IdentityServer。我想尽可能地对齐它们,并在单个位置配置这些选项。这可能是在任一端,一个将责任移交给另一端。
我研究过的一个选项是在两端设置UseTokenLifetime = true,然后使用IdentityServer客户端属性IdentityTokenLifetime作为配置客户端超时的一种方式。然后,这两个cookie应该在IdentityTokenLifetime指定的同一时间到期。当客户端的cookie超时时,它将重定向到IdentityServer进行身份验证,将在其中显示登录提示,因为其自己的cookie也将过期。但是,我不认为这允许滑动到期选项?
另一个选项可能是将UseTokenLifetime设置为false,在客户端cookie中间件中配置cookie选项,并确保客户端在身份验证时发送提示符=登录。这意味着即使IdentityServer的cookie设置与客户端不匹配(例如,客户端过期后IdentityServer cookie仍然有效),它仍将始终显示登录提示。不利的一面是,如果我添加更多的客户端,它将抑制SSO,因为它们始终必须为每个客户端登录。
我对此表示感谢
谢谢