Python支持WS-Security接入预研情况

通过这段时间的预研发现Python语言中能够支持wss的框架很少而且极不成熟,现在能够了解到的有SOAPpy、pyGridWare、Ndg Security;当然,这些框架都还依赖于一些很知名的框架包,比如ZSI等;前两者官方文档中没有任何关于对wss支持的说明和sample,只是论坛和mail list中说这个框架能实现对wss的支持,但具体如何实现没有线索,据我的估计,这两个框架即使能实现,自己也需要写非常多的代码实现,在我的预研过程中早期就已经放弃这两个框架了;之后我转向了Ndg Security这个框架,这个框架确定能支持wss,而且有部分文档和sample可供参考;

针对Ndg Security深入研究后发现现在无法满足我们的需求,体现在:
1)Ndg Security只支持X.509V3版本的证书,对我们现在使用的V1版本证书不支持;即使我们对ISV采用新的V3版本的证书,alisoft可以支持,但是我们的公钥是V1版本的,也无法实现客户端验证;若考虑我们用两套版本,这样又需要ISV告诉我们到底是用什么版本的证书,无法发送这个通知信息暂时也没有好的办法,所以这种方案目前也不现实;
2)Ndg Security不支持客户端不验证服务端签名,即他接收到responseXml之后发现里面有签名是必须验证的,否则出错;这也限制了我们对该框架的使用;
3)Ndg Security暂时不支持Timestamp,但是我们现在服务端是有时间戳信息的,故而无法验证;但是他们已经有计划要提供对Timestamp的支持了,但现在还没发布;

BTW,顺便提下Python环境配置和各框架安装过程中遇到的问题;Python和Ruby一样,有提供一个使得安装更为简便的工具,那就是Eggs,或者说是easyInstall,对应于RubyGems;通过此种方式发布的框架包标识了他依赖的相关包及其下载地址,这样在安装过程中他就可以自动寻找并下载所有的依赖包,非常的方便;但也不是所有的框架都支持这种形式,有些框架只提供源码tar形式,需要自己编译,这样就有很多麻烦了,比如pyGridWare的安装就很费事,windows下的安装需要linux下相关包支持,比如gcc等;所以最好是安装个cygwin,这样linux下对应的很多东西都可以被模拟和支持,会给安装带来不少好处;
联系到更关注的Java,我想Java为什么没有一个类似于RubyGems/PythonEggs这样的东东呢?虽然Maven利用了这种思想来进行打包发布,我们公司内部也利用这种思想写了自己的打包工具Antx,但这毕竟只是自己公司级别的可用,要想达到每个框架自己发布的时候都遵循这种规则,让需要使用这个框架的人能够更快的安装和知道他所依赖的框架包,好像路还很长,暂时还没有这种标准出现!

PS:下面列出了相关框架的连接,以供参考;
RubyGems:http://docs.rubygems.org/
PythonEggs/EasyInstall:http://peak.telecommunity.com/DevCenter/EasyInstall
SOAPpy/ZSI:http://pywebsvcs.sourceforge.net/
pyGridWare:http://dev.globus.org/wiki/PyGridWare
ZOPE:http://www.zope.org/
pyGSI:http://dev.globus.org/wiki/Python/pyGsi
pyXml:http://pyxml.sourceforge.net/
Ndg Security:http://proj.badc.rl.ac.uk/ndg/wiki/T12_Security
M2Crypto:http://sandbox.rulemaker.net/ngps/m2/
cygwin:http://www.cygwin.com

你可能感兴趣的:(linux,框架,python,Security,文档,rubygems)