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

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

UsernameToken 身份验证

UsernameToken 身份验证与HTTP身份验证很相似,此时用户保密信息在消息的头部被传送。UsernameToken被添加到SOAP的头部,可能还会夹杂着一个散列的口令。这是一种加密的简单形式,可以避免无限制地传递口令。应该使用传输级别或者消息级别的加密来保证用户口令的保密性。

通过允许配置一个用于口令验证的LDAP,应用程序服务器支持UsernameToken身份验证。在应用程序服务器收到一个SOAP消息时,在将消息转发给应用程序之前,它会通过LDAP验证用户证书的正确性。

请添加描述

 

  由于其简易性和在应用程序服务器中的广泛支持,UsernameToken身份验证是非常吸引人的。然而,在考虑将它部署到你的应用框架时,你必须清楚其限制条件:

会话状态: UsernameToken需要用户名和口令在每一个Web服务的调用上都被传递。这暗示着如果客户端经常与该服务会话,客户端必须要对口令进行缓存,而这会导致一种安全风险。

性能:应用程序服务器必须重新验证每一个Web服务调用。而且,因为口令是消息的一部分,那么即使消息并没有包含敏感信息也必须加密。

为了演示UsernameToken身份验证,下面的例子重新使用了计算器服务的例子。你必须配置应用程序服务器以支持UsernameToken的安全,并且指定一个LDAP来验证用户的证书。配置步骤是与特定服务器相关的,因此请参考你的服务器的相关文档。笔者用WebSphere 6.1和活动目录测试了这个例子。

你必须增加一个WSS4J SOAP处理程序,以支持客户端支持在报头中发送UsernameToken。下面的客户端代码在调用Web服务之前,先调用configureClientHandlers方法:

public static void main(String[] args) throws MalformedURLException {
CalculatorServiceClient sc = new CalculatorServiceClient();
Calculator calc = sc.getCalculator(UT_ENDPOINT);
configureClientHandlers(calc);
float a = 5f;
float b = 7f;
System.out.println(a + " * " + b + " = " + calc.multiply(a,b));
}

configureClientHandlers方法创建一个新的拥有UsernameToken 属性的WSS4JoutHandler处理程序。下面的configureUsernameToken方法指定了属性:

private static void configureClientHandlers(Object svc) {
Client client=Client.getInstance(svc);
client.addOutHandler(new DOMOutHandler());
Properties properties = new Properties();
// Configure the UsernameToken properties
configureUsernameToken(properties);
client.addOutHandler(new WSS4JOutHandler(properties)); 
}
protected static void configureUsernameToken(Properties config)
{
// UsernameToken Action
config.setProperty(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
// Clear Text Password
config.setProperty(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
// User name to send
config.setProperty(WSHandlerConstants.USER, "johndoe");
// Callback used to retrieve password for given user.
config.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS, 
PasswordHandler.class.getName());
}

 

用户证书代码

口令从PasswordHandler中重新检索。它将口令存储在一个由用户名索引的地图中。下面是示例样本的用户证书代码:

public class PasswordHandler implements CallbackHandler {
private Map passwords = new HashMap();
public PasswordHandler() {
passwords.put("johndoe", "abc123");
}
...
The following SOAP message is observed by the TCP/IP monitor after running the client:
<soap:Envelope ...>
<soap:Header>
<wsse:Security ...>
<wsse:UsernameToken ...>
<wsse:Username ...>
johndoe
</wsse:Username>
<wsse:Password ...>
abc123
</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soap:Header>
<soap:Body>
<multiply xmlns="http://ejb.security.ws.dev.com">
<a>5.0</a>
<b>7.0</b>
</multiply>
</soap:Body>
</soap:Envelope>

本新闻共6页,当前在第4页  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笔记本模特写真