如何解决基于证书的ASP.NET Core用户身份验证
我正在构建一个小的ASP.NET Core应用程序。要求之一是授予用户通过证书登录的能力,而不是使用登录名/密码对。
登录页面示例
我发现了几个示例,通常基于以下方法
-
用户为选定的Web浏览器安装CSP(密码服务提供商)插件(该插件提供了直接通过JavaScript API调用从浏览器访问用户证书存储,签名数据等的功能)
-
登录表单包含隐藏的输入字段,其中包含预先生成的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 举报,一经查实,本站将立刻删除。