우리는 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);
}
이 코드는 채널 공장을 한 번 만들고 호출 당을 사용합니다. 각 호출시 채널 팩토리를 만들면 보안 토큰의 유효성이 올바르게 확인됩니다. : 토큰이 만료되면 서비스 호출이 인증되지 않고 보안 예외가 발생합니다. 그 일은 좋은 일인가?
감사
Allen, 우리 클라이언트, 서버 및 sts는 로컬 컴퓨터에서 실행됩니다. 하지만 ServiceConfiguration.MaxClockSkew를 1 초로 설정하려고 시도했습니다. 결과가 없습니다. –
비슷한 질문이 발견되었습니다. http://social.msdn.microsoft.com/Forums/en/US/65ede7e8-98ea-46f8-8826-76534f4af5ac/security- token-lifetime? forum = 제네바 –