如果 ASP.NET 应用程序需要作为基本身份验证的已验证用户来运行,请使用下面的 Web.config 文件配置。有关更多信息,请参见将 IIS 身份验证用于 ASP.NET 模拟。
<!-- Web.config file -->
<system.web>
<authentication mode="Windows" />
</system.web>
摘要式
简要身份验证克服了基本身份验证的主要弱点:以纯文本形式发送密码。简要身份验证是一种质询/响应机制,它在网上发送简要(又称为哈希)而非密码。简要是一个通过将某数学函数(称为哈希函数或简要算法)应用到任意数量的数据后获得的固定大小的结果。该固定大小取决于加密级别。例如,如果一个 128 位简要由 32 个 ASCII 字符组成,则一个 40 位简要将包含 10 个 ASCII 字符。当客户端试图访问要求简要身份验证的资源时,IIS 向该客户端发送一个质询,要求它创建一个简要并将其发送到服务器。客户端连接服务器和客户端都知道的密码和数据。然后客户端将一个简要算法(由服务器指定)应用到该组合数据。客户端将获得的简要发送到服务器作为对质询的响应。服务器利用从 Active Directory 获得的客户端密码副本,使用与客户端相同的过程创建简要。在 Active Directory 中使用可逆加密方法保存密码。如果服务器创建的简要与客户端创建的简要相匹配,则 IIS 验证该客户端的身份。IIS 使用子身份验证 DLL (iissuba.dll) 验证用户身份,同时登录网络。就其自身而言,简要身份验证只是基本身份验证的稍加改进。如果没有 SSL/TLS,攻击者可以记录客户端与服务器之间的通信。使用此信息,攻击者就可以重放该事务。有关更多信息,请参见 IIS Documentation(IIS 文档)中的 About Authentication(关于身份验证)
优点
在网络上发送简要,而非密码。
与代理服务器和防火墙一起使用。
不因保护密码而要求使用 SSL/TLS。
缺点
不能委托安全凭据。
仅 Internet Explorer 5.0 及更高版本支持它。
受制于重放攻击,除非使用 SSL/TLS。
要求使用可逆加密方法在明文中储存密码。
要求为 Active Directory 中的每个用户创建域帐户。
实现
Web 应用程序的安全性始于 Web 服务器 (IIS)。与基于 Windows 的服务相同,IIS 完全集成在 Windows 安全性中。与其他任何进程相同,为了访问某文件,IIS 需要正确的身份验证。当用户将请求从他们的浏览器发送到 IIS 时,IIS 必须从 Windows 文件夹中读取该文件,并且无论 Windows 定义的身份验证适用于什么对象,该文件都将适用于此 IIS 请求。也就是说,为了获取对资源的访问,IIS 必须提供正确的凭据,这与其他任何进程相同。Web 应用程序运行时,是在 ASP.NET 下运行,ASP.NET 具有其自己的安全性工具。当应用程序需要访问资源时,这些工具就可以发挥作用。例如,如果要在您的 Web 应用程序中读取或写入文件,则请求是否成功正是由 ASP.NET 安全性上下文决定的。
并不是所有用户都具有读取 Windows 服务器上的文件所需的正确身份验证,尤其是在 Internet 上公开提供的 Web 应用程序中。因此,IIS 和 ASP.NET 提供了几种建立身份验证的机制。以下说明将总结这些方法,因篇幅有限,不得不省略了这些方法的工作方式的许多细节。有关 IIS 安全性的详细信息,请参见 Microsoft Web 站点 (http://www.microsoft.com/windows2000/en/server/iis/) 上 IIS 文档中有关访问控制的主题。有关 ASP.NET 安全性的详细信息,请参见 ASP.NET Web 应用程序安全性。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)