2013-09-27 5 views
0

내 mvc 3.0 웹 응용 프로그램의 인증에 ADFS 2.0을 사용하고 있습니다. 내 Trusting Party에서 TokenLifeTime을 1440 (24 시간)으로 설정했지만, 로그인 한 후 코드를 단계별 실행하면 세션 토큰의 ValidTo 날짜가 지금부터 600 분 (10 시간)에 불과하다는 것을 알 수 있습니다. TokenLifeTime을 600 미만으로 변경하면 날짜/시간이 내가 로그인 할 때 예상 한 것과 일치합니다. 즉, TokenLifeTime을 5로 설정하면 내 세션 토큰의 ValidTo 날짜는 로그인 한 때부터 5 분입니다.ADFS TokenLifeTime 최대 값은?

I 피난처 이 값의 최대 값에 대한 참조를 찾지 못했지만 세션 토큰의 ValidTo 시간을 600 분 이상으로 늘릴 수없는 이유를 설명하지 못했습니다.

그래서 ...

600 TokenLifeTime의 최대 가치인가?

ADFS에서 발급 한 세션 토큰의 ValidTo 시간에 영향을주는 다른 것이 있습니까?

+0

내가 Global.asax.cs

에 살고

의 값에 의해 결정 그런 다음, 원래의 모든 기본 세부 사항을 포함하는 토큰으로하지만 더 이상 validTo 날짜로 대체 SsoLifeTime 속성이이 속성에 영향을 미치는지 여부를 모르는 경우 지금 확인할 수 없습니다. 실제 가치가 무엇인지 확인할 수 있겠습니까? 만약 600이라면 1440으로 만드시겠습니까? (Set-AdfsProperty, Get-AdfsProperty). –

+0

WebSSOLifeTime도 1440으로 설정됩니다. 영향을주지 않습니다. –

답변

1

나는 이것을보고 있었고 나는 일하는 해결책을 찾았다 고 생각한다. 나는 분노에 아직 그것을 사용하지 않았다. 그래서 어떤 문제도 포함하고 있지 않다는 것을 확신 할 수 없다!

기본적으로이 토큰은 created이되었지만 사용하기 시작하기 전에 차단됩니다. validForDays

void WSFederationAuthenticationModule_SessionSecurityTokenCreated(object sender, SessionSecurityTokenCreatedEventArgs e) 
{ 
    var currentToken = e.SessionToken; 
    var validForDays = 1; 

    e.SessionToken = new SessionSecurityToken(
     currentToken.ClaimsPrincipal, 
     currentToken.Context, 
     currentToken.EndpointId, 
     DateTime.UtcNow, 
     DateTime.UtcNow.AddDays(validForDays)); 

    e.SessionToken.IsPersistent = true; 
} 
+0

이것은 유망 해 보입니다. SessionAuthenticationModule_SessionSecurityTokenReceived를 사용하여 비슷한 결과를 얻었지만 사람들이 계속 내 사이트에서 계속 활발한 활동을하고 있습니다. 내가 가지고있는 유일한주의 사항은 쿠키를 편집 할 때 쿠키 자체가 손상된다는 것입니다. 암호화 된 토큰을 사용하는 경우에만 문제가 발생할 수 있습니다. 답변 해주셔서 감사합니다. –

+0

SessionAuthenticationModule_SessionSecurityTokenReceived에서이 작업을 수행했으나 인증 된 사용자가 서버에서 요청할 때마다 확인 작업을 수행해야하므로 올바른 장소라고 느끼지 않았습니다. 쿠키를 편집 할 때'e.ReissueCookie = true; '를 사용합니까? –

관련 문제