演练:以 Windows 用户和角色实现安全性
本演练将介绍如何实现 Web 应用程序和 GIS 服务的安全性。在本演练中,用户作为 Windows 操作系统帐户存储在本地 Web 服务器计算机中或存储在 Web 服务器所属的域中。用户角色被定义为本地服务器或域中的组。Windows 用户和组只是多种用户和角色选项中的一种。此选项通常在服务器用户位于本地网络中(而不是通过 Internet 连接)时使用。如果希望 GIS 用户可以充分利用他们在网络中的已有帐户,这不失为一种方便的方法。
在本演练中,将根据需要向系统添加用户和组、在管理器中配置用户和角色位置、为 Web 应用程序和 GIS Web 服务设置权限并启用 GIS Web 服务的安全性。
在本演练的结尾部分,您将启用 GIS Web 服务的安全性。启用了服务安全性之后,只有那些您已经授权的用户(根据他们的 Windows 组成员资格)才能访问您系统中的所有服务。从这时开始,您将需要管理所有服务的权限。您不应该启用服务安全性,除非您想将所有服务的适用对象限制为经授权的用户并且准备继续对权限进行管理。
以下是本演练的步骤:
- 使用操作系统工具添加用户和组。
- 在管理器中配置用户和角色位置。
- 查看用户和角色。
- 保护 Web 应用程序。
- 为 GIS Web 服务设置权限。
- 禁用对 GIS Web 服务的匿名访问。
- 对 GIS Web 服务应用安全性。
使用操作系统工具添加用户和组
要根据 Windows 用户和组分配权限,您可能需要将用户和组添加到您的系统。以下说明提供了基本的步骤。要了解详细信息,请参阅 Windows 文档。
如果已经在您的 Web 服务器或域中定义了用户和组并想使用这些用户和组为应用程序和服务分配权限,可跳过此部分。
-
要将用户和组添加到本地 Web 服务器,转到开始 > 控制面板 > 管理工具 > 计算机管理(或者,右键单击桌面上的我的电脑图标并单击管理)。展开计算机管理控制台中的系统工具和本地用户和组。单击用户文件夹查看用户列表。
- 如果在 Windows Vista 或 Server 2008 中,则转到开始 > 控制面板 > 管理工具 > 服务器管理器。在“服务器管理器”中,依次展开配置和本地用户和组。单击用户文件夹查看用户列表。
-
右键单击用户文件夹,然后选择新建用户。
- 输入用户名,例如 walkthrough1。输入一个密码并确认该密码(例如,walkthrough1)。可以取消选中“用户下次登录时须更改密码”这一选项。根据需要设置其他选项,然后单击创建。
- 至少再添加另一个用户,例如 walkthrough2。关闭新建用户 对话框。
- 右键单击计算机管理(或服务器管理器)树中的组文件夹,然后选择新建组。
-
输入组名称,例如 WTGroup1。还可以添加一个描述。将成员添加到组中:
- 在成员区域下,单击添加。
- 在选择用户、计算机或组 对话框中,单击位置按钮,然后在弹出对话框中选择本地计算机的名称并单击确定。
- 在选择用户、计算机或组 对话框的输入要选择的对象名称框下输入上述步骤中所添加的第一个用户的名称 (walkthrough1)。
- 单击检查名称验证用户是否存在(必要时,单击高级按钮和立即查找列出所有用户;可从此列表中选择用户)。
- 单击确定关闭选择用户、计算机或组 对话框并返回到添加组 对话框。现在,新建组 对话框中将列出所选用户。
- 单击创建创建新组。
- 创建另一个组(例如 WTGroup2),同时添加上述步骤中所创建的第二个用户 (walkthrough2)。关闭新建组 对话框。也可以关闭计算机管理 控制台。
在管理器中配置用户和角色位置
要分配 Web 应用程序和服务的权限,必须首先告诉 ArcGIS Server 您的用户和角色存储在什么位置。在本演练中,用户是 Web 服务器或域中的操作系统帐户,角色是 Web 服务器或域中的 Windows 组。
- 启动 ArcGIS Server 管理器并登录。
- 在管理器中,展开安全性面板并单击设置。
-
单击配置按钮(执行此操作,即使位置已经表明是 Windows 用户和组;向导将执行其他的必要配置步骤)。
-
在用于选择用户存储位置的面板中,选择 Windows 用户。单击下一步。
- 在用于选择角色存储位置的面板中,单击 Windows 组。单击完成。向导将关闭并且位置框将读取 Windows 用户和组。
请注意,应将服务的安全性设置为未启用。此时不要启用安全性。您将在本演练的最后一步中启用安全性。启用安全性是最后一步,因为首先需要设置 Web 服务的权限。启用安全性之后,只有那些其角色已经过允许的用户才能访问 GIS Web 服务。
查看用户和角色
如果用户和角色是 Windows 用户和组,则可以在管理器中查看他们。要添加、编辑或删除用户或组,必须使用 Windows 操作系统工具,如本演练的第一部分中所述。
-
在管理器中,单击左侧的安全性选项卡,然后单击用户。本地 Web 服务器中的“用户”面板将显示一个用户列表。
- 如果无法在一个面板中显示出所有的用户,可单击双右箭头 (>>) 显示其他的用户。还可以在面板顶部附近的显示框中输入部分或整个用户名并单击查找来过滤用户列表。
- 要查看某个用户的组成员资格,可单击用户名旁边的加号 (+)。列表中将显示此用户是本地系统中哪些组的成员。
- 如果计算机是某个域的成员,可通过单击显示用户的域按钮在域中查看用户。随后可以查看这些用户的域组成员资格(此列表不会显示本地系统组中的成员资格)。
-
通过单击管理器安全性选项卡中的角色来查看角色。在这种情况下,列表将显示本地 Web 服务器中的 Windows 组。如果计算机是域的成员,可单击域查看域中的组。可以像使用用户 对话框那样在组列表的各页之间翻页或对组进行过滤/搜索。
- 单击组旁边的加号可查看是组成员的用户。
保护 Web 应用程序
现在,将通过限制指定角色(在本例中,为 Windows 组)的访问权限来保护 Web 应用程序。本演练的最后几部分将完成此目标。
- 在管理器中创建新的 Web 应用程序。应用程序可以是简单的、只提供地图服务并且没有额外的工具或任务的应用程序。如果需要创建应用程序,可遵照创建 Web 应用程序教程中的说明进行。如果创建应用程序时已经在 Web 服务器上安装了 SSL 证书,您可能希望将应用程序设置为使用 HTTPS(在应用程序向导中,使用第一个面板上的高级选项)。您可以使用一个现有的应用程序,但是此应用程序的所有用户都需要以本演练过程中所允许的角色用户身份登录。
-
在管理器中,单击应用程序列出 Web 应用程序。在列表中找到要保护的应用程序。在权限列中,留意未锁定的图标 。这表明使用此应用程序不受限制,因而用户无需登录即可使用此应用程序。
-
单击权限图标 ,这将显示 Web 应用程序的权限 对话框。
- 选中启用此 Web 应用程序的安全性复选框。这将启用可用角色列表和允许角色列表。
- 如果想根据域组来允许角色,可单击显示其中角色下面的域选项。或者,单击本地服务器查看本地计算机上的组。可将域和本地组作为允许角色添加。
- 高亮显示可用角色列表中的 WTGroup1 角色(或上述步骤中所添加的其他角色)。单击添加按钮将此角色添加到允许的角色列表中。或者,将其他的角色添加到允许列表中。
-
单击保存保存权限并返回到应用程序列表。请注意,此时的权限图标将变为锁定的图标 ,这表示现在需要登录才能访问此应用程序。
-
使用 IIS 管理器设置应用程序的身份验证方法:
- 通过转到开始 > 设置 > 控制面板 > 管理工具 > Internet 信息服务管理器打开 IIS 管理器。
- 展开 IIS 管理器左边的网站或站点下的树状结构。展开默认网站找到刚刚设置了保护的 Web 应用程序。
- 在 Windows XP 或 Server 2003 中: (1) 右键单击 Web 应用程序,然后在快捷菜单中单击属性。将打开应用程序的属性 对话框。(2) 在属性 对话框中,单击目录安全性选项卡。在此面板的匿名访问和身份验证控制下,单击编辑。将打开身份验证方法 对话框。(3) 取消选中匿名访问复选框。然后,在用户访问需经过身份验证下,选中至少一个方法。为了体现本演练的演示目的,您可以选择基本身份验证(如果出现一条警告消息,请单击是)。有关身份验证方法的详细信息,请参阅安全性概述页面。(4) 单击确定关闭身份验证方法 对话框并返回到应用程序的属性 对话框。在 Windows Vista 或 Server 2008 中:(1) 单击树中的应用程序。在 IIS 管理器的右侧,双击身份验证。(2) 单击匿名身份验证项目选中此项目,然后单击 IIS 管理器右侧的操作列表中的禁用。然后启用至少一个其他的身份验证方法。有关身份验证方法的详细信息,请参阅安全性概述页面。
- 如果已经在 Web 服务器上安装了 SSL 证书,在使用应用程序时可能需要 HTTPS。这将在身份验证方法被设置为“基本”时保护登录过程。在 Windows XP 或 Server 2003 中:在应用程序的“属性”对话框中,单击目录安全性选项卡。在此选项卡面板的安全通信区域中,单击编辑按钮(如果此按钮不可用,则说明尚未安装 SSL 证书)。在安全通信 对话框中,单击要求安全通道 (SSL)。单击确定保存设置。单击确定关闭属性 对话框。在 Windows Vista 或 Server 2008 中:在 IIS 管理器中,单击左侧树中的应用程序以将其选中。在 IIS 管理器的右侧,双击 SSL 设置。在打开的 SSL 设置 面板中,选中要求 SSL 复选框。
- 关闭 IIS 管理器控制台。
- 通过单击应用程序在 Web 应用程序列表中的 URL 超链接来测试应用程序。应用程序将在新的浏览器窗口中打开,并会弹出一条提示您登录的消息。输入您已允许的角色成员中用户(例如上述步骤中所添加的用户 walkthrough1)的用户名和密码,然后单击确定。登录成功后,应用程序将前进到 ArcGIS Server Web 应用程序页面。在完成对应用程序的查看后,关闭应用程序。
为 GIS Web 服务设置权限
除了保护 Web 应用程序之外,您还可以使用管理器来限制对 GIS Web 服务的访问。本部分将介绍如何设置服务权限。只有您完成以下有关应用服务安全性的部分时,才会真正实施这些权限。此操作流程用于配置服务权限并应用安全性,从而使用户可以在整个安全过程中继续访问服务。
本演练的目的是对安全性进行配置,以允许用户组中的任何用户(通常包括本地服务器上的所有用户帐户)访问服务器上的服务。随后还会配置一个文件夹,以允许更有限的角色集访问此文件夹中的服务。此方法可适用于安全服务和开放服务相结合的站点。您的组织可能希望使用与下述方法不同的方法。
请注意,如果服务的用户和角色是 Windows 用户和组,则不能通过匿名的方式访问服务(即用户不提供登录凭证)。也就是说,服务的所有用户都需要有 Windows 帐户并在提示时输入用户名和密码。
- 在管理器中,确保服务器的根文件夹中至少有一个服务。如果没有任何服务,请添加一个服务。可参阅教程发布地图服务创建服务。
-
通过单击管理文件夹将一个文件夹添加到服务器的服务中。在出现的下拉列表中,单击添加。在添加文件夹 文本框中,输入一个文件夹名称,例如 SecurityWalkthrough。单击确定添加此文件夹。
- 将一个服务添加到此新文件夹中。使用发布 GIS 资源 添加服务,同时确保指定新文件夹 (SecurityWalkthrough) 的位置。(也可以使用添加新服务 向导,但请确保服务位置列表中显示 SecureServices 文件夹。还可以使用 ArcCatalog 来添加服务。)可根据需要在本演练结束之后删除服务和文件夹。
- 将根文件夹的权限设置为允许用户组中的所有人访问服务。当您希望默认情况下允许所有用户访问服务但某些服务或文件夹需要有效登录时,此方法非常合适。要设置此权限,请确保服务位置框中显示的是服务器名称(根),这里的服务器名称是服务器的计算机名称(必要时,单击下拉列表选择此项目)。然后单击管理文件夹,并从下拉列表中选择权限。弹出的“权限”对话框中将显示文件夹名称(根)。
-
在权限 对话框中,选择“用户”角色(组)并单击添加。“用户”角色将移动到允许的角色列表中。“用户”角色通常会涵盖所有使用本地服务器帐户的用户。另外,如果您希望添加 Windows 域用户,则可以通过单击列表顶部的域选项来添加这些用户(“域用户”组通常包括域中的所有用户)。请注意关于服务安全性尚未启用的警告消息;您将在下一部分中启用安全性。单击保存保存权限列表。
- 限制对之前创建的文件夹的访问权限。在服务位置列表中选择相应的文件夹 (SecurityWalkthrough)。然后依次单击管理文件夹和权限。
- 在权限 对话框中,单击允许的角色列表中的“用户”角色并单击移除。角色将被移动到可用角色列表中。如果已经添加了其他角色(例如,域用户),请将它们移除。接下来,从本地服务器或域中单击一个要添加的特定角色,例如 WTGroup1。可根据需要将多个角色添加为允许的角色。单击保存保存权限列表。
现在已经为服务配置了权限。然而,安全性尚未实施。也就是说,此时任何用户都可以在不登录的情况下访问 SecureServices 文件夹中的服务。下一部分将启用安全性,这将强制执行已配置访问权限。
禁用对 GIS Web 服务的匿名访问
您希望 GIS Web 服务的用户通过提供 Windows 登录信息来访问服务。只有当客户端应用程序收到来自 Web 服务器的身份验证质询时,客户端应用程序才会提示您提供登录信息。本演练的这部分将对 IIS Web 服务器进行配置以获取用户的登录信息。
除非您想要求 GIS Web 服务的所有用户在您的本地服务器中或在域中拥有 Windows 帐户,否则不应执行这部分。
- 通过控制面板 > 管理工具 > Internet 信息服务打开 IIS 管理器。
- 在本地计算机的网站中导航到包含 ArcGIS 实例的网站(通常在默认网站中)。找到实例文件夹(默认情况下名为 ArcGIS),并将其展开。
-
禁用匿名访问的方法取决于所用系统。
- 在 Windows Server 2003 或 XP 中:
- 右键单击服务 Web 应用程序,然后单击属性。
- 单击目录安全性选项卡。在匿名访问和身份验证控制下,单击编辑。
- 取消选中匿名访问。在用户访问需经过身份验证下,选中至少一个方法。有关身份验证方法的详细信息,请参阅下文。然后单击确定两次,返回到 IIS 管理器控制台。
- 在 Windows Server 2008 或 Vista 中:
- 左键单击服务应用程序以在 IIS 管理器的右侧显示该应用程序的属性链接。
- 双击 IIS 组下的身份验证项。将显示此应用程序的身份验证方法列表。
- 在该身份验证方法列表中,右键单击匿名身份验证,然后单击快捷菜单中的禁用。
- 启用至少一种其他身份验证方法。有关身份关验证方法的详细信息,请参阅下文。
- 在 Windows Server 2003 或 XP 中:
- 重复执行上述步骤中的 3 到 5,但在 ArcGIS 文件夹中设置 Rest Web 应用程序的属性。
有关身份验证方法的详细信息,请参阅 IIS 文档和其他资源,如 MSDN 页面 IIS 6.0 中支持的身份验证方法。
对 GIS Web 服务应用安全性
保护 GIS Web 服务的最后一步是对服务应用安全性。此步骤将对 GIS Web 服务进行限制,以便只有那些其角色已经过允许的用户才能访问此类服务。在执行此步骤之前,已经应用的所有权限实际上并未生效并且任何用户都可以访问任何服务。您不应该在未配置以上部分中所介绍的权限之前执行这些步骤。
启用了服务安全性之后,不能在管理器中禁用此功能(必要时,请参阅有关手动禁用安全性的信息中的与保护服务有关的“服务器帮助”页面)。服务安全性应该是一个单向的过程。如果尚未做好启用 GIS Web 服务安全性的准备,可以跳过本演练的这部分。
- 在管理器中,单击安全性选项卡,然后单击安全性 部分中的设置。此时将显示安全性的设置面板。
-
在安全性设置 面板中,读取 GIS 服务的安全性下的信息。请注意,安装 ArcGIS Server 时,安全性会被设置为未启用。
- 单击启用。将显示一条消息,提醒您在启用服务安全性之前设置权限。单击启用服务的安全性按钮进行确认。返回到安全性设置 面板,现在指示器将显示安全性已启用。
-
单击管理器左侧的服务选项卡。在服务列表中,权限图标现在显示为锁定图标 。如果看到一个带有红色惊叹号的图标,它表示服务有一个空的权限列表。所有用户都无法访问这些服务,直到将至少一个角色添加到每个服务的允许的角色列表中为止。
- 要验证服务的安全性是否生效,可使用 ArcCatalog 连接到您的服务。在本地计算机或可以访问 ArcGIS Server 的 Web 服务器的计算机上启动 ArcCatalog。
- 在 ArcCatalog 中,展开目录树中的 GIS 服务器结点。双击添加 ArcGIS Server 项。
- 单击使用 GIS 服务。单击下一步。
-
在下一个面板中,单击 Internet 作为连接类型,然后输入您服务器的 URL,例如 http://myserver/arcgis/services。在此对话框的身份验证部分中,输入用户组中但不是 WTGroup1 中某个帐户的用户名和密码,例如 MYSERVER\walkthrough2(或者,如果已经使用不同的用户和角色配置了安全性,则使用对受保护的文件夹 SecurityWalkthrough 不具有访问权限的帐户)。单击完成。此时该对话框将关闭,并在 GIS 服务器列表中出现一个新的连接(例如 arcgis on myserver)。
- 展开此新连接的结点。在服务器的根目录下查看服务。然而,在先前的连接中保护的文件夹 (SecurityWalkthrough) 此时不可见。由于您已允许用户角色访问根文件夹,因此根文件夹中以及未覆盖根文件夹设置的任何文件夹中的服务对所有用户都是可见的。由于没有使用正确的登录帐户进行连接,因此 SecureServices 文件夹对此连接不可用。
- 通过执行上述步骤中的 6 到 8 在 ArcCatalog 中添加另一个 GIS 服务器连接。输入相同的服务器 URL,但对于步骤 8,在输入用户名和密码时,请使用上述步骤中为特定用户(例如 walkthrough1)创建的登录信息,该特定用户属于能够访问 SecurityWalkthrough 文件夹的角色中的用户。单击完成添加此连接。
- 展开此连接(例如 arcgis on myserver [2])。现在您将看到 SecurityWalkthrough 文件夹以及允许用户访问的所有服务和文件夹。
- 完成后,关闭 ArcCatalog 和管理器。
上述步骤已经基于 Windows 用户和组为 Web 应用程序和 GIS Web 服务设置了安全机制。要了解如何配置安全性的更多详细信息,请参阅 ArcGIS Server 帮助的此部分中有关于安全性的其他页面。
可以在各种不同的客户端(包括 ArcGIS Desktop、Web ADF 应用程序和 JavaScript API 应用程序)中使用受保护的服务。要将一个受保护的服务添加到 Web ADF 应用程序,可添加一个新的 ArcGIS Server Internet 连接,并在管理器或 Visual Studio 连接对话框的“标识”文本框中输入相应的用户名和密码。
必要时,移除本演练过程中所创建的所有服务、文件夹、用户或角色。请记住,一旦启用了服务的安全性,就必须管理所有文件夹和服务的权限。如果添加了一个服务但未添加任何允许的角色,所有的用户都将无法访问此服务(将显示一个用于提醒此问题的警告图标