我在控制檯應用程序和訪問其操作的Web應用程序上託管了WCF服務。我已經搜索了WCF安全性,並且在大多數情況下,Web服務託管在IIS上。爲了在我的情況下實現WCF傳輸層安全,我應該遵循什麼要點?保護WCF服務
我要的是
- 使用用戶名和密碼來執行WCF操作
- 使用SSL來加密數據。
如果我的WCF服務託管在控制檯應用程序上。我應該製作任何IIS配置嗎?
我在控制檯應用程序和訪問其操作的Web應用程序上託管了WCF服務。我已經搜索了WCF安全性,並且在大多數情況下,Web服務託管在IIS上。爲了在我的情況下實現WCF傳輸層安全,我應該遵循什麼要點?保護WCF服務
我要的是
如果我的WCF服務託管在控制檯應用程序上。我應該製作任何IIS配置嗎?
如果您的WCF服務託管在控制檯應用程序中,則IIS與它們無關,因此您無需配置IIS或任何其他內容。
爲了具有傳輸層安全性,可以將WsHttp或NetTcp綁定與SSL結合使用。
看看http://www.dotnetspark.com/kb/1502-security-wcf--transport-level.aspx,http://www.packtpub.com/article/microsoft-wcf-security和http://dotnetrobert.com/?q=node/140。
如果要公開通過HTTP WCF服務,您可以使用basicHttpBinding的自定義配置:
<bindings>
<basicHttpBinding>
<binding name="secured">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="userName" />
</security>
</binding>
</basicHttpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="securedService">
<serviceMetadata httpsGetEnabled="true" />
<serviceCredentials>
<userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="Namespace.Type, assembly" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="Namespace.Type" behaviorConfiguration="securedService">
<host>
<baseAddresses>
<!-- some url -->
<baseAddress baseAddress="https://localhost:8088/Service" />
</baseAddresses>
</host>
<endpoint address="" contract="Namespace.Type" binding="basicHttpBinding" bindingConfiguration="secured" />
<endpoint address="mex" contract="IMetadataExchange" binding="mexHttpsBinding" />
</service>
</services>
此使用HTTPS和用戶名令牌配置文件的消息在運輸憑證將創建SOAP 1.1服務。它還將通過HTTPS公開元數據(WSDL),用戶名和密碼將通過custom validator進行驗證。默認驗證驗證Windows帳戶,但也可以重新配置爲使用ASP.NET成員資格提供程序。
您需要做的最後一件事是允許使用端口上的HTTPS(在本例中爲8088)。爲此,您需要在機器上的證書存儲中安裝私鑰的證書(應位於LocalMachine的「我的/私人」商店中)。您可以創建self signed certificate用於測試目的。
一旦您擁有證書,您必須使用netsh assign the certificate to the port。您還應該使用netsh allow application to listen on the port,否則您的控制檯應用程序將不得不以管理員身份運行(UAC - Windows Vista,7,2008,2008 R2)。
netTcpBinding默認是安全的(需要Windows身份驗證,消息簽名和加密) – lnu 2011-04-29 07:35:32