2008-09-23 4 views
1

서비스간에 라우팅 기능을 일부 구축하고 있습니다. 원래 서비스와 라우팅을 수행하는 서비스는 동일한 구성을 갖습니다.WCF 라우팅 메시지 보안

netTcpBinding

보안 모드 = "메시지"

메시지 clientCredentialType = "사용자 이름"

서비스 동작은 ASPNET 회원을 사용합니다 모두 다음과 같은 바인딩 구성 netTcpBinding를 사용하는 컴퓨터에 설치 한 공급자 및 클라이언트 인증서 나는 그것이 잘 릴레이하지만이 켜져 때 나는 다음과 같은 예외 얻을 메시지 보안 꺼

:. 액션 'http://foo/Whatever가'올바르지 않아

"메시지는 처리 할 수 ​​없습니다 이것은 가능성이 높습니다 또는 메시지에 유효하지 않거나 만료 된 보안 컨텍스트 토큰이 있거나 바인딩이 일치하지 않기 때문에 * 서비스가 비활성 상태로 인해 채널을 중단 한 경우 보안 컨텍스트 토큰이 유효하지 않음 서비스에서 유휴 세션을 중간에 중단하지 못하게하려면 서비스 끝점의 바인딩에서 수신 제한 시간을 늘리십시오. " (강조 광산)

제 생각에는 인증서가 메시지에서 두 번 (원 호출과 릴레이에서 한 번) 작동하고 이것이 메시지의 보안 토큰을 손상시키는 것입니다.

질문 :

  1. 대상에 대한 내 생각인가?

  2. 토큰 서비스의 복잡성없이 라우팅을 위해 메시지 보안을 계속 사용할 수있는 방법이 있습니까?

+0

두 가지 질문 - 1. 라우터 서비스에서 보안이 필요합니까? 메시지 보안의 개념은 메시지를 해독 할 필요없이 라우팅 등이 메시지에서 작동 할 수 있다는 것입니다. 2. 라우터 서비스에서 오류가 발생 했습니까? 두 서비스가 동일한 서비스 인증서를 공유합니까? –

답변

1

보안 및 메시지 보안간에 전환을 언급했습니다. WCF 서비스 끝점과 수신 끝점을 모두 변경하고 있습니까? 그렇지 않은 경우 두 개가 일치하지 않으면 오류가 표시됩니다. 그 오류가 내게 말하는 것 같습니다.

질문 2의 경우 실행중인 환경 유형은 무엇입니까? 특수 키를 사용해야 할 수도있는 암호화 및 서명 또는 공용 환경을 사용할 수있는 폐쇄 형 시스템?