0

우리는 WIF 기반의 사용자 지정 활성 STS가 있습니다. 일반적으로 클라이언트 요청에 따라 표준 보안 토큰을 발행합니다. STS 서비스 구성에서 DefaultTokenLifetime 매개 변수를 1 분으로 설정했습니다.STS 보안 토큰 유효 기간을 확인해야하는 사람

그런 다음 15 초마다 적용된 토큰으로 서버를 호출합니다. 그러나 1 분이 경과하면 서버에 대한 호출이 성공적으로 완료됩니다. 이것은 이상한 행동입니다! 보안 토큰의 ValidTo 매개 변수를 확인해야하는 사람은 누구입니까?

RP (비즈니스 로직 서비스)의 보안 토큰 유효성을 검사하는 가장 좋은 방법은 무엇입니까?

UPD : 해결 방법이있는 것으로 보입니다. 우리는 클라이언트 측에서 추적 코드를 사용하는 방법으로 은 :

ChannelFactory<ICalculator> calcFactory = new ChannelFactory<ICalculator>(GetClientBinding(), ServiceAddress); 
calcFactory.ConfigureChannelFactory(); 
ICalculator calc = calcFactory.CreateChannelWithIssuedToken(token); 
       for (int i = 0; i < 300; i++) 
       { 
        double sum = calc.Add(40.0, 2.0); 
        Console.WriteLine("Called. Token ValidTo: {0} but now: {1}", token.ValidTo.ToLongTimeString(), DateTime.UtcNow.ToLongTimeString()); 
        Thread.Sleep(5000); 
       } 

이 코드는 채널 공장을 한 번 만들고 호출 당을 사용합니다. 각 호출시 채널 팩토리를 만들면 보안 토큰의 유효성이 올바르게 확인됩니다. : 토큰이 만료되면 서비스 호출이 인증되지 않고 보안 예외가 발생합니다. 그 일은 좋은 일인가?

감사

답변

0

IIRC은, WIF 기계 시계를 수용하기 위해 5 분의 클럭 스큐를 사용합니다. 이렇게하면 1 분 만료 후 토큰이 계속 허용되는 이유를 알 수 있습니다.

+0

Allen, 우리 클라이언트, 서버 및 sts는 로컬 컴퓨터에서 실행됩니다. 하지만 ServiceConfiguration.MaxClockSkew를 1 초로 설정하려고 시도했습니다. 결과가 없습니다. –

+0

비슷한 질문이 발견되었습니다. http://social.msdn.microsoft.com/Forums/en/US/65ede7e8-98ea-46f8-8826-76534f4af5ac/security- token-lifetime? forum = 제네바 –