登录论坛 | 注册会员 设为首页 | 收藏本站
当前位置 : 首页>软件学院>网络技术>网络安全>正文
 
选择正确的Web服务器安全解决方案

http://www.dbit.cn 2008/5/7 8:16:34  来源:ccident  编辑:张佳奇
 

现在这个SOAP消息的头部部分包含了用户名和口令。服务器对用户证书进行验证,或者许可或者拒绝了对目标Web服务的访问。为了防止对口令的窃听,你必须使用消息级的加密或者以前描述的SSL方法。

一个.net2.0客户端也将一个UsernameToken添加到SOAP/HTTP的头部。为了支持这项功能,你必须在你的Visual Studio环境中安装WSE 3.0库及其扩展。(你可从这里下载。)你必须像在Java客户端的例子中所做的那样,从WSDL中生成一个客户端的stub。生成的stub看起来会是如下这样子:

... 
public partial class CalculatorServiceWse : Microsoft.Web.Services3.WebServicesClientProtocol {
private System.Threading.SendOrPostCallback multiplyOperationCompleted;
private bool useDefaultCredentialsSetExplicitly;
...

一旦stub被创建,客户端代码就会展现这个stub,并且指定UsernameToken被发送到服务器。下面的c#示例代码演示了如何做到:

static void Main(string[] args)
{
CalculatorServiceWse calc = new CalculatorServiceWse();
calc.Url = "http://localhost:9080/WSUTSigEncRouterWeb/services/Calculator";
//
UsernameToken token = new UsernameToken("johndoe", "abc123", 
PasswordOption.SendPlainText);
calc.SetClientCredential(token);
calc.SetPolicy("usernameTokenSecurity");
float result = calc.multiply(7, 5);
Console.WriteLine("Result = " + result);
Console.ReadLine();
}

运行客户端代码就会生成所期望的输出结果:Result = 35.0

基于签名的身份验证

UsernameToken身份验证适合于客户端身份基于用户的情况,但是你的Web服务客户端可能是一个并不直接代表一个用户的服务器或者设备。可以考虑这样一种情况:一个处理船舶运载的Web服务通过检查定单的交付日期,将定单发送到适当的运载服务供应商。假定客户端是一个消息驱动的服务器定单应用程序,这个应用程序从一个队列中接收消息,并且通过调用运载和账单处理服务来处理定单。在这种情况下,运载服务的身份验证就必须限制为只能给定单应用程序服务器而不是特定的用户。

验证服务器和设备客户端的一种方法是使用XML签名。客户端使用一个私钥来签署SOAP消息,而Web服务使用相应的公钥来验证这个签名。正如在前面的关于加密的示例中所讨论的那样,必须生成一对公/私钥密码。一个密钥存储通常情况下存储着包含服务器公钥的X509证书。图2显示了基于签名的身份验证顺序:

请添加描述

配置XML签名的Web服务仍然是与特定服务器相关的,因此请参考你的服务器的相关文档。

为客户端增加签名需要与配置加密方式一样配置一个WSS4J处理程序。你可以用以前介绍的configureClientHandlers方法为这个处理程序增加代码:

private static void configureClientHandlers(Object svc) {
Client client=Client.getInstance(svc);
client.addOutHandler(new DOMOutHandler());
// Add WSS4J signature Handler
Properties sigProps = new Properties();
configureSignature(sigProps);
client.addOutHandler(new WSS4JOutHandler(sigProps)); 
}

configureClientHandlers方法调用configureSignature的目的是指定处理程序的签名属性。其属性包含要签名的局部消息、签名属性文件的位置以及用于在SOAP报头中指定签名的方法:

protected static void configureSignature(Properties config)
{
// Signature Action
config.setProperty(WSHandlerConstants.ACTION, WSHandlerConstants.SIGNATURE );
// Method of specifying the signature in the header
config.setProperty(WSHandlerConstants.SIG_KEY_ID, "DirectReference");
// Signature Property File Location
config.setProperty
(WSHandlerConstants.SIG_PROP_FILE, "com/dev/ws/client/driver/outsecurity_sig.properties");
// Sign the Body part of the message
String bodyPart = "{Content}{}Body";
config.setProperty(WSHandlerConstants.SIGNATURE_PARTS,bodyPart);
}

本新闻共6页,当前在第5页  1  2  3  4  5  6  

收藏】【打印】【进入论坛
  相关文章:

·Web服务器访问失败故障处理技巧
·Web服务器维护和安全管理技巧3则
·十个步骤打造安全的个人Web服务器 
·教你打好WEB服务器安全攻坚战
·紧急处理Web服务器访问失败故障
·Web服务器安装和运行FTP操作步骤
·Web服务器启用并运行FTP服务 
·保护Web服务器从数据库开始 
·保障Web服务器安全的六个步骤
·保障Web服务器安全的六个步骤 
·Web服务器的启用并运行FTP服务

 
 
 
最新文章

抢先苹果,消息称英特尔芯片采用台积电
三星揭晓业内首款单条 512GB DDR5 内存
vivo 高端新机爆料:120Hz 曲面屏 + 天
vivo Y21 在印度正式上市:Helio P35 芯
微星推出 GeForce RTX 3080 Sea Hawk X
消息称三星 Galaxy Tab S8 系列平板将放
机械革命推出 F6 轻薄本:16 英寸全面屏
英特尔 12 代 Alder Lake CPU 600 系列
雷军:向小米手机 1 首批用户每人赠送价
小米李明谈用户被踢出 MIUI 测试版:大

推荐文章
1
2
3
4
5
6
7
8
9
10
叛逆嫩模性感写真
宫如敏不雅照疯传 看张馨予韩一菲兽兽谁
不惧孔子抢位 阿凡达游戏影音配置推荐
2015第十七届“东北安博会”火爆招商
第十六届东北国际公共安全防范产品博览
2016年第五届中国国际商业信息化博览会
2016年第五届中国国际POS机及相关设备展
互联网电视熟了吗 2013最火电视深解析
桑达获邀出席2015中国(广州)国际POS机
宝获利报名参加“2015年度中国POS机行业
八卦图解 More>>
叛逆嫩模性感写真 宫如敏不雅照疯传 看张馨予韩一菲
周伟童魔鬼身材日本性感写真图  联想V360笔记本模特写真