簡體   English   中英

2向SSL身份驗證和請求授權

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM