2012-03-27 2 views
2

WCF 웹 서비스 보안에 관한 한 가지 질문이 있습니다. 현재 우리는 하나의 안드로이드 모바일 프로젝트를 개발 중이며 데이터 전송 및 조작을 위해 wcf 웹 서비스를 사용하고 있습니다. basicHttpBinding을 사용하고 웹 서비스를 Window Service으로 호스팅했습니다.Windows 서비스에서 호스팅되는 WCF 웹 서비스를 보호하는 방법은 무엇입니까?

현재 보안 모드가 없으므로 서비스 주소를 아는 경우 모든 사람이 웹 서비스를 사용할 수 있습니다. 예를 들어, 우리는 하나의 서비스 메소드를 가지며 문자열 값을 리턴합니다. 현재이 서비스를 다른 비주얼 스튜디오 프로젝트 및 모바일 프로젝트에 추가 할 수 있으며 언제든지 사용할 수 있습니다.

//WCF Service Method 
public string DoWork() 
{ 
     return "This is return string!"; 
} 

    //We can consume it like below from other dot net project by adding service reference. 
    //Actually, those are not real client. 
    ServiceReference1.WebServiceClient serv = new TestingPrj.ServiceReference1.WebServiceClient(); 
    string result = serv.DoWork(); 

제 질문은 어떻게 실제 고객을 위해 웹 서비스를 보안 할 수 있습니까? 다른 프로젝트와 사람들이 웹 서비스를 사용하는 것을 원치 않습니다.

+0

여기에는 많은 도움이 있습니다. https://www.google.com/#q=securing+wcf+web+services –

+0

이미 시도했지만 대부분의 답변은 IIS에서 호스팅되는 웹 서비스에 대한 것입니다. 그게 내가 왜 질문을 여기에 넣었는지. 어쨌든, 도와 줘서 고마워. – Chong

답변

0

SSL 인증서를 사용하는 것이 가장 안전한 방법입니다.

+0

어떻게 서비스에 액세스하는 잘못된 사용자로부터 SSL 인증서가 보호됩니까? – mellamokb

+0

우리는 서비스를 윈도우 서비스로 호스팅하고 우리는 IIS 서버를 사용하지 않습니다. 이런 식으로 SSL 접미어를 사용할 수 있습니까? – Chong

+0

예, 구성 파일을 사용하거나 HTTPS를 요구하도록 서비스를 코딩 할 수 있습니다. Windows 서비스가 실행되는 서버에 인증서가 설치되어 있으면 인증서에 바인딩해야합니다. – mellamokb

1

가장 간단한 방법은 SSL을 통한 기본 인증을 사용하는 것입니다. 기본 인증을 사용하려면 클라이언트에 사용자 이름/암호 쌍이 있어야하며, 응용 프로그램 만 알 수 있습니다. 인증이 순수하게 클라이언트가 올바른지 알기 만하면 (연결하는 사용자를 알기보다는) 하드 코딩 된 단일 사용자 이름/암호를 사용할 수 있습니다.

SSL도 사용해야하므로 자격 증명이 일반 텍스트로 전신을 여행하지 않으며 잠재적으로 스니핑 될 수 있습니다.

관련 문제