解决 IIS 权限问题的指南

BizTalk Server广泛使用Microsoft Internet Information Services (IIS) ,以支持 Web 服务,并与 HTTP、SOAP 和 Windows SharePoint Services 适配器一起使用。

在解决 IIS 权限疑难问题之前,了解 IIS 如何实现应用程序隔离是很有帮助的。

使用 IIS 可创建作为不同宿主进程的 IIS 应用程序,它们在自己的内存空间中运行。 创建 IIS 应用程序主机后,必须定义两组权限:IIS 应用程序主机 进程标识 和 IIS 应用程序主机 用户访问权限。 在解决 IIS 权限疑难问题时,您应对每组权限都进行检查。

注意

进程标识用户访问权限也称为 IIS 应用程序主机进程的安全上下文

本主题介绍如何为 IIS 应用程序主机 进程设置进程标识用户访问权限 ,并提供解决 IIS 权限问题的一些常规准则。

设置 IIS 应用程序宿主进程标识

IIS 应用程序宿主进程的配置随宿主进程提供的不同功能级别而异。 例如,仅为静态 HTML 页提供服务的 IIS 应用程序主机进程的配置通常不同于为 ASP 页或 ASP.NET 应用程序提供服务的 IIS 应用程序主机进程。

IIS 应用程序宿主进程的配置也随该应用程序的宿主 IIS 的不同版本而异。 运行在 Windows Server 2008 (IIS 7.0) 上的应用程序的宿主进程标识由与该应用程序关联的应用程序池标识管理。

在 Windows Server 2008 或 Windows Vista 中设置 IIS 7.0 的 IIS 进程标识

  1. 依次单击 “开始”、“ 所有程序”和“ Internet Information Services (IIS) 7 管理器”。

  2. 在“Internet Information Services (IIS) 管理器”中,展开 <“计算机名称> ” (“用户帐户”) ,然后单击“ 应用程序池”。

  3. 右键单击应用程序池,然后单击“ 查看应用程序 ”以查看与应用程序池关联的应用程序。

  4. 右键单击应用程序池,然后单击 “高级设置” 以显示应用程序池的“高级设置”对话框。

  5. 单击“高级设置”对话框的“进程模型”部分下的“标识”旁边的省略号 (...) 按钮,修改应用程序池的标识。

为 IIS 服务器设置用户访问权限

进程标识控制运行的 IIS 应用程序宿主进程可用的安全上下文,而用户访问权限控制实际访问所承载网页的帐户的安全上下文。 必须为两个安全上下文设置适当的权限,以避免权限错误。

IIS 7.0 支持以下用户验证方法:

  • 匿名访问: 允许用户建立匿名连接。 IIS 服务器以指定的 Guest 帐户登录用户。

  • ASP.NET 模拟 允许应用程序在以下两种不同上下文之一中运行:作为经过 IIS 身份验证的用户或设置的任意帐户。

  • 基本身份验证: 以纯文本(未加密的形式)跨网络传输密码。

  • 摘要式身份验证: 仅适用于 Active Directory 帐户,通过网络发送哈希值,而不是纯文本密码。 摘要验证可通过代理服务器和其他防火墙工作,可以在 Web 分布式创作和版本管理 (WebDAV) 目录中使用。 要使用摘要式身份验证,首先必须禁用匿名身份验证。

  • 表单身份验证 适用于公共服务器上的高流量站点或应用程序的身份验证。 表单身份验证可管理客户端注册和应用程序级别的身份验证,而非依赖操作系统提供的身份验证机制。

  • Windows 身份验证:使用 Windows 域上的身份验证对客户端连接进行身份验证。

设置 IIS 7.0 中虚拟目录的用户访问权限

  1. 在“Internet Information Services (IIS) 管理器”中,展开 <“连接”窗格中的计算机名称>、站点和默认网站

  2. 单击以选择虚拟目录,然后单击“工作区”窗格底部的 “功能视图 ”,列出虚拟目录的可配置功能。

  3. 双击“工作区”窗格中的 “身份验证 ”功能,列出为虚拟目录启用的身份验证方法。

  4. 单击以选择要启用或禁用的身份验证方法,然后单击 IIS 管理器的“操作”窗格中的“禁用”或“启用”。

    注意

    如果 启用匿名访问 ,IIS 会将用户访问权限设置为配置的匿名用户标识,然后再使用任何其他已启用的身份验证方法设置用户访问权限。

    若要配置匿名用户标识,请右键单击 “匿名身份验证 ”方法,然后单击“ 编辑 ”以显示“ 编辑匿名身份验证凭据 ”对话框。

解决 IIS 权限问题的一般准则

按照以下步骤来解决 IIS 权限疑难问题:

  1. 在 IIS 服务器计算机的应用程序日志中查找错误。

  2. 按照 IIS 7.0:在 IIS 7.0 中配置失败请求的跟踪 中的步骤排查 IIS 7.0 计算机上的权限问题。

  3. 在 IIS 服务器的 IIS 日志文件中查找 HTTP 401 错误。

    默认情况下,在运行 Windows Server 2008 或 Windows Vista 的计算机中,IIS 日志文件位于以下目录:

    C:\inetpub\logs\LogFiles\W3SVC1\

    • 如果 IIS 7.0 计算机的 IIS 日志文件包含 HTTP 401 错误,请按照 Microsoft 知识库文章943891“IIS 7.0 中的 HTTP 状态代码”中的 https://support.microsoft.com/kb/943891 步骤确定子状态代码,并根据状态代码排查权限问题。

    • 检查与 HTTP 401 错误关联的 cs-username 字段的值。 此字段包含访问 IIS 服务器的已通过验证的用户的名称。 在此字段中,匿名用户帐户由连字符 (-) 表示。 确保此帐户具有访问相应资源的权限。

  4. 验证 IIS 应用程序宿主进程使用的进程标识凭据已正确设置,并且该帐户具有适当的权限。 如果用于进程标识的帐户没有足够的权限,则更改帐户或授予该帐户适当的权限。

  5. 使用 用于故障排除的工具和实用工具 中所述的 RegMon 和 FileMon 实用工具来诊断文件或注册表访问权限问题。

另请参阅

排查BizTalk Server权限IIS 7.0:在 IIS 7.0 中配置身份验证