Java web应用程序的身份验证选项

Java web应用程序的身份验证选项,java,tomcat,authentication,jakarta-ee,spring-security,Java,Tomcat,Authentication,Jakarta Ee,Spring Security,我有一个关于将身份验证集成到web应用程序的问题 首先让我介绍一下我的web应用程序的相关技术背景- 应用程序/Web服务器-Tomcat 8.5 底层操作系统-CentOS 7.x 64位 编程技术-Java Servlets 3.1 JDK版本-1.8 基于浏览器的用户界面技术;使用Angular2/Javascript/HTML/CSS开发 Web应用程序用户-面向企业用户 到目前为止,web应用程序中还没有内置身份验证系统。但是,在构建这个web应用程序时,我需要包括一个身份验证模块 当

我有一个关于将身份验证集成到web应用程序的问题

首先让我介绍一下我的web应用程序的相关技术背景-

  • 应用程序/Web服务器-Tomcat 8.5
  • 底层操作系统-CentOS 7.x 64位
  • 编程技术-Java Servlets 3.1
  • JDK版本-1.8
  • 基于浏览器的用户界面技术;使用Angular2/Javascript/HTML/CSS开发
  • Web应用程序用户-面向企业用户
  • 到目前为止,web应用程序中还没有内置身份验证系统。但是,在构建这个web应用程序时,我需要包括一个身份验证模块

    当我决定认证系统/技术时,我要考虑的要点是-

  • 我最好不要让我的应用程序处理用户凭证的存储和保护(在磁盘上)
  • 我最好不要让我的应用程序处理强制执行密码复杂性、历史记录、过期策略等问题
  • 我的申请须就以下事项作出规定—

  • 允许用户登录的登录页
  • 更改密码页
  • 创建用户页面
  • 基于上述情况,我目前正在考虑部署一个Windows Server 2016实例作为Active Directory(AD)服务器,该服务器将保存应用程序用户的凭据。请注意,此时,此Windows服务器不计划与任何其他应用程序共享,以支持跨应用程序的单一登录体验

    我计划用一个JNDI域配置Tomcat服务器,以对用户进行身份验证(针对AD),然后使用某种Java AD库,允许我通过应用程序的创建用户和更改密码页面在AD中创建用户和更改用户密码

    我的应用程序将支持自己的自定义角色和授权约束,因此我不希望在web应用程序中使用AD的组成员身份进行授权

    我的问题是-

  • 通过以上设置,是否有任何参考身份验证系统/库/模块更适合(比AD)集成到我的web应用程序中
  • 如果我使用上述Windows AD server方法,那么是否有任何Java(内置或社区开发)AD库允许在AD中创建用户、在AD中更改用户密码等。我以前使用过JNDI领域,因此我确信它可以用于针对AD对传入用户进行身份验证
  • 我不是Spring安全方面的专家,我的web应用程序目前不使用Spring安全,但如果Spring安全包括上述问题的解决方案,我愿意使用它

    我也不担心支持单点登录,如果应用程序用户对我的应用程序有单独的登录,那么在我的场景中完全可以

    因为我的web应用程序是针对企业用户的,所以我不想利用Facebook身份验证。我希望尽可能确保凭据在部署基础结构中的服务器中维护,而不是由第三方服务托管和维护


    感谢您的帮助和建议

    假设您可以尝试支持spring security integration.Jason web tokens的