有几种不同的Web服务 - 使用的各种技术,如Java,.NET,Python和Perl和可能更多的未来 - 属于不同组织和访问这些Web服务已经受到限制。
这个想法是有一个中央认证和授权服务器,只负责授权访问每个WS。
我在寻找一个单点登录系统,其中用户与auth服务器认证一次,并授予访问Web服务在有限的时间跨度。
安全性要求越来越高,所以用户名/密码设置是不够的。
在快速搜索我发现很多不同的解决方案和方法的问题,但我不知道这种情况下,最好的一个 - 一个技术独立,安全和可靠的解决方案。
我们做了关于这一主题的大型研究,但没有找到合适的解决方案了。 (近一个很好的解决方案,但没有这么多的web服务是http://www.atlassian.com/software/crowd/ )
因此,我们开发了SSO和集中用户管理系统也为我们的WS应用程序(也第三方应用程序),但它不卖。
如果你的测试解决方案,您应检查系统,负荷下特殊的表现。 在一开始,我们系统是慢了30倍。 通常你会在XML解析和请求您需要做的(通常,你不得不在未来的一个请求,你将有至少4)数字向下找到缓慢。 (我们使用JMeter的测试它。)你应该设置故障转移系统,因为你创建SSO单点故障。
这个问题已经通过WS-信托已基本解决,至少基于SOAP的Web服务反正。 WS-信任是用于验证和交换“的认证令牌”良好定义的协议,并且可以在跨企业场景与协议,如构建在它WS联合使用。
一个例子方案是为客户从WS-信托服务器请求一个令牌,则包括在SOAP头添加到Web服务主机令牌。 另一面是包括如<的UsernameToken>在请求到主机简单的东西,并有服务器侧委托认证的WS-信任服务器。
还有的WS-信托相当不错的客户端支持 - WCF具有开箱即用支持的,不同厂商对JAX-RPC和JAX-WS Web服务J2EE拦截。
虽然WS-Trust的重点是身份验证,则可以使用约何时发出或确认接收的令牌逻辑做粗粒度的授权。 不要发出/验证令牌,并获得有效拒绝。 细粒度的授权用于Web服务通常需要一些自定义的拦截,这是供应商特定的。
我为IBM Tivoli安全工作,我们在这个领域的几个产品。 首先是Tivoli联合身份管理器(TFIM)。 一位同事和我写这篇文章的基于WSE的Web服务集成TFIM,并包括WS-Trust协议本身的概述。 第二个产品是Tivoli安全策略管理器(TSPM),它实现了Web服务的细粒度授权。
有这些相同的协议,这是使用基于标准的解决方案的上侧的开放源码实现。 我相信,JBoss和WSO有实现可能有用。