我看到在堆栈溢出上还有一些其他的Java和CAC帖子。我是所有这些东西的初学者,我仍然在尝试一个框架,在我的头脑中做什么和去哪里。
我正在为一个大型组织工作,它使用带有Windows 7盒的CACs来验证想要进入他们的个人电脑的用户的身份。他们把CAC放在键盘上,然后输入一个PIN。
我的老板想要修改我们的Java,这样如果他们的计算机中有CAC,它就不会让用户进行身份验证。否则,它们将通过传统的LDAP登录。
我们使用的是WebLogic 11g和Java6。
通过谷歌搜索,似乎有两种方法:
我对我的选择有正确的评价吗?
哪种解决方案更容易?
从长远来看,哪一个会更少麻烦,更有活力?
我对SSL几乎一无所知,这在两种解决方案中似乎都很常见。我发现了一些关于抽象概念的SSL教程。有人能为我想做的事情推荐一个好的教程吗?
谢谢您提供的任何信息或建议。
史蒂夫
发布于 2013-05-17 20:05:13
你会想要做第二件事,你不会真的想弄乱智能卡的硬件/软件。让操作系统完成所有这些工作。
我已经在IIS上这样做了,但是一般来说,要实现这一点,您需要配置您的web服务器以要求客户端证书并信任DoD CA。您可能需要将您的web服务器配置为向CA信任的客户端做广告。如果Win7客户端具有由您信任的CA签名的客户端证书,则客户端将尝试使用它。如果是智能卡证书,Windows将自动提示用户输入密码;您不必担心这一点。如果用户键入正确的引脚,证书将被发送到您的web服务器,后者将能够使用CA验证证书。如果它是一个有效的证书,那么您的软件就可以解析证书中的字段,并使用这些值来帮助验证用户(即,尽管有一个有效的证书,用户实际上是否允许根据他们的名称/电子邮件地址/等等登录)。那就看你怎么处理了。
如果您忘记了用户使用的是智能卡或CAC,您就可以更容易地理解这一点并查找信息,并且只需从使用客户端证书进行身份验证开始。首先创建一个自签名的CA测试证书。然后为您的and服务器创建一个服务器证书和一个由您的测试CA签名的客户端证书。在客户端和服务器上将测试CA证书添加为受信任的根证书。然后尝试编写一个小型测试应用程序,该应用程序使用客户端证书对您的cert服务器进行身份验证。工作完成后,您可以添加DoD CA并尝试从CaC证书中提取信息。
祝好运!
https://stackoverflow.com/questions/16224629
复制相似问题