[英]2-Way SSL authentication and request authorization
我開始開發一個RESTful API(帶有WCF),它將用於2Way SSL身份驗證-客戶端認證和服務器端認證。
據我了解,由於客戶端已經通過客戶端證書進行了身份驗證,因此不需要密碼/用戶名。
我的問題是,某些公開的方法應僅限於特定的客戶端。
因此,我還需要某種形式的授權。 我考慮過使用將提供給具有特定功能授權的客戶端的密鑰,但是后來我意識到該客戶端已經具有可以用於授權的客戶端證書。
有什么方法可以通過編程方式獲取當前使用的客戶端證書的名稱,然后通過證書名稱進行授權?
像這樣的東西:
string clientCertificate = CertificateAuthority.GetCurrentCertificate;
if (Authorize(clientCertificate))
doSomething()
是的,有這樣的方法,最引人注目的是X509Certificate2.GetNameInfo方法 。
(順便說一句, Dominick Baier為此提供了出色的流利API擴展 )
但是,我認為您應該看一下基於聲明的身份 ,它將為您提供簡化得多的代碼體系結構。
證書持有者的身份在證書的SubjectDN中。
其余部分(授權部分)取決於應用程序,並且也隨您的體系結構而變化。 例如,如果您使用的是LDAP,則將查找該用戶的角色。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.