Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I am starting to develop a WCF API, which should serve some specific clients.

We don't know which devices will be using the API so I thought that using a RESTful API will be the most flexible choice.

All devices using the API would be authenticated using an SSL certificate (client side certificate), and our API will have a certificate as well ( so its a 2 Way SSL)

I was reading this question over SO, and I saw the answers about authentication using Basic-HTTP or OAuth, but I was thinking that in my case these are not needed, I can already trust the client because it possesses the client-side certificate.

Is this design ok? Am I missing anything?

Maybe there's a better way of doing this?

share|improve this question
up vote 1 down vote accepted

Using mutual authentication is always better than username/passwords as long as you have the appropriate cert management system in place and it's properly managed. Your management system should provide for an easy way to issue or revoke a cert.

share|improve this answer
what does this management system do? should it be delegated to an IT administrator or something of the sort? I am weary that no one will know how to manage it in the future and this will become too much of a single point-of-failure – Mithir Jun 3 '12 at 12:45
A management system is there to manage the validity of the certs. Certs can be issued, expire, and be revoked. Management deals mainly with revocation, CAs usually deal with issuing the cert. Some software have both bundled up for ease of management. – dietbuddha Jun 4 '12 at 1:26
This should not preclude a username and password though, or something else. Two factor would be better than single factor. – Andy Nov 6 '15 at 23:30

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.