gpt4 book ai didi

c# - 使用 X509Certificate2 在 https 中进行客户端证书身份验证

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

我正在尝试了解客户端身份验证在 https 场景中如何工作以及如何使用它来提供基本的身份验证/授权功能。

假设我想在证书和用户(例如 IPrincipal)之间建立映射。我的服务器颁发证书并将它们分发给客户端。当客户端连接时,我要求提供证书,如果提供了有效证书,我将根据之前定义的映射对用户进行身份验证。

我应该使用什么来创建映射?证书指纹是一个很好的候选人吗?是否足以确定客户身份?

或者也许我根本不需要映射,可以简单地接受我的服务器颁发的所有证书?

编辑:让我改写一下 - 假设我可以颁发客户端证书,我如何在 https session 期间验证客户端身份?

最佳答案

您提出的很多问题在很大程度上取决于您现有的证书基础设施是什么样子的。出于安全原因,我强烈建议通过映射来识别特定用户。如果您已经为用户身份验证分发证书,那么可能有一些值得保护的东西。您需要的任何授权或审核都应该针对每个用户。最好的方法是使用证书 CN(通用名称)。指纹将识别为特定证书,但是当证书过期时会发生什么?这当然意味着当您颁发证书时,CN 是受控制的,并且将与特定的人相关。我发现使用电子邮件地址非常可靠,因为您可以通过向他们发送确认电子邮件来创建验证例程。您还可以对电子邮件地址强制执行一些唯一性。

困难的部分是分发证书并让 IIS 向客户端请求证书,以便您的 asp.net 应用程序可以访问其信息。一旦您拥有所有请求,您的所有请求都会在 Request.ClientCertificate 中包含一些内容,其中包含您需要对它们进行身份验证的证书的所有详细信息。

关于c# - 使用 X509Certificate2 在 https 中进行客户端证书身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13033540/

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