|
五步保护企业Windows环境下的Web服务大中型企业有相当大部分都在使用Windows Server以及。Net架构来构建企业Web服务和应用,因此Web服务和Web应用程序通常被ASP.NET和IIS主管。 4、假冒 不管Windows身份认证是否已经选择,ASP.NET身份认证没有指明ASP.NET应用程序运行下的用户环境。如果你想要你的应用程序在任意账号,而不仅仅是ASPNET账号的环境中运行,你必须要假冒身份。 假设请求的用户已经被IIS许可为有效的Windows用户,这是由以下web.config中的内容完成的: <configuration> <system.web> <identity impersonate=“true”/> </system.web> </configuration> 这将导致ASP.NET应用程序假冒发出请求的用户。然而,如果IIS设置为匿名身份认证,那么在IIS中,ASP.NET应用程序假冒任意一个用户账号,这些账号已经被配置为匿名访问。 如果你想要你的ASP.NET应用程序假冒特定的用户,这是很简单的: <configuration> <system.web> <identity impersonate=“true” userName=“Foo\bar” password=“baz”/> </system.web> </configuration> 在此很明显的危险就是:在web.config中用户凭证以明文形式存在。避免该危险是可能的,我们通过在注册表中存储加密的用户凭证,并且从web.config的<identity>元素来引用他们。 <identity impersonate=“true” userName=“registry:HKLM\Software\MyApp\AspNet,Name”, password=“registry:HKLM\Software\MyApp\AspNet,Password”/> 这个实用的aspnet_setreg.exe必须被用于加密用户凭证以及在注册表中存储加密的用户凭证。 5、授权 当你在ASP.NET中应用Windows授权时,为了访问一个给定的资源,被授权的用户必须有必要的NTFS权限。这被称为文件授权(file authorization)。ASP.NET支持其他的更具灵活性的授权类型,这被称为URL授权(URL authorization)。不像文件授权,这是通过应用程序的web.config文件来配置的。它主要是基于通过对ASP.NET身份认证来对应用程序进行分配;而不是基于一个经过许可的Windows账户的权限上。一个简单URL授权配置的例子如下: <configuration> <authorization> <allow verbs=“GET” users=“Fred,Joe”/> <deny verbs=“POST” users=“Fred,Joe”/> <allow roles=“Developers”/> <deny users=“*”/> </authorization> </configuration> 这个例子允许用户Fred和Joe将HTTP GET请求提交到应用程序,以求得由web.config文件管理的网站中的任意资源。但是若通过HTTP POST请求,就会拒绝他们访问这些资源。担任开发者角色的任意人(除了Fred或 Joe)是允许无限制的访问该网站的,但是其他所有用户被拒绝访问任何资源。这些元素的顺序非常重要,因为第一个匹配将是ASP.NET会使用到的。最后明确<deny users=“*”/>通常需要锁定网站,因为默认情况下,machine.config文件包括了这样的配置: <authorization> <allow users=“*”/> </authorization> 责编:李玉琴 微信扫一扫实时了解行业动态 微信扫一扫分享本文给好友 著作权声明:畅享网文章著作权分属畅享网、网友和合作伙伴,部分非原创文章作者信息可能有所缺失,如需补充或修改请与我们联系,工作人员会在1个工作日内配合处理。 |
最新专题 |
|