怎样才能确实把新技术推到商务应用的前沿?首要的条件是新技术能产生额外的利润。Web服务可以让你通过因特网连接把自己所拥有的功能当作服务出售给其他人。现在的问题是,一旦你把功能作为Web服务发布在因特网上,那么任何人显然都能使用它,反过来,如果要阻止某些人使用你的Web服务又该怎么办呢?那就是说,你该采取什么手段才能保证只有付费顾客能使用你的Web服务?这就是本系列文章要解决的技术问题。本系列文章分成三个部分,主要讨论保证Web服务安全的若干技术,本文即是开篇。
在这篇文章里,我将用一家名为因特网字典公司(TIDC,Internet Dictionary Company的缩写)的虚构公司作为基本示例。该虚拟公司维护着一个开办多年的网站,用户可以通过该网站免费地检索单词的含义。此外,该公司还提供具有附加信息的付费服务,比如词源和同义词等等。随着Web服务时代的到来,TIDC意识到发大财的机会来了,这就是为其他网站提供定制的Web字典服务,从中获取丰厚的利润。该服务允许客户网站访问有关特定单词的TIDC信息而且在他们自己的网站上使用单词的定义。
另外还有家虚构的公司:Regal Research公司,该公司向全球提供有关皇室的在线信息,内容涉及到皇室的历史和现在。Regal Research公司过去通过链接TIDC网站某单词定义的方式采用TIDC提供的信息。然而,该解决方案对用户不是很友好,因为用户很容易就被带到了连接到TIDC网站的一个新浏览器窗口里去。使用TIDC所具有的集成价值也就随之丧失了,原因在于,从TIDC获得的词语定义并没有同Regal Research网站真正的融合在一起。
然而,在采用最新的TIDC Web服务的情况下,Regal Research公司现在就能完全地直接把词语定义乃至其他信息集成到它自己的站点(图A)中来。现在,当一位Regal Research的用户想知道某一个词的定义时,其定义就会显示在Regal Research的网站内,而根本看不出是由某一种单独的Web服务所提供的定义。这一过程给Regal Research的用户带来了更好的功能性而且,在几乎完全采用现有功能的前提下也为TIDC产生了额外的收入。
图A
TIDC Web服务架构
既然TIDC创造了一种Web服务而Regal Research又正在使用它,那么TIDC就必须保证除Regal Research之外的其他网站不能免费地访问其服务。要实现这个目标可以采用的方法众多。选择正确措施取决于所需要的安全程度和应用程序的目的。下面我们就来讨论一种名为IP阻塞(IP
blocking)的安全技术。
我们首先阐述的Web服务安全类型就是IP阻塞。IP阻塞是一种在几乎所有常用Web服务器(Apache和IIS)上普遍使用安全技术。
简单地说,IP阻塞就是识别某些特定IP地址的过程——来自这些IP地址的Web请求都是可接受的。这项技术通常由指定可接受的IP地址的列表来实现。每当一个Web请求被服务器收到,服务器就会把请求的来源IP地址同可接受IP地址表的条目进行比较。如果请求的来源IP地址正好列在表中年请求的认证即完成可进行下一步的处理。如果源IP地址不在表内,服务器就返回一个HTTP
403.6错误“Forbidden: IP address rejected.”,中文意思是该IP地址被拒绝。注意,在大多数Web服务器还可能是设置阻塞的IP地址而非许可的IP地址表。
由于Web服务通常采用简单的HTTP请求以供用户使用,所以,Web服务所采用的IP阻塞技术原理同标准的网站请求处理是完全相同的。在可接受IP地址列表上注册的客户就可以调用Web服务,而且可以查看网站上的WSDL文件了解所提供的Web服务内容。
在采用IP阻塞技术时你得考虑涉及到的一些问题。因为所有的请求都被Web服务器阻塞,所以客户只有在你把他们的IP地址加到可接受IP地址表之后才能访问网站。这一行为就令那些潜在客户无法查阅网站的WSDL文件来了解你推出的Web服务。此外,IP地址无效的用户还无法访问站点内的网页,这一点必须高度关注。因为开发人员通常把Web服务和网页放在同一网站内从而把可重用性最大化。因此,如果你对自己的Web服务采用了IP阻塞,那么你要不对自己的网页也采取同样的安全策略要不就为你的网站和服务在服务器上创建不同的虚拟目录。
在上述的因特网字典公司的例子中,IP阻塞是一项有效的安全措施。如图B所显示的那样,运行TIDC Web服务的Web服务器自动地接受Regal Research公司的Web请求,同时堵塞其他方发出的请求。这样做就使得只有付费的顾客才能访问TIDC Web服务。
图B
实现IP阻塞并不难,但是其实现过程因Web服务器的不同而不同。使用 IIS v5的用户只需选择网站属性对话框内的Directory Security标签,然后输入可接受的IP地址即可。而对Apache来说,你得修改.htaccess文件设置允许访问的IP地址。
采用IP阻塞还必须考虑这一点:管理员为了设置可接受的IP地址通常要访问Web服务器。这种访问在远程开发的情况之下是完全可能而且从成本上来说也更为节约。例如,如果TIDC 的开发人员在纽约而物理的Web服务器却在加利福尼亚,那么每当他们增加或删除一个客户的时候,开发者就不得不在加利福尼亚找人来帮助他们编辑IP地址列表,这简直太可笑了。
继续……
在这一系列的第二部分,我们将讨论保护Web服务的两项技术:用户认证和数字证书。