Scenario:
We have developed a wcf web service which links to a database inside our firewall / dmz. The web service and client application (data capture web forms) are required to be hosted on our internet facing web server. This is because it needs to be accessed by web controls that will be hosted by our third party CMS (host our main website).
Issue:
We want to ensure the data can be passed as securely as possible, but we would be cautious about the sharing certificates between ourselves and our CMS provider (and vice versa). We would prefer the web controls are hosted as https but all the documentation I have read says this requires certificates to authenticate. I have been looking into applying additional custom security between the client and svc (custom bindings, username/password applied in code behind, restricting call by IP address) but I wanted to know if anyone else had come across this scenario.
Am sure there must be examples of applying custom security when a third party is hosting the web controls for an application, but so far I've only found online the 'it's certificates or nothing' comments. Any help or guidance greatly appreciated.
Example of the many links viewed so far include:
I've looked to apply suggested settings e.g. in the <wshttpBinding>
and <serviceCredentials>
below while adding a new 'Secure' class to contain the custom username/password validator but get "svc...does not implement inherited member..." errors.
<wsHttpBinding>
<binding name="EndpointBinding">
<security mode="TransportWithMessageCredential">
<transport clientCredentialType="None"/>
<message clientCredentialType="UserName"/>
</security>
</binding>
</wsHttpBinding>
<serviceCredentials>
<userNameAuthentication
userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="My.WcfSvc.Authentication.Secure,
My.WcfSvc" />
</serviceCredentials>