我正在将网络表单中的表单身份验证迁移到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加上此参数指定的时间段。
前者看起来很模糊,所以我不确定。
答案 0 :(得分:3)
在应用程序联合或基于声明的身份验证中,有两个实体 - 依赖方(RP)和身份提供方(IdP)
在Microsoft世界中,ADFS通常是IdP,依赖于ADFS进行身份验证的应用程序将是RP。
在身份验证时,IdP会生成一个由IdP证书签名的声明令牌。 RP接受此声明令牌 - 进行各种验证,包括使用IdP证书的数字签名。成功验证声明令牌后,RP会以cookie的形式发出会话令牌。该cookie的默认名称是FedAuth。 SessionTokenRequirement lifetime参数与FedAuth令牌的生命周期相关联。
SessionSucurityToken生命周期与IdP发布的声明令牌的生命周期相关联。
http://msdn.microsoft.com/en-us/library/hh568645(v=vs.110).aspx