基于Java产品的身份验证解决方案

基于Java产品的身份验证解决方案,java,authentication,oauth-2.0,saml-2.0,openid-connect,Java,Authentication,Oauth 2.0,Saml 2.0,Openid Connect,我们正在开发一种基于Java的产品。我们需要使身份验证部分适合主要的身份验证服务,如LDAP、OpenID、Oauth2、SAML。我们的想法是,当我们为拥有LDAP的公司部署产品时,我们的产品应该能够满足它。如果公司有OAuth2,那么我们的产品也应该能够满足这一需求 我想知道,更好的方法和工具是什么。我正在寻找一个开源的解决方案,在一个地方支持所有这些协议。请分享这些知识。我建议您使用Spring Security。它完全独立于Spring核心框架,通过一些简单的配置和一些附加库(也由同一团

我们正在开发一种基于Java的产品。我们需要使身份验证部分适合主要的身份验证服务,如LDAP、OpenID、Oauth2、SAML。我们的想法是,当我们为拥有LDAP的公司部署产品时,我们的产品应该能够满足它。如果公司有OAuth2,那么我们的产品也应该能够满足这一需求


我想知道,更好的方法和工具是什么。我正在寻找一个开源的解决方案,在一个地方支持所有这些协议。请分享这些知识。

我建议您使用Spring Security。它完全独立于Spring核心框架,通过一些简单的配置和一些附加库(也由同一团队开发),您可以为大多数流行的身份验证方法获得一个简单的解决方案

通过几个注释,您可以配置要保护的方法或端点


您可以创建spring配置文件,由它们决定使用哪种身份验证方法。

简单的方法是使用IAM(身份和访问管理)解决方案。是一个很好的开源软件(并且是用java编写的,但是你不应该介意)


顺便说一下,你的问题是离题的(推荐软件或工具)。发布它

您需要分离身份存储库和身份协议

LDAP和AD是存储库

OpenID、OAuth2、SAML都是协议

您需要一个IAM系统来处理所有协议并位于存储库之上

为了让您的产品与IAM对话,您的产品中需要一个协议栈,例如用于

然后,您将IAM与其他供应商联合,例如,如果供应商出现并希望通过其AD进行身份验证,他们将安装ADFS,然后ADFS与您的IAM系统联合

因此,逻辑流程如下:

用户-->在其IAM-->上进行身份验证,该IAM-->受您的IAM-->授权的应用程序访问权限的信任

您还可以将身份视为一项服务,例如Azure广告、Auth0、Okta等