URL 授权

Internet 信息服务 (IIS) 6.0 使用授权管理器(可用于操作系统 Microsoft® Windows® Server 2003 家族的一个管理工具)实现 IIS URL 授权。

概述

授权用户对 Web 应用程序资源的访问需要对许多访问控制列表 (ACL) 进行管理。因此,维护 ACL 要求管理员精确地跟踪每个用户或组访问每个资源时需要哪些权限以便执行有意义的任务。IIS URL 授权允许 Windows 管理员简化访问管理,通过授权用户对构成 Web 应用程序的 URL 进行访问来实现。

当用户要求访问 URL 时,IIS URL 授权根据用户角色验证用户的访问,而用户角色可在轻型目录访问协议 (LDAP) 查询、自定义用户角色和授权管理器脚本 (BizRules) 中定义。这就允许管理员通过控制所有用户对 URL 的访问权限而不是控制每个资源上的每个 ACL 访问权限来简化访问控制管理。

IIS URL 授权是作为 Internet 服务器 API (ISAPI) 侦听器(如下图所示,URL 授权 ISAPI)实现的。如果将应用程序、虚拟目录或 URL 配置为使用 IIS URL 授权,则每个对 URL 的请求均被传递到 URL 授权 ISAPI 侦听器。URL 授权 ISAPI 侦听器将使用授权管理器(如下图所示,.NET Authz Framework)授权对所要求的 URL 的访问。URL 必须与包含 URL 的授权策略的授权管理器策略存储相关联。一旦已经授权客户端访问 URL,URL 授权 ISAPI 的 Execute URL 功能(如下图所示,ExecURL)会将请求传递到相应的 URL 处理程序,例如 ASP.dll、其他的 ISAPI 或静态文件处理程序。

IIS URL 授权

通过使用 IIS 6.0 URL 授权,管理员可以根据仅在运行时可用的信息控制访问权限。例如,如果网页仅对特定的成本核算中心中的雇员或仅对某一年龄段的雇员可用,则可以根据 LDAP 查询(其核对用户的对象上的成本核算中心或年龄属性)将角色指派给正确的用户。如果雇员仅可以在一周的某些天或一天的某段时间访问某些页,则可以创建 BizRule,根据这些值或任何可在运行时声明的值(包括 IIS 服务器变量)授予对 URL 的访问权限。

使用 URL 授权

要使用 IIS 6.0 中的 URL 授权,必须启用 ISAPI 侦听器,Urlauth.dll。此外,还必须在应用程序、虚拟目录或 URL (网站)上设置下列配置数据库属性:

  1. AzEnable:启用与配置数据库中的项对应的虚拟目录、应用程序或 URL 的 URL 授权。
  2. AzStoreName:将授权管理器存储与虚拟目录、应用程序或 URL 关联。
  3. AzScopeName:将虚拟目录、应用程序或 URL 与范围关联。此范围将具有 AzStoreName 中引用的授权管理器策略存储中的 IIS 6.0 URL 授权应用程序中的范围的名称。如果没有指定范围或指定了空字符串,则将使用 IIS 6.0 URL 授权的默认范围。
  4. AzImpersonationLevel:确定应用程序的模拟行为。这允许将 Web 应用程序配置为模拟客户端用户、IIS 工作进程或工作进程的 IUSER_computername 帐户。每个设置都会明显地更改 Web 应用程序的环境和隐含的设计。

示例脚本

以下是用 Microsoft Visual Basic® Scripting Edition (VBScript) 编写的示例脚本,将第一站点的根标记为“MyAZScope”中的一个 URL (在 MyAZStore.xml 文件中定义)。在此范围中具有 URLAccess 权限的用户将能够访问该站点。


var objVDir = GetObject("IIS://localhost/w3svc/1/root");
objVDir.AzEnable = true;
objVDir.AZStoreName = "MSXML://d:\MyAZStore.xml";
objVDir.AzScopeName = "MyAZScope";
objVDir.AZImpersonationLevel = 0;
objVDir.SetInfo();

如果 URL 授权控制对其他授权形式(例如 ACL 或 IIS 目录安全权限设置)的访问权限,则应用程序上下文仍然需要正确的 IIS 目录安全和 ACL 权限。IIS URL 授权使 IIS 目录安全和 ACL 权限更易维护。

如果配置了 IIS 6.0 URL 授权,应用程序、虚拟目录或 URL 的IIS 配置数据库项中的 AzStoreName 属性将标识授权管理器策略存储。要管理授权策略,运行授权管理器并且使用开放策略存储。IIS 6.0 URL 授权是此存储中的一个应用程序。配置数据库项中的 AzScopeName 属性将成为 IIS 6.0 URL 授权应用程序中的授权管理器范围。使用此范围管理对相应的 URL 的访问权限。在配置 URL 授权的应用程序、虚拟目录或 URL 时,必须在授权策略存储中以在相应的配置数据库项 AzScopeName 属性中指定的名称创建范围。

启用 ISAPI 侦听器

要使用 URL 授权 ISAPI 侦听器 (Urlauth.dll),必须先为每个请求 URL 授权的网站启用 ISAPI 侦听器。

要点 要点 您必须是本地计算机上 Administrators 组的成员或者您必须被委派相应的权限才能执行下列步骤。作为安全性的最佳操作,请使用不属于 Administrators 组的帐户登录到计算机,然后使用运行方式命令来以管理员身份运行 IIS 管理器。在命令提示符下,键入 runas /user:administrative_accountname "mmc %systemroot%\system32\inetsrv\iis.msc"

启用 URL 授权 ISAPI 侦听器

  1. 在 IIS 管理器中,展开本地计算机,展开“网站”文件夹,右键单击所需要的网站,然后单击“属性”。
  2. 单击“主目录”选项卡,然后在“应用程序设置”部分中单击“配置”。
  3. 单击“映射”选项卡,然后在“通配符应用程序映射”部分中单击“插入”。
  4. 在“添加/编辑应用程序扩展名映射”框中,单击“浏览”并且浏览到 Windows\system32\inetsrv 目录。
  5. 单击“urlauth.dll”,单击“打开”,然后单击“确定”。
相关主题

© 1997-2003 Microsoft Corporation。保留所有权利