2

我正在尝试集成两个独立的 Web 应用程序 - 一个是现有的自定义 Web 应用程序,它具有自己的安全范例,另一个是报告平台 (JasperServer)。我希望能够使用 Jasper 的 Web 服务接口将报告功能集成到我们的应用程序中。我们的安全模型很复杂并且是本土的,但我认为这是有希望的。

我们设置了一个 cookie,它是一个加密字符串,其中包含一个 Web 服务 URI 作为身份验证源和一个存储在数据库中的令牌,该令牌在用户登录时创建并在他/她注销时被销毁。我想我可以利用它在 Jasper 中实现一种 SSO,因为它使用了 Spring Security。

认为我应该做的是实现一个预身份验证过滤器来检查我上面提到的 cookie。然后它可以对其进行解密,对提供的身份验证源进行 Web 服务调用,以验证令牌在数据库中是否处于活动状态。如果是,则该令牌可用于指向可以作​​为 UserDetails 对象返回的用户和​​角色信息。

不幸的是,我知道的足够危险,但还不够有效。我在正确的轨道上吗?这个解决方案听起来站得住脚吗?如果是这样,从哪里开始是一个好地方,有没有类似的例子你可以指出我?我已经搜索了很多,没有发现任何符合要求的东西。

提前感谢所有能给我带来一线希望的人

4

1 回答 1

0

Cookie 与域/子域/路径和端口相关联。可以在域级别设置 cookie,所以如果你有 webapp.mydomain.com 和 jasper.mydomain.com 之类的东西,假设它们在同一个端口上可能没问题。

但是,在实现您自己的 SSO/身份验证框架时要非常小心。它需要大量的思考。就目前而言,您提议的实现将容易受到:重放、中间人和 XSRF 攻击......可能还有其他漏洞,但这些只是浮现在脑海中的 3 个......对不起!:D

于 2012-04-19T19:33:18.363 回答