基于证书的ASP.NET Core用户身份验证

时间:2020-08-11 13:16:20

标签: c# asp.net-core authentication x509certificate

我正在构建一个小的ASP.NET Core应用程序。要求之一是授予用户通过证书登录的能力,而不是使用登录名/密码对。

登录页面示例

enter image description here

我发现了几个示例,通常基于以下方法

  1. 用户为选定的Web浏览器安装CSP(密码服务提供商)插件(该插件提供了直接通过JavaScript API调用从浏览器访问用户证书存储,签名数据等的功能)

  2. 登录表单包含隐藏的输入字段,其中包含预先生成的XML文档。

Xml文档示例

<loginrequest>
  <currentTimestamp>123456789012345678</currentTimestamp>
  <requestGuid>ba3d3b37-319f-4551-8c15-1abe4dce854e</requestGuid>
</loginrequest>
  • 用户从证书列表中选择证书
  • 用户按下 LOGIN (登录按钮具有onClick处理程序,该处理程序通过CSP浏览器插件对Xml文档进行签名)
  • 已提交表单(表单字段由-签名的xml文档数据,选定的证书指纹,原始xml文档组成)
  • 在服务器端,已签名的xml文档已通过指纹验证。如果符号有效,则系统通过匹配缩略图来在数据库中搜索适当的用户(数据库中的每个用户都有指纹列)。如果发现用户,则服务器会在让他进入时发出JWT访问令牌。

我对以下问题感兴趣

  • 此方法是否具有任何类型的规范(例如, OAuth 2.0),其中包含有关Xml生成内容的详细信息 文档以及如何正确验证它?
  • 还有其他方法可以 在ASP.NET Core Web应用程序中通过证书对用户进行身份验证?

0 个答案:

没有答案