我开始开发一个 RESTful API(使用 WCF),它将用于 2Way SSL 身份验证 - 客户端认证和服务器端认证。
据我了解,不需要密码/用户名,因为客户端已经通过客户端证书的身份验证。
我的问题是一些公开的方法应该仅限于特定的客户。
所以,我还需要某种形式的授权。我考虑过使用一个密钥,该密钥将提供给被授权具有特定功能的客户端,但后来我意识到这个客户端已经拥有可能用于授权的客户端证书。
有没有办法以编程方式获取当前使用的客户端证书的名称,然后通过证书名称进行授权?
像这样的东西:
string clientCertificate = CertificateAuthority.GetCurrentCertificate;
if (Authorize(clientCertificate))
doSomething()