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

问题描述

我正在构建一个小的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应用程序中通过证书对用户进行身份验证?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...