Java Web应用程序在哪里进行智能卡身份验证?

愤怒的人

我很想尝试确定CAC / Active Directory(AD)身份验证在基于Java的Web应用程序中所起的作用而感到困惑。例如,在多个Weblogic容器上托管的多个J2E JSF应用程序。这些应用程序中的每一个都通过检查用户所处的AD角色来限制用户的访问权限。如果所有这些应用程序都需要CAC / AD身份验证,则在哪个阶段执行CAC / AD身份验证?

据我了解,理想情况下,您希望网关与进行身份验证的应用程序分开。一个简单的示例是F5硬件/软件捆绑包。一旦用户使用其CAC / pin组合进行身份验证,便会将其转发至Weblogic上已部署的应用程序,并在其标头中包含一些其他信息(例如前面提到的AD角色)。我并不是说我应该购买该产品,因为没有可编程的解决方案,而作为示例,身份验证和使用资源是两个单独的实体,因此不必针对此问题进行组合。

但是,实际上,我已经读到许多项目正在将Microsoft和Apache服务结合在一起以允许身份验证。这是一篇很好的博客文章,概述了一些好处。用户针对IIS进行身份验证后,会将其转发到apache上的应用程序。无论如何,混合使用IIS和Weblogic似乎不是一个好主意,尤其是在尝试配置两个节点之间的通信时。

堆栈和网络上还有许多帖子可以追溯到2012年之前,推荐了不同的解决方案。一篇文章建议以下内容:

您可以在服务器验证客户端证书时指定一组可接受的证书策略

尽管从总体上来说,答案是有意义的,但作者从来没有深入探讨这种交流的体系结构细节。其他一些帖子推荐JOSSO来执行SSO功能,例如前面提到的网关机制。这篇文章还讨论了如何使用制造商提供的驱动程序直接使用PKCS11读取智能卡。还有一些没有答案的问题,例如使用java中使用DOD发行的CAC对AD服务器用户进行身份验证

考虑到这些职位之间的平均间隔时间为5年,我不确定今天针对此问题的最佳做法。网关方法是进行身份验证的理想方法吗?我的想法根本不适用,并且存在更好的解决方案吗?

品味2

我花了一些时间来提取问题,所以-您想达到什么目的?但是-让我们尝试:

正如您提到的CAC / AD-我将假定每个客户端都需要自己的密钥对和签名证书。您想使用智能卡(可以托管密钥对和证书)实现SSO(单点登录)。

Java Web应用程序在哪里进行智能卡身份验证?

智能卡通常用作密钥库(可通过PKCS11密钥库访问)。它可能包含多个密钥对和证书。使用方式-网络浏览器(大多数)都可以使用智能卡证书与服务器建立双向(双向)SSL。

通常的做法是终止Web服务器/代理上的SSL,并将证书信息(DN)作为HTTP标头(例如x-client-cert)传递到后端服务。F5 BIGIP是一个非常好的工具,为此目的,我们通常使用Apache或Nginx作为更简单,更便宜的选择。

笔记:

  • 您可以将Weblogic设置为直接支持客户端证书身份验证,但是我建议您使用代理(F5,Apache,IIS等),以便您单点管理受信任的CA。

一个完全不同的问题是如何将HTTP标头转换为用户主体(身份)及其权限/角色。您可以为此编写一个servlet筛选器,但是对于较大的部署,可以使用身份服务器(F5 APM,WSO2 IS,OpenAM)有效地将客户端证书信息转换为其他协议(SAML,OAuth等)提供的用户身份。 )

如果所有这些应用程序都需要,在哪个阶段执行CAC / AD身份验证?

从技术上讲-建立SSL连接时。因此,无论您是将客户端证书信息提供给代理服务器还是身份服务器-这都不重要,这里重要的部分是该信息将提供给所有其他应用程序(作为代理后面的HTTP标头或要求使用SAML,OAuth的声明) ,...其他身份验证)。

网关方法是进行身份验证的理想方法吗?我的想法根本不适用,并且存在更好的解决方案吗?

网关方法非常普遍且可靠。传递任何信息之前,请不要忘记清理HTTP标头。

另一个选择是使用身份服务器,这使您可以与外部(云)服务集成。但是-这是一台独立的服务器,具有所有麻烦(部署,维护,知识等)

另一种选择-您可能需要智能卡才能登录到AD客户端工作站,然后使用普通的SPNEGO(Kerberos)SSO :)

希望对您有帮助,消除疲劳

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Java Web应用程序在哪里进行智能卡身份验证?

来自分类Dev

传递给Java应用程序以使用http代理进行身份验证的Java属性

来自分类Dev

如何使用Google Cloud Storage对Java应用程序进行身份验证?

来自分类Dev

