2011-09-12 4 views
0

WCF를 사용하여 웹 서비스를 구축하고 사용자 인증 (자체 데이터베이스) 및 X.509 인증서와 함께 메시지 보안 (wshttpbinding)을 사용하기로 결정했습니다. 클라이언트가 내 서비스를 인증하고 사용하기 위해 SOAP 메시지를 사용하여 웹 서비스를 어떻게 호출하는지 알고 싶습니다. 비 -WCF 클라이언트에서이 webservice를 호출해야하기 때문에 비누 헤더 섹션에 추가해야 할 것이 무엇인지 알고 싶습니다.사용자 정의 인증 및 X509 인증서가있는 SOAP 클라이언트 호출 메시지

은 어떤

관련

그것은 당신이 인증서를 사용하는 방법을 방법에 따라 달라집니다

답변

1

을 감상 할 수 있습니다. message or transport security을 사용할 수 있습니다. 여기서 transport는 HTTPS를 의미하며 매우 상호 운용 가능하며 메시지는 WS-Security를 ​​의미합니다. 클라이언트가 일반적으로 특수 API (수동으로 WS-Security 및 관련 프로토콜을 구현하는 것은 거대한 작업 임)를 사용해야합니다. 그래서 그것은 주로 Non-WCF 클라이언트의 유형에 달려 있습니다. Java 또는 C++ 용 API와 PHP 용 API는 많이 있지만 Android, iOS 또는 Windows Mobile 용 WS-Security 기능을 제공하는 API는 알지 못합니다.

사용자 이름과 암호도 메시지 또는 전송 헤더로 전송할 수 있습니다. 전자의 접근 방식은 일반적으로 사전 정의 된 SOAP 헤더 집합 인 표준화 된 UserName Token 프로파일로 구현됩니다 (WCF가이를 수행합니다). 이 헤더에 특별한 것은 없으므로 WS-Security API가없는 비 -WCF 클라이언트도 쉽게 서비스를 사용할 수 있어야합니다. 이후의 접근 방식은 일반적으로 기본 HTTP 인증에 의해 이루어지며 HTTPS와 함께 가장 상호 운용 가능한 솔루션이 될 수 있습니다 (그러나 IIS에서 서비스를 호스팅하고 Windows 계정을 인증에 사용하지 않으려는 경우 WCF 사이트에 몇 가지 문제가있을 수 있습니다).

+0

빠른 답변 감사드립니다. 나는 이미 질문에서 언급 한 것처럼 사용자 이름과 암호 및 X509 인증서로 메시지 보안을 사용했지만 C#에서 HTTP 요청을 사용하여 비누 클라이언트 호출 웹 서비스를 작성하는 방법을 묻습니다. –

+0

XML 암호화와 XML 서명 (둘 다 .NET의 지원 클래스와 별도의 네임 스페이스가 있음)을 올바르게 사용해야하므로 토큰을 올바르게 포함하고 SOAP 봉투를 형식화해야합니다. 당신은 WCF의 큰 부분을 다시 구현하려고합니다. –