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

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

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


神不在的星期二
浏览 151回答 3
3回答

回首忆惘然

简单的方法是使用 IAM(身份和访问管理)解决方案。Kecloak是一个很好的开源软件(并且是用 Java 编写的,但您不必介意)。顺便说一句,您的问题是题外话(推荐软件或工具)。

aluckdog

我建议使用 Spring Security。它完全独立于 Spring Core 框架,通过一些简单的配置和一些额外的库(也由同一团队开发),您可以获得大多数流行的身份验证方法的简单解决方案。通过几个注释,您可以配置要保护的方法或端点。您可以创建 spring 配置文件,由谁决定使用哪种身份验证方法。

红糖糍粑

您需要将身份存储库和身份协议分开。LDAP 和 AD 是存储库。OpenID、OAuth2、SAML 是协议。您需要一个 IAM 系统来处理所有协议并位于存储库之上。为了让您的产品与您的 IAM 对话,您的产品中需要一个协议栈,例如SAML。然后,您将您的 IAM 与其他供应商联合,例如,如果供应商出现并希望对其 AD 进行身份验证,他们将安装 ADFS,然后 ADFS 与您的 IAM 系统联合。所以逻辑流程是:用户 --> 在他们的 IAM 上进行身份验证 --> 受您的 IAM 信任 --> 授予对您的应用程序的访问权限。您还可以查看身份即服务,例如 Azure AD、Auth0、Okta 等。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java