为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

神不在的星期二 2021-06-29 09:11:55
我们正在开发基于 Java 的产品。我们需要使身份验证部分适合主要的身份验证服务,例如 LDAP、OpenID、Oauth2、SAML。这个想法是,当我们为拥有 LDAP 的公司部署产品时,我们的产品应该能够满足它。如果公司有 OAuth2,那么我们的产品也应该能够满足这一需求。我想知道,什么是更好的方法和工具。我正在寻找一种开源解决方案,它可以在一个地方支持所有这些协议。请分享知识。
查看完整描述

3 回答

?
回首忆惘然

TA贡献1847条经验 获得超11个赞

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

顺便说一句,您的问题是题外话(推荐软件或工具)。


查看完整回答
反对 回复 2021-07-07
?
aluckdog

TA贡献1847条经验 获得超7个赞

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

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

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


查看完整回答
反对 回复 2021-07-07
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

您需要将身份存储库和身份协议分开。

LDAP 和 AD 是存储库。

OpenID、OAuth2、SAML 是协议。

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

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

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

所以逻辑流程是:

用户 --> 在他们的 IAM 上进行身份验证 --> 受您的 IAM 信任 --> 授予对您的应用程序的访问权限。

您还可以查看身份即服务,例如 Azure AD、Auth0、Okta 等。


查看完整回答
反对 回复 2021-07-07
  • 3 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信