SessionSecurityToken lifeTime与sessionTokenRequirement生命周期相同吗?

时间:2014-11-19 11:42:48

标签: asp.net asp.net-identity claims-based-identity

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

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

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 is defined as

  

指定会话令牌的生命周期。

SessionSecurityToken lifetime is defined as

  

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

前者看起来很模糊,所以我不确定。

1 个答案:

答案 0 :(得分:3)

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

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

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

SessionSucurityToken生命周期与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