我们正在开发基于Java的产品。我们需要使身份验证部分适合主要的身份验证服务,例如LDAP,OpenID,Oauth2,SAML。这个想法是,当我们为拥有LDAP的公司部署产品时,我们的产品应该能够满足需求。如果公司拥有OAuth2,那么我们的产品也应该能够满足这一要求。
我想知道,什么是更好的方法和工具。我正在寻找一种开源解决方案,该解决方案可以在一处支持所有这些协议。请分享知识。
答案 0 :(得分:1)
答案 1 :(得分:0)
我建议使用Spring Security。它完全独立于Spring Core框架,并通过一些简单的配置和一些其他的库(也由同一团队开发),可以为大多数流行的身份验证方法提供一个简单的解决方案。
通过几个注释,您可以配置要保护的方法或端点。
您可以创建spring配置文件,由他们决定要使用的身份验证方法。
答案 2 :(得分:0)
您需要分离出身份存储库和身份协议。
LDAP和AD是存储库。
OpenID,OAuth2,SAML是协议。
您需要一个IAM系统,该系统可以处理所有协议并位于存储库的顶部。
要让您的产品与IAM对话,您的产品中需要一个协议栈,例如为SAML。
然后,您将IAM与其他供应商联合起来。如果供应商出现并希望通过其AD进行身份验证,则他们将安装ADFS,然后将ADFS与您的IAM系统联合。
因此逻辑流程继续:
用户->通过其IAM进行身份验证->受您的IAM信任->授予对您的应用程序的访问权限。
您还可以查看身份即服务,例如Azure AD,Auth0,Okta等。