保护 Web 应用程序
可以使用管理器限制对 ArcGIS Server Web 应用程序的访问权限。对应用程序启用安全性后,将只有具有许可角色的用户可以对应用程序进行访问。
对应用程序设置安全性之前,要先确保已经创建了用户和角色存储,且至少已添加一个用户和一个角色。有关此操作的详细说明,请参阅设置用户和角色概述。
要设置规则以规定哪些用户具有对 Web 应用程序的访问权限,请遵循以下步骤:
- 在 ArcGIS Server 管理器中,单击应用程序选项卡,查看服务器上的 Web 应用程序列表。
- 查找想要设置安全性规则的 Web 应用程序,然后单击权限(锁定)按钮。将弹出权限 对话框,可以在其中
- 启用 Web 应用程序的安全性。如果未选中此复选框,则该对话框中的其他设置都被禁用。如果取消选中此复选框,则将不会对该应用程序的访问进行限制。
- 允许某一角色访问该应用程序。要添加角色,可从左侧的可用角色列表中选择角色。单击添加,将所选角色添加到允许角色列表。
要从许可列表中移除角色,可选择角色,然后单击移除。该角色将移动到可用角色列表。
注意:如果已将某角色删除或该角色不存在于当前的角色存储,则再次打开权限 对话框时,将不再显示该角色。
- 权限配置完成后,单击保存,可保存对应用程序的安全性所作的更改。单击取消可放弃对应用程序权限所作的更改。
- 只有当 ArcGIS Server 的用户为 Windows 用户时:在 Internet 信息服务 Web 服务器中至少选择一种身份验证方法。有关说明,请参阅下一部分。
- 如果 ArcGIS Server 的用户位于 SQL Server 或自定义提供程序中,或者是 Windows 用户且已在上一步中对其启用了“基本”身份验证,则需要通过 https (SSL) 来使用应用程序。这对于用户登录到应用程序时的密码传输保护至关重要。
启用应用程序的身份验证方法
只有当 ArcGIS Server 实例的用户为 Windows 用户时,此部分才适用。在这种情况下,用户的身份必须经 IIS Web 服务器验证。为使 IIS 能够对用户进行身份验证,必须至少为受保护的 Web 应用程序启用一种身份验证方法。
IIS 的安装程序可能已经默认启用了一种或多种身份验证方法。您应该检查以确保至少启用了一种身份验证方法。如果未启用任何身份验证方法,则系统将拒绝用户访问 Web 应用程序。
要在 IIS 5.1 或 IIS 6(分别对于 Windows XP 或 Server 2003)中为 Web 应用程序设置身份验证方法,请执行以下操作:
- 从开始 > 设置 > 控制面板 > 管理工具 > Internet 信息服务中打开 IIS 管理器。
- 在本地计算机的网站中导航到已在管理器中进行保护的网站(通常位于默认网站中)。
- 右键单击 Web 应用程序文件夹,然后单击属性。将打开应用程序的属性 对话框。
- 单击目录安全性选项卡。在匿名访问和身份验证控制下,单击编辑。将打开身份验证方法 对话框。
- 在用户访问需经过身份验证下,选中至少一个方法。有关身份验证方法的详细信息,请参阅下文。
要在 IIS 7(对于 Windows Vista、Windows 7 或 Windows Server 2008)中为 Web 应用程序设置身份验证方法,请执行以下操作:
- 从控制面板 > 管理工具 > Internet 信息服务管理器中打开 IIS 管理器。
- 展开已在管理器中进行保护的网站的站点节点(通常位于默认网站中),然后展开该站点以查看 Web 应用程序。
- 左键单击想要保护的 Web 应用程序可在 IIS 管理器的右侧显示该应用程序的属性链接。
- 双击 IIS 组下的身份验证项。将显示此应用程序的身份验证方法列表。
- 在该身份验证方法列表中,右键单击匿名身份验证,然后单击快捷菜单中的禁用。
- 启用至少一种其他身份验证方法。有关身份关验证方法的详细信息,请参阅下文。
有关身份验证方法的详细信息,请参阅此帮助中的选择身份验证方法。另请参阅 IIS 文档和其他资源,如 MSDN 页面 IIS 6.0 中支持的身份验证方法或身份验证功能要求 (IIS 7)。
web.config 中的身份验证和授权
ASP.NET 将 Web 应用程序的安全性信息存储在 web.config 文件中(用户和角色通常分开存储在 web.config 文件所指定的提供程序中)。管理器将使用此方法对 Web 应用程序进行授权(但不适用于 GIS Web 服务;请参阅保护与服务之间建立的 Internet 连接)。您可以查看此信息,但建议您不要对其进行更改,因为这可能会导致管理器无法再对应用程序的安全性进行管理。
Web 应用程序的权限规则以 ASP.NET 应用程序的标准授权格式进行存储。它们存储在标准 <authorization> 元素内的 web.config 文件中。
如果想手动或使用网站管理工具 (WSAT) 编辑 web.config 中的授权规则,应遵循以下原则:
- 仅可使用 <allow> 规则。除规则列表底部的“拒绝所有用户”规则外,管理器不使用任何 <deny> 规则。
- 仅可将角色添加到规则中。管理器不支持向规则中添加单个用户帐户。
- 仅可将单个角色添加到“允许”元素。例如,不应使用以下规则:
<allow users="Admins, Planning" />
可以改为创建两个等效的规则:<allow users="Admins" /> <allow users="Planning" />
- 不要移除或编辑 <deny users="all" /> 规则。此规则必须处于列表末尾。
- 规则的顺序并不重要,因为将仅使用“允许”规则。唯一例外的是“拒绝所有用户”规则必须出现在列表末尾。
如果不遵从上述原则,那么之后使用管理器编辑安全性时,web.config 中的访问规则会无法正常读取且可能会被覆盖。当然,如果您不打算使用管理器配置 Web 应用程序的安全性,则可以根据需要使用任何有效的 ASP.NET 授权配置。
使用网站管理工具
在管理器中创建的 Web 应用程序的安全性配置与 WSAT 兼容。WSAT 是一种 Microsoft 实用工具,可用于管理用户和角色,并为 Web 应用程序配置访问规则。您可以通过 Visual Studio 访问 WSAT。
WSAT 允许您在两种身份验证形式之间进行选择:Windows(从 Internet)和 Forms(从本地网络)。如果在管理器创建安全性配置之后在 WSAT 中对身份验证类型进行更改,便可能导致无法在管理器中编辑应用程序安全性。如果发生这种情况,则必须继续使用 WSAT 来管理安全性,或者直接对 web.config 文件进行编辑。
用户和角色的位置由身份验证类型和提供程序配置决定。您可以在 WSAT 中查看该配置,但建议您不要对其进行更改,因为这可能会导致管理器无法再对安全性进行管理。
关于编辑授权规则的原则,请参阅上面的“web.config 中的身份验证和授权”部分。