如何从IIS应用程序访问网络文件
发表于:2007-06-13来源:作者:点击数:
标签:
当您从 Internet Server API (ISAPI) 扩展、Active Server Pages (ASP) 页或“通用网关接口”(CGI) 应用程序访问的文件所在的计算机不是 Internet Information Server (IIS) 服务器 时,可能会遇到一些问题,本文提供与这些问题相关的信息。本文列出涉及到的
当您从 Internet Server API (ISAPI) 扩展、Active Server Pages (ASP) 页或“通用网关接口”(CGI) 应用程序访问的文件所在的计算机不是 Internet Information Server (IIS)
服务器时,可能会遇到一些问题,本文提供与这些问题相关的信息。本文列出涉及到的一些问题和可能的解决方法。 虽然本文主要针对访问网络共享位置上的文件而写,但相同的概念也适用于命名管道连接。命名管道通常用于 SQL Server 连接和远程过程调用 (RPC) 及“组件对象模型”(COM) 通信。尤其是,如果通过配置为使用“Microsoft Windows NT 集成
安全性” 的网络连接到 SQL Server,则会因本文所述的问题而无法连接。RPC 和 COM 也可能使用其他具有类似网络身份验证方案的通信机制。因此,本文中的概念适用于从您的 IIS 应用程序使用的各种网络通信机制。
身份验证和模拟类型
当 IIS 为 HTTP 请求提供服务时,IIS 将执行模拟,以便对处理请求的资源访问权限进行适当的限制。模拟的安全上下文基于为请求执行的身份验证类型。IIS 4.0 提供五种不同的身份验证类型:
身份验证类型 模拟类型
匿名访问(无身份验证) 网络
自动密码同步为
ON(ON=默认值)
匿名访问(无身份验证) IIS 明文
自动密码同步为 OFF
基本身份验证 IIS 明文
NT 质询/响应身份验证 网络
客户端 SSL 证书映射 交互式
令牌类型
是否允许访问网络资源取决于在什么类型的模拟令牌下处理请求。
• |
“不”允许网络令牌访问网络资源。(之所以将它命名为网络令牌,原因是此类令牌过去通常是当用户在整个网络中经过身份验证时由服务器创建的。允许服务器使用网络令牌充当网络客户端并访问其他服务器,这种做法称为“委派”且被视为潜在的安全漏洞。) |
• |
过去,当在计算机上对本地用户进行身份验证时会使用交互式令牌。允许交互式令牌访问整个网络的资源。 |
• |
批处理令牌旨在为批处理作业的运行提供安全上下文。批处理令牌具有网络访问权限。 |
IIS 有一个
明文登录的概念。之所以称其为
明文登录,原因是 IIS 具有以明文方式访问用户名和密码的权限。通过置配置
数据库中的
LogonMethod 属性,您可以控制
明文登录创建的令牌类型:“网络”令牌、“交互式”令牌或“批处理”令牌。默认情况下,
明文登录收到“交互式”令牌,可以访问网络资源。您可以在服务器、站点、虚拟目录、目录或文件级别配置
LogonMethod。
匿名访问模拟配置为请求的匿名用户的帐户。默认情况下,IIS 有一个称为 IUSR_<计算机名> 的匿名用户帐户,在处理不需要身份验证的请求时模拟该帐户。默认情况下,IIS 4.0 具有一项称为“启用自动密码同步”的可配置功能,它使用安全次权限创建令牌。通过这种方式创建的令牌是网络令牌,它们“不能”访问网络中的其他计算机。如果禁用“自动密码同步”,IIS 以与前面所述的
明文登录相同的方式创建令牌。“自动密码同步”只用于 IIS 所在计算机上的帐户。因此,如果将匿名帐户更改为域帐户,则无法使用“自动密码同步”,而会收到
明文登录。但这种情况有一个例外,那就是在“主域控制器”上安装 IIS 时。在此情况下,域帐户位于本地计算机上。您可以在服务器、站点、虚拟目录、目录或文件级别配置匿名帐户或“自动密码同步”选项。
访问网络资源的第一步是必须具有正确的令牌类型。您还必须模拟对整个网络的资源有访问权限的帐户。默认情况下,IIS 为匿名请求创建的 IUSR_<计算机名> 帐户只在本地计算机上存在。即使通过禁用“自动密码同步”获得了可以访问网络资源的“交互式”令牌,IUSR_<计算机名> 帐户通常也不能访问大多数网络资源,因为其他计算机不识别该帐户。如果要用匿名请求访问网络资源,则必须将默认帐户替换为可由网络中的所有计算机识别的域帐户。如果在“域控制器”上安装 IIS,IUSR_<计算机名> 帐户就是域帐户,您不需要执行额外操作,网络中的其他计算机一定识别该帐户。