Fra*_*ans 8 .net security vbscript ws-security web-services
我需要构建一个简单的Web服务,通过Internet将数据输入和输出HR系统(这是一个托管解决方案).我正在使用IIS和ASP.Net与.Net 2.0.
看了之后,有几种方法可以确保网络服务的安全 - 我正在考虑选择哪种方法,并对一些优缺点进行一些观察.
这些是我所知道的方法:
将UID/PWD发布到Soap头中并实现SOAP扩展(链接).
非常简单的实现,并且应该通过SSL非常安全.由于相对简单,这是我的首选方案.此外,由于历史原因,我需要使用VBScript中的所有Web服务,因此只需处理简单的SOAP即可.
但是,有什么警告吗?我是否会让客户抱怨这是一种安全隐患?
我发现很多旧文章指的是WS,如果我没有被误解,这就是现在在WCF中提供的内容?这个Microsoft链接有一个入门.
如果我理解正确,它会在客户端和服务器之间使用基于证书的安全性进行身份验证.这是正确的还是我完全错了?
我怀疑这将是一项更大的工作,至少在实施方面是明智的.此外,我将无法直接从VBScript访问Webservice,因此必须编写一个调用它的DLL然后在本地部署 - 正确吗?
这甚至可以在.Net 2.0中使用吗?
对于解决这个问题的最佳方法,我将非常感激.如果有人有一个很好的论据,为什么Soap Headers是安全的,那么我很乐意听到它,因为这似乎是最简单的使用,只要它"足够安全".
您应该强烈考虑使用 IIS 和 Windows 来提供身份验证。IIS 可以将传入请求映射到 AD 用户(NTLM、证书、Kerberos 等)。从那里,您将拥有一个WindowsPrincipal,您可以使用它来要求用户位于一个组中。如果您不介意将组名称编译到代码中,您甚至可以在服务方法上使用PrincipalPermissionAttribute,这样它就完全是声明性的。
通过使用 Windows,您可以获得处理所有安全问题的平台。密码不会以纯文本形式传输,您也不需要创建和指定您自己的质询/响应类型系统(恶心)。不同的客户端可以以不同的方式进行身份验证(某些客户端需要证书,其他客户端允许 NTLM)。
最后,您将获得更少的代码,因为您可以使用 Windows 来管理用户并使用 .NET Framework 来强制执行安全检查。
编辑:
也许您认为保护 ASMX 很棘手,因为这是您正在考虑的唯一步骤?我同意!仅依赖于您已拒绝匿名的网络服务听起来确实非常弱。身份验证完成后, Web 服务代码本身应该要求组成员身份。这样,如果您错误配置服务器,您只是使其无法访问,而不是不安全。
| 归档时间: |
|
| 查看次数: |
8339 次 |
| 最近记录: |