2011-08-03 4 views
0

간단히 설명하면 다음과 같습니다. 양식 인증과 사용자 지정 멤버 자격 공급자를 사용하는 ASP.NET 응용 프로그램이 있습니다. ServiceHostFactory를 사용하여 WCF 클라이언트와 ASP.NET ServiceHost를 만들었습니다. 지금까지는 모든 것이 완벽하게 작동하지만 현실 세계에 배포하려면 보안을 유지해야합니다. 서비스 인증서를 설정하는 방법을 찾을 수없는 것 같습니다. 내 서비스를 호스팅하는 ASP.NET 응용 프로그램과 이미 연결된 인증서를 사용하고 싶습니다.ASP.NET의 WCF 인증서 구성

수동으로 인증서를 식별 할 필요없이 인증서를 호스팅 웹 응용 프로그램의 인증서로 자동 설정하는 방법으로 인증서를 설정하는 방법은 무엇입니까? 사용자가 WCF 어셈블리를 설치하고 구성 파일을 변경하고 설치된 인증서에 대해 알고 있어야하는 경우 실제 PITA가됩니다.

여기까지 제가 간략하게 설명했지만 작동하지 못하고 다시 컴파일하지 않고 설치 중에 구성 할 수 없습니다.

serviceHost.Credentials.ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByIssuerDistinguishedName, "mycertificate"); 

SetCertificate에 전달할 수있는 호스팅 앱과 관련된 인증서를 반환하는 ASP.NET API가 있습니까? 또한 인증서가 설치되지 않은 상황을 어떻게 처리 할 수 ​​있습니까? 그렇지만 WCF가 안전하지는 않지만 여전히 연결되기를 원하십니까?

답변

1

전송 또는 메시지 수준 보안 사용 여부에 따라 다릅니다. IIS에서 다음

<basicHttpBinding> 
    <binding name="basicHttpsSecured" sendTimeout="00:02:00"> 
     <security mode="Transport"> 
     <transport clientCredentialType="None" /> 
     </security> 
    </binding> 
    </basicHttpBinding> 

: 당신은 당신의 웹 서비스가 다른 웹 페이지와 같은 HTTPS를 통해 작업 할 경우, 다음 WCF 구성에서, 당신은 당신이 단순히처럼, 전송 보안을 활성화 인증서를 지정할 필요가 없습니다 다른 ASP.NET 사이트와 마찬가지로 웹 사이트에서 SSL 인증서를 설정합니다. IIS를 통해 호스팅하지 않고 대신 자체 호스팅 된 Windows 서비스 또는 기타 서비스를 만들고 있다면 구성에서 인증서를 설정해야하지만 IIS에서 호스팅 할 때는 IIS에서 작업을 수행 할 수 있습니다. 당신은 당신이 안전하지 않은 일반 HTTP를 통해 운반되지만, 메시지 내용이 암호화되어 있음을 의미 메시지 수준의 보안을 수행하려면 대신하는 경우

, 당신은 바인딩에

<security mode="Message"> 

을 설정 한 것 메시지를 암호화하는 데 사용할 인증서를 지정하십시오. 그러나 그것은 당신이 ssl/https를 웹 서비스에 사용하는 것에 대해 말하는 것처럼 들립니다.

+0

기존 ssl/https를 사용하면 재무 데이터를 전송하는 데 가장 좋은 방법이라고 생각하십니까? 메시지 보안을 사용하는 경우 인증서를 제공해야합니까? 그렇다면 내 .svc 파일이있는 곳에서 내 인증서를 보관할 수 있습니까? 그렇다면 WCF의 위치를 ​​어떻게 알 수 있습니까? 가능한 한 쉽게 배포하고 싶습니다. –

+0

민감한 재무 및/또는 신용 카드 데이터의 경우 전송 및 메시지 보안을 모두 사용할 수 있습니다. 그러나 메시지 보안을 수행하려면 클라이언트에 인증서가 필요합니다. 과거에 처리해 온 신용 카드 회사 중 일부에서는 모든 고객에게 고유 한 인증서를 발급하는 경우가 있으므로 어떤 웹 서비스 사용자도 동일한 인증서를 사용하지 않으므로 서로 다른 메시지를 해독 할 수 없습니다. – CodingWithSpike

+0

또한이 MSDN 기사는 인증서 인증을 설정하는 단계별 접근법을 제공합니다. http://msdn.microsoft.com/en-us/library/ff648360.aspx – CodingWithSpike