首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java WebApp中的CAC身份验证

Java WebApp中的CAC身份验证
EN

Stack Overflow用户
提问于 2013-04-25 21:01:12
回答 1查看 3.7K关注 0票数 1

我看到在堆栈溢出上还有一些其他的Java和CAC帖子。我是所有这些东西的初学者,我仍然在尝试一个框架,在我的头脑中做什么和去哪里。

我正在为一个大型组织工作,它使用带有Windows 7盒的CACs来验证想要进入他们的个人电脑的用户的身份。他们把CAC放在键盘上,然后输入一个PIN。

我的老板想要修改我们的Java,这样如果他们的计算机中有CAC,它就不会让用户进行身份验证。否则,它们将通过传统的LDAP登录。

我们使用的是WebLogic 11g和Java6。

通过谷歌搜索,似乎有两种方法:

  1. 实现一个applet来读取用户的CAC并向webapp发送SSL证书。
  2. 在web服务器中实现“相互SSL身份验证”,这将导致浏览器将CAC上的SSL证书发送到webapp。

我对我的选择有正确的评价吗?

哪种解决方案更容易?

从长远来看,哪一个会更少麻烦,更有活力?

我对SSL几乎一无所知,这在两种解决方案中似乎都很常见。我发现了一些关于抽象概念的SSL教程。有人能为我想做的事情推荐一个好的教程吗?

谢谢您提供的任何信息或建议。

史蒂夫

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-17 20:05:13

  1. 实现一个applet来读取用户的CAC并向webapp发送SSL证书。

  1. 在web服务器中实现“相互SSL身份验证”,这将导致浏览器将CAC上的SSL证书发送到webapp。

你会想要做第二件事,你不会真的想弄乱智能卡的硬件/软件。让操作系统完成所有这些工作。

我已经在IIS上这样做了,但是一般来说,要实现这一点,您需要配置您的web服务器以要求客户端证书并信任DoD CA。您可能需要将您的web服务器配置为向CA信任的客户端做广告。如果Win7客户端具有由您信任的CA签名的客户端证书,则客户端将尝试使用它。如果是智能卡证书,Windows将自动提示用户输入密码;您不必担心这一点。如果用户键入正确的引脚,证书将被发送到您的web服务器,后者将能够使用CA验证证书。如果它是一个有效的证书,那么您的软件就可以解析证书中的字段,并使用这些值来帮助验证用户(即,尽管有一个有效的证书,用户实际上是否允许根据他们的名称/电子邮件地址/等等登录)。那就看你怎么处理了。

如果您忘记了用户使用的是智能卡或CAC,您就可以更容易地理解这一点并查找信息,并且只需从使用客户端证书进行身份验证开始。首先创建一个自签名的CA测试证书。然后为您的and服务器创建一个服务器证书和一个由您的测试CA签名的客户端证书。在客户端和服务器上将测试CA证书添加为受信任的根证书。然后尝试编写一个小型测试应用程序,该应用程序使用客户端证书对您的cert服务器进行身份验证。工作完成后,您可以添加DoD CA并尝试从CaC证书中提取信息。

祝好运!

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16224629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档