如何授权来自其他应用程序的有效用户的请求

时间:2012-08-01 09:34:41

标签: java authentication spring-mvc

我有两个Web应用程序,app-A和app-B(两者都将托管在不同的服务器上)。现在,对于app-A中的特定事件,我需要调用app-B的URL,以便app-B可以进行一些处理。在app-A内部,我正在关注登录/注销以授权用户。所以在app-A,一切都很安全。

但如果网址向某人公开,他们就可以使用我的app-B。那么我如何在app-B中验证请求是来自app-A的授权用户?

我正在使用Java(Spring MVC)。提前感谢您的时间。

更新:

  • app-A和app-B都将被托管并向公众开放。
  • app-A和app-B在数据库和登录机制中拥有不同的用户(表)集。
  • 该方案是使用app-A管理员登录,并执行一些活动。这会触发对app-B未受保护的URL的调用。问题是 - 如何在app-B中确保呼叫仅来自app-A的管理员,而不是来自任何外部用户。

2 个答案:

答案 0 :(得分:0)

您需要在服务器上进行单点登录,例如CAS是好的。

答案 1 :(得分:0)

您必须创建包含指定请求的链接,以及一些自定义文本(例如:会话ID)和使用私钥签名的此文本的数字签名,该私钥将为您的应用程序共享。 app-B可以验证签名,如果通过,则触发请求。

[edit]:你必须记住,传递令牌必须有有限的实时时间,否则如果有人抓住了链接,他将能够在以后使用它。因此,您可以添加到“自定义文本”(如上所述)创建令牌的日期和时间,并让app-B不会触发超过5分钟前​​创建的请求。