2012-11-01 3 views
0

Windows Identity Foundation (WIF)에서 제공하는 SecurityTokenService을 확장했습니다. 토큰을 예상대로 발행하고 SAML 토큰이 우리가 가지고있는 다른 모든 WCF 서비스를 호출하는 동안 SOAP 헤더에 추가됩니다.WCF 서비스를 호출하는 동안 STS에서 발급 한 보안 토큰 유효성 검사

보안 토큰에있는 NotBeforeNotOnOrAfter Saml 조건에서 올바른 값을 볼 수 있습니다.

놀랍게도 다른 WCF 서비스 호출은 SOAP 헤더의 보안 토큰에있는 NotOnOrAfter Saml 조건에있는 시간 스탬프 이후에 서비스가 호출 되더라도 성공합니다.

  1. 나는 왜 그런 일이 일어나는 지 이해하지 못합니다. 만료 된 보안 토큰이있는 호출을 거부하는 코드를 작성해야합니까?
  2. 맞춤 바인딩 또는 비헤이비어를 만들어야합니까?
  3. WIF 또는 WCF가이 기본 기능을 자동으로 처리하지 않습니까?
  4. 후드 아래에서 일어나는 일들을 설명하는 좋은 문서를 가르쳐 주시면 정말 대단합니다!

내가 사용하고는 .NET 4.0

+0

추측 : WCF 서비스에서 세션을 사용합니까? 토큰이 세션 중간에 만료 될 것으로 다시 평가되는 것은 아닙니다. – jlew

+0

우리는 세션을 사용하지 않습니다 ... – Learner

+0

이 WS-Federation (웹 페이지) 또는 WS-Trust (활성 클라이언트) 시나리오입니까? –

답변

1

이 검증 SecurityTokenHandler에 의해 제공됩니다. 사용되는 토큰 핸들러는 토큰 유형과 구성에 따라 다릅니다.

응답하여 포인트 :이 토큰 처리기에 따라

  1. . saml 토큰의 경우이 작업을 수행해야합니다. 보통
  2. -
  3. 나는 개인적으로 dissasemble Microsoft.IdentityModel.dll 점 1에서와 같이 제
  4. .

<microsoft.identityModel><service><securityTokenHandlers> 섹션에 대한 web.config를 확인하십시오. 변경되고 사용자 정의 처리기를 사용하는 경우 SecurityTokenHandler.ValidateToken에 구현 된 기본 동작을 재정의했을 수 있습니다. 그렇다면 토큰 유형을 알아 내야합니다. SAML1.1 또는 SAML2.0 인 경우 유효성을 검사해야합니다. 그렇지 않다면 토큰 유형을 공유하십시오.

0

MaxClockSkew 매개 변수의 ValitTo 날짜가 만료 된 후 wcf 서비스에 대한 호출이 거부됩니다. 서비스를 구성하여이 매개 변수를 관리 할 수 ​​있습니다.