【问题标题】:How do I make an authentication service for multiple web services? [closed]如何为多个 Web 服务创建身份验证服务? [关闭]
【发布时间】:2013-07-28 01:59:21
【问题描述】:

我正在构建几个不同的 Web 服务,托管在不同的机器上,但我希望一组用户能够访问所有这些服务,同时在服务之间也具有不同的读/写权限。为这些多种服务完成安全身份验证方案的最佳方法是什么?

【问题讨论】:

  • 您使用的是什么 Java 框架(如果有)?这将有助于我们回答这个问题。我想到的是“框架”,例如 Struts、Spring、Weld 等。
  • 我还没有开始,但我倾向于 Scala lift。
  • 请阅读FAQHow to Ask。这个问题对于SO来说太宽泛了。你可以就这个主题写一整本书……事实上,你可能应该从研究可用的书籍开始。
  • 我觉得这是一个很笼统的问题。由于存在大量的网络服务,特别是具有多种服务的公司,我怀疑他们都在提出自己的想法。另一方面,我什至不知道从哪里开始。如果简单的答案是,您的每个服务都将传入请求路由到身份验证服务,然后将请求路由回,这就是我真正想了解的全部内容。如果我什至知道要找什么书,我早就这样做了,甚至不会问这个问题。

标签: java web-services security scala authentication


【解决方案1】:

这是一个非常笼统的问题,所以这里是一个笼统的答案。

您正在寻找的是针对所有站点的单一身份验证方案,以及不同站点上的不同授权和访问控制方案。

第一部分几乎就是“单点登录”(SSO) 系统为您提供的功能,尽管您可以在没有 SSO 的情况下做到这一点。

第二部分可以通过将访问权限管理与授权方案分开来实现。例如:

  • 使用 Spring Security,您可以创建一个“UserDetails”服务,该服务使用共享 LDAP 服务来存储用户名和密码,并使用本地数据库表来管理“角色”。

  • 或者您可以对所有内容使用单个 LDAP 系统,但扩展架构以允许表示各个网站的访问控制角色。

(这些只是示例......不是建议。我不会提出具体建议,因为客观上几乎不可能做到,特别是因为您的要求非常高。例如,很大程度上取决于用于实现网站的技术。)

【讨论】:

    【解决方案2】:

    目前我正在为我们的项目构建一个注册系统,类似于您想要的。虽然我们有一个不同的堆栈:Scala-Akka-Spray,但身份验证系统基于StormpathApache Shiro,并带有一些自定义内部逻辑,用于更多 REST 样式的会话管理。 Strompath 会给你一个很好的用户管理系统,具有相当灵活的组设置,如果你不使用 Akka,Shiro 会为你提供 goog 会话管理。

    【讨论】:

      猜你喜欢
      • 2012-04-08
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-22
      • 2020-11-13
      相关资源
      最近更新 更多