我开始开发一个RESTful API(带WCF),它将在2Way SSL认证中工作 - 客户端认证和服务器端认证。双向SSL认证和请求授权
据我所知,将不需要密码/用户名,因为客户端已通过客户端证书的身份验证。
我的问题是,一些暴露的方法应该只限于特定的客户端。
所以,我还需要某种形式的授权。我想过使用一个秘密密钥,它将提供给具有特定功能的客户端,但后来我意识到这个客户端已经拥有可能用于授权的客户端证书。
有什么办法以编程方式获取当前使用的客户端证书的名称,然后通过证书名称进行授权?
somethine这样的:
string clientCertificate = CertificateAuthority.GetCurrentCertificate;
if (Authorize(clientCertificate))
doSomething()
感谢您的方法,正是我所期待的。关于基于声明的身份,它看起来有点矫枉过正......我认为它适用于更复杂的系统...... – Mithir