Hi,
I've recently developed a WCF Facade service. I'm new to WCF and having trouble understanding the security implementation pieces.
The service is as follows:
- An asp.net public website has a WCF client, which accesses:
- A WCF Facade service within a DMZ, which in turn acts as a client to access:
- An internal network WCF service
All services currently are using WSHttpBinding.
I would like to use X.509 certificates for client/server authentication between all 3 servers (i.e. the public client app and facade service authenticate each other using certs, the facade client and internal service authenticate each other using certs).
Can someone explain step by step what needs to be done to secure this in a production environment? Every article and book I've referenced explains use of makecert.exe but does not explain using production certificate(s) from a real CA. I know it's probably easy but I can't seem to wrap my head around the concepts required.
From a trusted CA, I have a SSL cert for user access to the public website and a SAN SSL cert which can be applied to up to 4 domain names via subject alternative names. I'm still confused in terms of authentication if I need to use makecert.exe etc. to create client certs, etc.
Ideally all service/client config would be within app/web.config (no code). I have full administrative access to all three servers (public web server, facade/dmz server, internal web server).
Any insight or guidance would be really appreciated!
Edits to provide more detail based on comments:
- IIS 6 for all servers
- user authentication is not required on public facing site. Essentially the public visitors are entering information in forms, which are processed and handled by the services. No authentication is needed.
- A paid EV SSL cert is going to be used to secure the interaction between public visitor and website.
What I'm interested in is how to implemented mutual cert authentication/identification between the different WCF clients/services. So:
- WCF client on public server and WCF service on Facade/DMZ server mutually identify and authenticate against each other using certs
- WCF client on Facade/DMZ server and WCF service on internal server then also mutually identify and authenticate against each other using certs.
I have a flexible SAN certificate from a trusted CA (DigiCert), which I would like to use if possible for the authentication. It can support up to 4 DNS entries via the subject alternative names.
Thanks for any help that can be provided!