6

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

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

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

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

提前致谢

4

2 回答 2

8

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

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

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

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

这将为您提供包含 CAC 携带的信息的证书对象。您可以通过使用访问其中一些属性

certificate.GetNameInfo(X509NameType.SimpleName);  //X509NameType.EmailName, etc
于 2015-05-18T20:56:40.303 回答
2

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

于 2015-05-18T19:48:00.977 回答