SessionAuthenticationModule" validFrom" ThinkTecture似乎无效

时间:2014-07-17 17:14:30

标签: session-cookies wif thinktecture-ident-server thinktecture-ident-model

我有一个ASP.NET网站,其中有两台运行ThinkTecture软件的IDP服务器使用WS-FED对用户进行身份验证。

当我使用IDP服务器#1登录时,我可以正常登录,IDP会将令牌发送到我的网站,我会按预期获得会话令牌,我可以完全访问该网站。

当我登录IDP服务器#2时,我可以正常登录,IDP会将我重定向回我的网站,可能是因为它试图转换为会话令牌的SAML令牌。不幸的是,在这一点上,从我的网站上我看到了这个错误:

Specified argument was out of the range of valid values.
Parameter name: validFrom

和堆栈跟踪:

System.IdentityModel.Tokens.SessionSecurityToken..ctor(ClaimsPrincipal claimsPrincipal, UniqueId contextId, String id, String context, Byte[] key, String endpointId, Nullable`1 validFrom, Nullable`1 validTo, UniqueId keyGeneration, Nullable`1 keyEffectiveTime, Nullable`1 keyExpirationTime, SctAuthorizationPolicy sctAuthorizationPolicy, Uri securityContextSecurityTokenWrapperSecureConversationVersion) +1011230
System.IdentityModel.Tokens.SessionSecurityToken..ctor(ClaimsPrincipal claimsPrincipal, UniqueId contextId, String context, String endpointId, Nullable`1 validFrom, Nullable`1 validTo, SymmetricSecurityKey key) +317
System.IdentityModel.Tokens.SessionSecurityTokenHandler.CreateSessionSecurityToken(ClaimsPrincipal principal, String context, String endpointId, DateTime validFrom, DateTime validTo) +306
System.IdentityModel.Services.SessionAuthenticationModule.CreateSessionSecurityToken(ClaimsPrincipal principal, String context, DateTime validFrom, DateTime validTo, Boolean isPersistent) +313
System.IdentityModel.Services.WSFederationAuthenticationModule.SignInWithResponseMessage(HttpRequestBase request) +1079
System.IdentityModel.Services.WSFederationAuthenticationModule.OnAuthenticateRequest(Object sender, EventArgs args) +123940
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165

经过一段时间(约10分钟)后,我开始看到这个错误:

ID4148: The Saml2SecurityToken is rejected because the SAML2:Assertion's NotOnOrAfter condition is not satisfied.
NotOnOrAfter: '17/07/2014 17:01:07'
Current time: '17/07/2014 17:10:08' 

我正在使用ThinkTecture人员建议的滑动会话代码:

protected void Application_Start()
{
    PassiveModuleConfiguration.EnableSlidingSessionExpirations();
}

当您刷新页面时,NotOnOrAfter在几个小时内保持不变。

由于一个IDP服务器工作正常而另一个没有,我只能假设第二个IDP服务器上的配置在某种程度上不同。第二个IDP上的令牌生存期设置为10小时。

所有3台服务器都有相同的时间。

我认为SAML断言是由IDP而不是Web服务器(IIS)设置的?

有什么想法吗?

0 个答案:

没有答案