我正在构建托管在不同计算机上的几种不同的Web服务,但我希望一组用户能够访问所有这些服务,但在服务之间也具有不同的读/写权限。为这些多种服务实现安全认证方案的最佳方法是什么?
答案 0 :(得分:2)
这是一个非常普遍的问题,所以这里是一般答案。
您正在寻找的是针对所有网站的单一身份验证方案,以及不同网站上的不同授权和访问控制方案。
第一部分几乎是“单点登录”(SSO)系统为您提供的,但您可以在没有SSO的情况下执行此操作。
第二部分可以通过将访问权限管理与授权方案分开来实现。例如:
使用Spring Security,您可以创建一个“UserDetails”服务,该服务使用共享LDAP服务来获取用户名和密码,使用本地数据库表来管理“角色”。
或者您可以将单个LDAP系统用于所有内容,但可以扩展架构以允许代表各个网站的访问控制角色。
(这些只是示例...而不是建议。我不打算提出具体的建议,因为几乎不可能做到客观,特别是因为你的要求是如此高水平。例如,很大程度上取决于用于实施网站的技术。)
答案 1 :(得分:2)
目前我正在为我们的项目建立一个注册系统,类似于你想要的。虽然我们有一个不同的堆栈:Scala-Akka-Spray,但身份验证系统基于Stormpath和Apache Shiro以及一些自定义内部逻辑,可用于更多REST样式的会话管理。 Strompath将为您提供一个良好的用户管理系统,具有非常灵活的组设置和Shiro,如果您不使用Akka,则会为您提供goog session managemant。