2014-01-15 3 views
0

여기 내 시나리오입니다 : 나는 여러 고객에 의해 소비 될 WCF 웹 서비스 응용 프로그램을 호스트 할 필요가외부 고객과 WCF 메시지 보안을 사용하는 방법

가. 각 고객은 자신의 클라이언트 응용 프로그램에 대한 책임이 있으며, 다른 기술로 클라이언트 응용 프로그램을 작성하게됩니다. 그들의 고객 중 누구도 닷넷 (아마 Java 또는 다른 것일 것입니다)이 될 가능성이 없습니다.

메시지 보안을 구현하여 해당 정책을 준수해야합니다 (전송 보안이 충분하지 않음).

위의 요구 사항을 감안할 때, 나는 제어 할 수없는 클라이언트가 사용할 수있는 WCF에서 메시지 보안을 구현하는 방법을 이해하는 데 어려움을 겪고 있습니다. 내가 읽은 모든 것은 내 자신의 클라이언트를 구축 할 시나리오를 설명하고 클라이언트는 내 네트워크의 도메인에있을 수도 있습니다.

인증서로 메시지 보안을 구현하는 경우 내 서버에 하나의 인증서를 설치하고 각 클라이언트가 자체 인증서를 서버에 설치해야합니까? 공개 키를 공유하여 메시지 보안을 사용할 수 있습니까?

답변

1

기본적으로 마지막 단락에서 여기서 말하는 것은 사실입니다. WCF 서비스의 구독자에게 클라이언트 컴퓨터의 LocalMachine/My 저장소에 설치하고 등록 할 공개 키 (.cer) 파일을 제공해야합니다.

호스트 측에서는 LocalMachine/TrustedPeople 저장소에 인증서 공개 키를 설치하고 LocalMachine/Personal 저장소 호스트에 개인 키 (.pfx 또는 .pvk)를 설치합니다.

공개 키 및 개인 키를 설치/레지스트리의 위치를 ​​약간 바꿀 수 있지만 WCF 서비스를 구성하여 서버에서 해당 cert 요소를 찾아야합니다. 고객은 똑같이해야 할 것입니다.

이것은 작동합니다. 난 끝냈어.

.bat 파일과 makecert.exe 및 certmgr.exe DOS 명령을 사용하여 모든 항목이 올바른 위치에 설치되도록 자동화 할 수 있습니다.

+0

나는 옳은 길을 걷고있는 것처럼 들리며, 당신이 정확히 이것을했음을 듣기 좋습니다. 한 가지를 명확히하고 싶습니다. 내 인증서의 공개 키를 내 보내어 각 클라이언트에게 제공해야하며 인증서를 자신의 측면에서 가져와야합니다. 차례로, 그들은 그들의 개인 certs의 공개 키를 수출해야하고, 나는 내 편으로 수입해야한다. 옳은? – Stoop

+1

호스트이므로 공개 키 (.cer) 만 보내면됩니다. 당신은 그 (것)들에게서 어떤 증명서도 필요로하지 않는다. 호스트의 클라이언트 역할을 수행하는 모든 시스템에 인증서를 설치해야합니다. 테스트 목적으로, 창에서 makecert 함수를 사용하여 직접 생성 한 certs를 사용할 수 있습니다. 그것은 당신과 당신의 고객에게 돈을 절약 할 것입니다, 그러나 생산 시간이 올 때 ... 잘, 당신은 알고 있습니다. – Brian