2

We have Web API 2 application exposed to outside vendors for various integrations. We're adding a new one with DocuSign through their Connect service and they will be signing their requests with their X509 certificate. I would rather not install the certificate on the server itself because we add new servers and deployments often based on load.

Here is my plan, and I'd like to know what the security risks are with it (assuming it will work at all).

DocuSign provides their X509 certificate for download. I want to place that *.cer file in my Web API application's ~/App_Data folder, along with any other certs from any other vendors. I will use a DelegatingHandler to grab the client certificate from the Request. I would then use the X509Chain class as described here to load all certificates from the ~/App_Data folder and to verify the request certificate.

From there I would map the certificate subject to a role and add that to the current thread to provide authentication for specific routes.

I've gathered from my research that this method would be less secure than installing DocuSign's certificate to the server's root store - is that correct? And how much less secure?

At the end of the day I'd like to (1) verify that the request is coming from who it says it's coming from, and (2) add roles based on the verified requester for authentication.

Community
  • 1
  • 1
Chris Hines
  • 722
  • 6
  • 12
  • Hi, did you find answers on your question? We are looking into the same architecture as you did. And I would like to know if you sticked to the planned. – Michel Tol Apr 09 '15 at 18:22

0 Answers0