客户端证书和Web API

时间:2013-01-02 15:55:05

标签: asp.net-mvc-4 asp.net-web-api

我有一个Web窗体站点,它将调用我的IIS托管Web API服务。 站点和Web API都托管在同一台物理计算机上。 我们在同一台机器上也有x509证书。

我希望Web API使用此证书来验证请求。因此它只接受来自“使用”此证书的客户的请求。

当我说“使用”时,我正在考虑这样做:

  1. 使用Request.ClientCertificates.Add(myCert); 然后在API中 - 从请求中检索证书并验证它。
  2. 2.如果设置过于繁琐(请参阅下面的问题),或者只是在请求标头中签名或加密令牌(单个字)。然后验证或解密API服务中的令牌。

    我的问题是 - 选项1。

    我不清楚客户证书。在开发客户端和服务时,是否需要设置SSL,将证书加载到IIS并在IIS中进行调试以进行测试/调试? 或者我可以使用WebDev测试端到端呼叫吗?

    我问这个的原因 - 当我尝试在WebDev中做一个非常简单的例子时,我将证书添加到集合客户端,但是当Web API收到请求时,证书不存在于请求中。 / p>

    非常感谢。

1 个答案:

答案 0 :(得分:1)

I am unclear about client certs. When I am developing the client and the service, do I need to set up SSL, load the certificate into IIS and debug in IIS to test/debug this? Or can I test the end to end call just using WebDev?

要使用客户端证书,您必须通过SSL进行连接(相互身份验证)。因此,这意味着使用服务器证书设置Web服务器,然后生成要附加到客户端请求的客户端证书。

IIS和IIS表示都支持SSL,但Visual Studio开发Web服务器不支持。