SessionSecurityToken lifeTime 是否与 sessionTokenRequirement 生存



我正在将网络表单中的表单身份验证迁移到Microsoft身份。

使用 ClaimsPrincipal cp 对象创建SessionSecurityToken时,我有以下代码:

Dim token As New SessionSecurityToken(cp, TimeSpan.FromMinutes(30))

但是,在web.config中,我也看到这个:

<configSections>
    <section name="system.identityModel" type="System.IdentityModel.Configuration.SystemIdentityModelSection, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <section name="system.identityModel.services" type="System.IdentityModel.Services.Configuration.SystemIdentityModelServicesSection, System.IdentityModel.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</configSections>
<system.identityModel>
    <identityConfiguration>
        <securityTokenHandlers>
            <add type="System.IdentityModel.Tokens.SessionSecurityTokenHandler, System.IdentityModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089">
                <sessionTokenRequirement lifetime="00:30:00" /><!-- 30 minutes -->  
            </add>
        </securityTokenHandlers>
    </identityConfiguration>
</system.identityModel>

这些是一回事吗? 为了证明我RTFM,sessionTokenRequirement lifetime定义为:

指定会话令牌的生存期。

SessionSecurityToken lifetime定义为:

从令牌生效的当前时间开始的时间段。属性将设置为 UtcNow,属性将设置为 ValidFrom 加上此参数指定的时间段。

前者似乎很模糊,所以我不确定。

在应用程序联合身份验证或基于声明的身份验证中,有两个实体 - 信赖方 (RP) 和标识提供者 (IdP)

在Microsoft世界中,ADFS 通常是 IdP,而依赖 ADFS 进行身份验证的应用程序将是 RP。

在身份验证时,IdP 会生成由 IdP 证书签名的声明令牌。RP 接受此声明令牌 - 执行各种验证,包括使用 IdP 证书的数字签名验证。成功验证声明令牌后,RP 会以 Cookie 的形式颁发会话令牌。此 Cookie 的默认名称是 FedAuth。SessionTokenRequirement 生存期参数与 FedAuth 令牌的生存期相关联。

会话安全令牌生存期与 IdP 颁发的声明令牌的生存期相关联。

请参考:http://brockallen.com/2013/02/14/configuring-session-token-lifetime-in-wif-with-the-session-authentication-module-sam-and-thinktecture-identitymodel/

http://msdn.microsoft.com/en-us/library/hh568645(v=vs.110).aspx

相关内容

  • 没有找到相关文章