JAVA Web应用程序中基于表单的身份验证重试

来自分类Dev

Shibboleth身份验证的任何Java应用程序?

来自分类Dev

Java桌面应用程序的ADFS / SAML身份验证

来自分类Dev

应用程序用户身份验证java mongodb模块

来自分类Dev

尝试使用智能卡对 Tomcat 进行身份验证

来自分类Dev

Azure 智能卡身份验证

来自分类Dev

使用Java配置在单个应用程序中使用多种身份验证机制

来自分类Dev

LDAP。没有身份验证的Java应用程序

来自分类Dev

Shibboleth身份验证有任何Java应用程序吗?

来自分类Dev

Java Spring Security-基于应用程序角色的Active Directory用户身份验证

来自分类Dev

核心Java应用程序中的安全身份验证和授权

来自分类Dev

如何从Java EE Spring应用程序以Windows身份验证模式连接到SQL Server?

来自分类Dev

使用 Xero 的 Java SDK 来支持多个私有应用程序的身份验证?

来自分类Dev

在Eclipse的Java Gradle Web应用程序中将log4j.properties放在哪里

来自分类Dev

最佳实践,java Web应用程序,将jsp文件放在哪里?

来自分类Dev

在Tomcat 7中使用智能卡和LDAP对用户进行身份验证

来自分类Dev

如何设置智能卡SSH身份验证?

来自分类Dev

我可以在非Java智能卡上上传Java卡小程序吗?

来自分类Dev

如何编写使用相互ssl身份验证的Java客户端和服务器应用程序?

来自分类Dev

将自定义应用程序身份验证与JAVA EE安全性相结合。可能的?

来自分类Dev

Java Google API身份验证-是否有任何方法可以省略应用程序要求访问URL的步骤

来自分类Dev

将自定义应用程序身份验证与JAVA EE安全性相结合。可能的?

来自分类Dev

使用来自Java应用程序的用户名和密码身份验证发布推文

来自分类Dev

启用多重身份验证时,Java 应用程序中的 ADAL4J 不适用于本机应用程序(Azure Active Directory)

来自分类Dev

通过Unirest JAVA进行身份验证

来自分类Dev

如何通过网络使用智能卡和智能卡读卡器实施两因素身份验证

Related 相关文章

  1. 1

    Java Web应用程序在哪里进行智能卡身份验证?

  2. 2

    传递给Java应用程序以使用http代理进行身份验证的Java属性

  3. 3

    如何使用Google Cloud Storage对Java应用程序进行身份验证?

  4. 4

    JAVA Web应用程序中基于表单的身份验证重试

  5. 5

    Shibboleth身份验证的任何Java应用程序?

  6. 6

    Java桌面应用程序的ADFS / SAML身份验证

  7. 7

    应用程序用户身份验证java mongodb模块

  8. 8

    尝试使用智能卡对 Tomcat 进行身份验证

  9. 9

    Azure 智能卡身份验证

  10. 10

    使用Java配置在单个应用程序中使用多种身份验证机制

  11. 11

    LDAP。没有身份验证的Java应用程序

  12. 12

    Shibboleth身份验证有任何Java应用程序吗?

  13. 13

    Java Spring Security-基于应用程序角色的Active Directory用户身份验证

  14. 14

    核心Java应用程序中的安全身份验证和授权

  15. 15

    如何从Java EE Spring应用程序以Windows身份验证模式连接到SQL Server?

  16. 16

    使用 Xero 的 Java SDK 来支持多个私有应用程序的身份验证?

  17. 17

    在Eclipse的Java Gradle Web应用程序中将log4j.properties放在哪里

  18. 18

    最佳实践,java Web应用程序,将jsp文件放在哪里?

  19. 19

    在Tomcat 7中使用智能卡和LDAP对用户进行身份验证

  20. 20

    如何设置智能卡SSH身份验证?

  21. 21

    我可以在非Java智能卡上上传Java卡小程序吗?

  22. 22

    如何编写使用相互ssl身份验证的Java客户端和服务器应用程序?

  23. 23

    将自定义应用程序身份验证与JAVA EE安全性相结合。可能的?

  24. 24

    Java Google API身份验证-是否有任何方法可以省略应用程序要求访问URL的步骤

  25. 25

    将自定义应用程序身份验证与JAVA EE安全性相结合。可能的?

  26. 26

    使用来自Java应用程序的用户名和密码身份验证发布推文

  27. 27

    启用多重身份验证时,Java 应用程序中的 ADAL4J 不适用于本机应用程序(Azure Active Directory)

  28. 28

    通过Unirest JAVA进行身份验证

  29. 29

    如何通过网络使用智能卡和智能卡读卡器实施两因素身份验证

热门标签

归档