CAC 卡和网络服务器

CAC cards and web servers

我有一个客户想在我们的网站上实施 CAC。通常,根据分配给他们的证书,用户已经具有访问权限。

他们希望在单击按钮登录时输入他们的 CAC PIN 码来进行验证。

我正在使用 ActivClient 管理 CAC,但我不知道如何让网站与卡通信reader让用户输入密码并验证它。

这是通过 IIS 设置完成的,还是我必须更新我的代码才能以某种方式与中间件通信?

提前致谢

我最近与国防部处理了这个问题。不涉及任何代码,您所要做的就是将 IIS 站点设置为使用集成安全(或可能基于您的 AD 配置的证书身份验证)并关闭其他身份验证机制。然后,浏览器将使用 Active Directory 中配置的方法提示用户输入凭据,如果他们正确使用 AD,则应显示 CAC 证书选择和 PIN window。请注意,您还必须使用 HTTPS,否则出于安全原因,浏览器不会将 CAC 凭据传递给服务器。

我们使用的解决方案涉及对 IIS 的一些配置更改以及一些代码更改以使用 CAC 提供的信息。

在IIS (8.0) 中,我们只是将身份验证设置为匿名身份验证。在 SSL 设置中,我们选中了要求 SSL 并在客户端证书下,select 要求选项。

通过身份验证后,根据您需要从证书中访问哪些信息,您可以使用以下方法访问它:

X509Certificate2 certificate = new X509Certificate2(Request.ClientCertificate.Certificate);

这将为您提供包含 CAC 携带的信息的证书对象。您可以使用

访问其中一些属性
certificate.GetNameInfo(X509NameType.SimpleName);  //X509NameType.EmailName, etc