应用程序代理
一种非常有效的保护核心系统的方法是避免让任何人访问驻留平台的服务。可以通过为SOA中的web服务部署一个代理做到这一点。如图9所示,一个受保护的代理可以代表实际的web服务接收所有web服务请求,并对其做出响应,从而保护web服务免遭恶意的侵害。代理方法的另一个好处在于,它能够减轻企业安全性基础架构的负担。代理可以降低网络流量,具体方法是集中管理和缓存对web服务请求的身份验证和授权,而不是每次用户想调用web服务时,就在网络上使用大量消息对该用户进行身份验证和授权。代理还在消息中插入了身份验证和授权SAML断言,从而消除了实际web服务直接查询安全性系统的需要。
契约管理
在下一章中,我们将花大量时间来讲述这个主题,但是作为主要的SOA管理问题之一,契约管理同样在SOA安全性中起着举足轻重的作用。契约就是用于管理web服务使用情况的一组规则。例如,某个契约可能会规定,某个特定用户有权每天调用某个特定的web服务十次。而且在调用过程中,服务水平必须满足特定的参数,比如一秒钟的响应时间。
在安全性方面,契约有助于确定SOA是否运行正常,或者由于违反安全性规则而误用。如图10所示,SOA拦截器把web服务请求和响应数据发送给SOA安全性解决方案,然后该SOA安全性解决方案再确定是否满足契约。如果某个安全性问题(比如DoS攻击)使web服务的速度降低到契约规定的服务水平以下,SOA安全性解决方案就会警告管理方有问题存在。当然,一次足够严重的攻击可以导致整个网络崩溃,但是安全性解决方案至少可以发出有问题存在的通知。
图3 通过处理SOAP消息流量,降低企业安全性基础架构的负担,并保护web服务免于误用,web服务代理有助于保护SOA。
图4 SOA安全性解决方案监控服务水平,并在安全性问题导致web服务降低到契约规定的服务水平以下时发出警告。
网友评论