通过SessionAuthenticationModule生存期设置WIF会话令牌

时间:2014-12-22 13:08:20

标签: wif thinktecture-ident-server

请帮助我理解sessiontoken到期时间的概念。

以下是我从STS收到令牌后设置会话令牌的方式。

var   principal = validationfunction();//returns claimsprincipal
            if (principal != null)
            {
                var token = new SessionSecurityToken(principal.ClaimsPrincipal)
                {
                    IsReferenceMode = false

                };

                //this makes sure that the identity and claims are written to the cookie.
                FederatedAuthentication.WSFederationAuthenticationModule.SetPrincipalAndWriteSessionToken(token, true);
            }

请确认这是否属实:

  1. 如果令牌寿命为10分钟。如果用户10分钟不活动并且没有发送任何请求 网站会话令牌到期,并重定向到STS登录页面。

  2. 如果用户处于活动状态并且不断刷新页面/访问不同页面,则会话生命周期得到 精神焕发。这意味着每次用户访问该页面时,令牌都会获得新的到期值。因此,用户不会每10分钟重定向到登录页面。

  3. 如果用户请求受STS保护的资源(web api),则令牌的生命周期将被视为绝对值。无论用户是否处于活动状态,如果用户请求web api生成令牌10分钟后,该令牌将无效并重定向到STS登录页面。

  4. 以上概念是否正确?

1 个答案:

答案 0 :(得分:1)

  1. 您需要自己设置令牌生存期。默认为IIRC - 10h。当令牌过期并且您正在访问受保护资源时,应用程序将发出401.如果您有WsFed模块 - 这将导致往返STS

  2. 会话安全令牌默认为绝对过期

  3. 您不会使用cookie来保护Web API - 重定向对API没有意义(也不会进行Cookie身份验证)。