2010-02-18 5 views

답변

5

서명을하면 클라이언트 측에 설치된 인증서를 사용하여 메시지에 서명한다는 것을 의미합니다.

이렇게하는 것은 WCF에서 비교적 쉽습니다. security element에서 wsHttpBinding을 사용한다고 가정하면이 모드를 SecurityMode.Message으로 설정해야합니다. clientCredentialType of the message elementMessageCredentialType.Certificate으로 설정해야합니다.

그런 다음 끝점 동작을 설정하고 clientCertificate element (이는 clientCredentials element의 자식입니다)에서 클라이언트 인증서가 저장되는 위치를 나타내도록 구성해야합니다.

wsHttpBinding을 사용하지 않는 경우에도 클라이언트 인증서를 사용하여 메시지 수준 보안을 제공하려는 경우 대부분의 다른 바인딩에 대해 구성이 거의 동일합니다.

HTTPS를 통해 전화를 걸면 보안 요소의 mode 속성을 Mode.TransportWithMessageCredential으로 설정해야합니다.

+0

당신이 맞습니다, 나는 요청을하는 기계에 앉아 인증서로 요청에 서명하는 것에 대해 이야기하고 있습니다. –

+0

기본적으로 유틸리티가 생성하는 것이기 때문에 basicHttpBinding을 사용하고 있었는데, web.config에서 wsHttpBinding으로 바꿨다. 요청을하면 "요청이 중단되었습니다 : SSL/TLS 보안 채널을 만들 수 없습니다."라는 오류 메시지가 나타납니다. –

+0

@ Mr Bell : 같은 속성을 사용하여 basicHttpBinding에서도 보안 모드를 설정할 수 있어야합니다. – casperOne

1

다음은 서명이 필요한 Amazon SOAP 서비스를 사용하기 위해 WCF를 사용하는 것에 관한 질문입니다. 저는 그 대답이 당신의 상황에 도움이 될 훌륭한 모범이 될 것이라고 생각합니다.

How to sign an Amazon web service request in .NET with SOAP and without WSE

편집 :이 다른 StackOverflow의 질문에 대한 링크에 대한 몇 가지 혼란이 분명히 있었다. 나는 가장 높은 득표 선택된 대답을 지적하고 싶다. 가장 확실한 WCF 솔루션입니다. IClientMessageInspector (WCF 인터페이스)에서 상속받은 SigningMessageInspector 클래스를 확인할 수 있습니다. 이 섹션이 도움이 될 것 같아요.

+0

서명에 대해 언급하지 않았습니다. 또한 WCF를 사용하여 수행하지 않습니다. – casperOne

+0

@casperOne - Tim의 링크를 따라 한 큰 대답은 "WCF를 사용하도록 코드를 업데이트했습니다 ..."라고 말합니다. WCF를 사용하지 않는 이유는 무엇입니까? – Ecyrb

+0

@Tim C : 링크를 게시 할 당시의 유일한 답변은 다음과 같습니다. http://stackoverflow.com/questions/1204191/how-to-sign-an-amazon-web-service-request-in-net- with-so-and-without-wse/1204671 # 1204671 WCF 솔루션을 가장 확실하게 갖추고 있지 않았습니다. – casperOne

관련 문제