CAC(通用访问卡)读卡器的 JavaScript 实现

3

我被赋予的任务是让用户使用用户名/密码组合或CAC卡进行登录。我知道我需要使用一台读卡器来完成,但我完全不知道该怎么做。我还没有找到在浏览器中使用读卡器完成CAC卡签到的方法。

扫描CAC卡后我会得到什么响应呢?我是否能够至少从中获取一个ID以便将其与用户账户关联起来?


你应该向指派你完成此任务的人寻求帮助。你需要对PKI有扎实的理解,包括它们部署中美国政府特定的部分。 - Jonathon Reinhart
非常抱歉,但这个问题太过宽泛,无法在此视为主题。CAC是一种智能卡,它向HTTPS站点呈现客户端证书。您无法从JavaScript中读取它。 - Jonathon Reinhart
浏览器负责查找匹配的客户端证书并提示用户选择一个。 - Jonathon Reinhart
1个回答

3
如果您正在创建一个Web应用程序,那么它似乎是基本的客户端证书身份验证。客户端所需的CAC卡证书并不会对服务器产生太大影响。
有很多Node包可以实现客户端证书身份验证。例如,这里就是其中之一。我建议先让用户通过用户名/密码身份验证登录,然后向他们提供一个页面,将他们的CAC卡链接到他们的用户账户上。您也可以只使用CAC卡来实现身份验证,而不必将用户和卡片进行关联。
您可以使用PCSC智能卡包来读取实际的卡片,可以在这里找到。请注意,您还需要在PC上加载正确的CA证书才能验证证书的信任。如果此应用程序面向政府客户,请确保与其安全团队密切合作,以确保满足所有要求。

谢谢!这正是我所需要的!我不确定我是否可以以这种方式实现。所以你说的正确CA证书,是指我用来通过HTTPS加载我的站点的那些证书吗? - BStill
抱歉,如果这些问题看起来很蠢。 - BStill
1
没问题,正确的CA证书是指您需要信任颁发客户端证书给CAC卡的CA(证书授权机构)。假设它是美国政府,您将需要添加他们的CA,这应该可以从您的客户开发或安全团队获取。将CA添加到受信任的根存储库中基本上意味着由该CA颁发的任何证书,即在此情况下的政府,都将受到信任。否则,客户端证书将不被信任。希望这有意义。 - Tachyon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接