【问题标题】:Authentication solution for a Java based Product基于 Java 的产品的身份验证解决方案
【发布时间】:2019-01-15 18:23:37
【问题描述】:

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

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

【问题讨论】:

    标签: java authentication oauth-2.0 saml-2.0 openid-connect


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        LDAP 和 AD 是存储库。

        OpenID、OAuth2、SAML 是协议。

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

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

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

        所以逻辑流程是这样的:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-07-03
          • 2011-02-04
          • 2012-01-13
          • 2016-02-23
          • 1970-01-01
          • 2017-07-03
          • 2012-01-27
          相关资源
          最近更新 更多