gpt4 book ai didi

asp.net - 如何静默请求特定的 SSL 客户端证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:03:49 25 4
gpt4 key购买 nike

我有一个使用表单例份验证的 ASP.NET MVC5 站点,但也通过设置使用客户端证书来增加安全层:

<security>
<access sslFlags="SslNegotiateCert" />
</security>

客户端证书是可选的,因为在用户实际尝试登录站点之前不需要它。当用户尝试登录时,站点将验证缩略图、颁发者,并将主题与尝试登录的用户进行比较(每个用户将有不同的证书)。问题是每次用户访问当他们第一次进入网站时,系统会提示他们提供客户端证书,如果出现以下情况,这可能会导致问题:

  • 他们不小心选择了错误的证书
  • 想要注销并用不同的用户重新登录(不重新提示输入证书)

有没有一种方法可以根据提供的登录信息静默\自动检测客户端证书,而不是让用户在首次进入网站时选择证书?

编辑:添加更具体的实际\期望行为示例

实际行为:

  • 用户打开 Chrome 并转到 http://www.example.com
  • Chrome 弹出窗口询问用户他们想使用什么客户端证书
  • 用户选择“user3 (www.example.com)”
  • 用户看到未经身份验证的主页 View 并点击“登录”按钮
  • 用户输入用户名:“user2”和密码:“****
  • 网站验证 ClientCertificate.Subject == Username(失败,因为证书是给“user3”的)

期望的行为:

  • 用户打开 Chrome 并转到 http://www.example.com
  • 用户看到未经身份验证的主页 View 并点击“登录”按钮
  • 用户输入用户名:“user2”和密码:“****
  • 浏览器做一些事情以静默检测客户端是否有证书“user2 (www.example.com)”,几乎没有用户交互

    问题:“期望的行为”是否可能以某种方式实现? (标题?javascript?浏览器插件?)

最佳答案

默认情况下,由于安全问题,用户访问网站时根本无法选择证书。

用户可以根据需要将浏览器配置为默认使用网站的特定证书,但这是另一回事。

对于第二部分,证书用于保护浏览器(客户端)和服务器之间的连接,所以如果你想使用另一个证书,你应该完全完成浏览器和服务器之间的连接,不幸的是你会在大多数情况下,需要关闭浏览器并再次打开它才能发生这种情况。或者通过清理证书缓存,但这需要用户在其浏览器中手动完成。

您可以在此处找到有关证书和 SSL 如何工作的非常好的解释:

https://security.stackexchange.com/questions/20803/how-does-ssl-work

关于asp.net - 如何静默请求特定的 SSL 客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24021998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com