基于Spring的java应用程序的身份验证和授权的最佳实践

时间:2011-06-12 14:17:31

标签: spring authentication authorization openldap opensso

在我们的组织中,我们正在开发基于ldap的身份验证和授权 单点登录功能。在开发这个通用模块时,将有数十个其他模块依赖于它。工具集是 -

  • 弹簧
  • 休眠
  • Tomcat 7
  • openAm / OpenSSO的
  • OpenLDAP的
  • 的PostgreSQL

我们将拥有简单的身份验证机制,但授权方案非常复杂。我们不确定什么是正确的授权方法。我们应该在LDAP中放置身份验证和授权逻辑,还是应该仅将其用于身份验证?在这种情况下,我们将不得不搞乱OpenAM / OpenSSO。还有其他方法吗?像春天安全,CAS,JOSSO,..?无论采用何种方法,它都必须具有很强的可扩展性和可维护性。任何建议或帮助将不胜感激。

谢谢, Nazrul

3 个答案:

答案 0 :(得分:3)

您可以查看Apache Shiro:http://shiro.apache.org/。它是一个易于使用的安全框架,支持大多数现有的安全技术,包括LDAP和单点登录。

此外,通过对AuthenticatingRealm和AuthorizingRealm(来自Shiro API)进行子类型化,您可以实现您的身份验证和授权策略,无论它们有多复杂。

最常见的是,您将实施自己的:

  • AuthenticatingRealm
  • AuthorizingRealm
  • AuthenticationToken
  • AuthrozationToken
  • PremissionResolver

    依旧......

答案 1 :(得分:1)

在你做出任何决定之前,你可能想要看一下这个。 http://grzegorzborkowski.blogspot.com/2008/10/spring-security-acl-very-basic-tutorial.html

答案 2 :(得分:1)

对于授权,您可以查看基于XACML的外部授权框架eXtensible Access Control Markup Language

这是一种OASIS标准,它实现了基于属性的访问控制,为您设计授权提供了很大的灵活性。

相关问题