首页 新闻 搜索 专区 学院

Web Services安全问题

0
[已解决问题] 解决于 2009-05-17 12:05

我们现在做的系统里面大量使用了Web Services,采用的是WinForm调用Web Services的方式。但是这样存在一个问题是,我们没有对调用Web Services进行安全认证。也就是只要知道Web Services的地址就可以调用它。而在添加Web 引用的时候,引用地址自动写在App.config里面了。用户只要打开App.Config就可以看到地址,从可以调用相应的操作。

问题:我怎样对调用者进行认证,没有权限的不能进行调用。

另外一种解决方法就是不暴露Web Services的地址。但是程序自动把地址写到了app.Config里面了。那我怎样对其隐藏呢?如果对app.config进行加密,加密后,里面的地址还能自动识别吗?

问题补充: 我们的客户端有若干个。甚至是几个机房。
侯垒的主页 侯垒 | 老鸟四级 | 园豆:3435
提问于:2009-05-13 22:16
< >
分享
最佳答案
0

Web Service 安全解决方案很多,总体来分,
1.借助IIS的安全机制(操作简单,和管理网站类似)
2.SOAP消息自带用户名密码,服务端进行加密解密,缺点就是密码用以截获,可以伪造。
3.就是借助WSE3.0,它提供了更加丰富的安全策略和配置方案。应该可以满足你的要求。

补充一下:
  我的博客里有关于Web Service和WSE3.0构建Web 服务安全的系列文章。基本都给出了详细的概念介绍和开发配置过程。还有部分示例代码,可以参考。

1.WCF分布式开发必备知识(4):Web Service

2.WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发

  希望对你有所帮助~

Frank Xu Lei | 小虾三级 |园豆:1860 | 2009-05-14 14:49
其他回答(3)
0

这个还是有几种解决方法的:

1、config文件的内容是可以写到注册表的

2、自己实现一套认证机制,通过扩展SOAP头来带上身份认证,可以包括用户名和密码,再加上时间戳防重放,加上哈希防篡改

3、使用Web Service证书,在客户端安装后进行证书型的认证,比较知名的有X509等

Gray Zhang | 园豆:17610 (专家六级) | 2009-05-14 01:00
0

最简单的方法就是让你的Web Service开启Windows身份验证,IIS上用集成身份验证。然后把允许访问的用户列表放到服务器段(在域里面的话可以直接用用户组)。

客户端调用的时候带上Credentials就行了。

Azuresong | 园豆:3565 (老鸟四级) | 2009-05-14 13:36
0

调用的人能够确定的话,也可以 限制IP

迷梦江南 | 园豆:65 (初学一级) | 2009-05-15 09:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册