保护 Web 服务

对 Web 服务进行保护后,请求访问这些 Web 服务的客户端必须属于已获准访问该特定 Web 服务的角色。可使用 ArcGIS Server 管理器管理 ArcGIS Web 服务的权限。

设置文件夹的权限

要高效地管理多个 ArcGIS Web 服务的权限,可将 Web 服务组织到文件夹中,然后为文件夹指定权限。已获准访问文件夹的角色将自动获得此文件夹中包含的子文件夹和 Web 服务的访问权限。通过文件夹级别的权限能够方便地管理对包含在文件夹内的所有资源(文件夹和服务)的访问。

要在 ArcGIS Server 管理器中设置文件夹的权限,可导航到服务面板上的管理器服务页面,然后单击页面顶部服务位置标注旁边的下拉列表。单击相邻的编辑文件夹权限图标。这样会弹出一个对话框,其中会列出所有有权访问此文件夹的角色,以及所有可获准访问此文件夹的可用角色。单击保存以应用更改。

如果角色可访问某个文件夹,则此角色可访问此文件夹内的所有资源。此规则暗示如果显式地允许某个角色访问服务,并且稍后允许同一角色访问此服务的父文件夹,则由于隐含的允许规则,角色可访问此服务。

考虑一个已定义名称为 Analyst 的角色的受保护 ArcGIS Server 系统。下图描述此 ArcGIS Server 系统中的文件夹和服务的结构:

下表说明连续更改安全性配置对角色的访问权限的影响。

更改角色 Analyst 的安全性配置

角色 Analyst 的访问权限

1. 撤消角色对所有文件夹和服务的权限。

  • Service 1 - 禁止访问。
  • Folder 1 - 禁止访问。
  • Service 2 - 禁止访问。

2. 授予角色对 Service 2 的访问权限。

  • Service 1 - 禁止访问。
  • Folder 1 - 禁止访问。
  • Service 2 - 通过 Service 2 上设置的显式权限授予其访问权限。

3. 授予角色对根文件夹的访问权限。

  • Service 1 - 通过由根文件夹继承的权限授予其访问权限。
  • Folder 1 - 通过由根文件夹继承的权限授予其访问权限。
  • Service 2 - 通过由根文件夹继承的权限授予其访问权限。

4. 撤消对根文件夹的访问权限。此操作将移除在根文件夹中包含的文件夹和服务上设置的所有现有权限。

  • Service 1 - 禁止访问。
  • Folder 1 - 禁止访问。
  • Service 2 - 禁止访问。

注意注意:
如果已为 GIS 服务选择 Java 企业版管理的身份验证,则需要在安全性 > 设置页面的 GIS 服务的安全性选项卡上单击保存。这样会使用更新的权限重新部署服务处理程序。

设置服务的权限

服务的权限遵循连续继承模式。除非设置服务的显式权限,否则服务自创建起会一直从其父文件夹继承权限。管理员可显式设置服务的不同权限,在这种情况下服务会中断继承。

可通过管理器中的服务面板设置服务的权限,选择页面上列出的特定服务,然后单击服务权限图标。这样会弹出一个对话框,其中会列出所有当前有权访问此服务的角色,以及所有可获准访问此服务的可用角色。单击保存即可将更改应用到系统。

注意注意:
如果已为 GIS 服务选择 Java 企业版管理的身份验证,则需要在安全性 > 设置页面的 GIS 服务的安全性选项卡上单击保存。这样会使用更新的权限重新部署服务处理程序。

继承和覆盖权限

文件夹的权限由文件夹内的服务继承。例如,如果允许某个角色访问文件夹,则此角色也可访问该文件夹内的所有服务。每个 Web 服务的权限对话框将显示允许的角色以及已添加的其他角色(如果有)。文件夹还会继承其父文件夹中的权限。

可以将服务从文件夹中继承的角色移除。要执行此操作,打开服务的权限对话框,选择角色,然后单击左箭头按钮。这样,将禁止该角色访问服务。由于可能将多个角色分配给一个用户,因此必须谨慎地管理基于角色的访问。

如果编辑了文件夹的权限,则对角色权限所做的任何更改都将重新应用于文件夹内的所有服务。这样将覆盖对各个服务的这些角色所做的全部更改。如果从文件夹的允许列表中移除某个角色,将不再允许该角色访问文件夹内的任何服务。同样,如果向文件夹的权限列表添加一个角色,将允许该角色访问文件夹内的所有服务。

覆盖子文件夹和服务中的权限

设置文件夹的权限时,单击保存可能会显示以下消息:

“您正在为其更改权限的一个或多个角色已在此文件夹内的一个或多个服务或文件夹中具有权限设置。如果继续,将继承子服务或文件夹中这些角色的权限设置。是否要保存这些更改?”

此消息意味着您要添加或移除的角色已具有文件夹内(如果编辑根文件夹的权限,则在某个子文件夹内)一个或多个服务的显式权限。如果继续,将会移除子文件夹和服务内该角色的所有规则,而子文件夹和服务将继承文件夹中该角色的权限。

对于根文件夹的权限更改,消息会警告将有大的改动。假设您将某个角色的权限添加到子文件夹中,但移除该角色对文件夹内某服务的访问权限。稍后,将该角色的权限添加到根文件夹中。此时会收到一条警告消息,因为如果继续操作,将允许该角色访问子文件夹内的服务,但之前这是不允许访问的。

如果在编辑根文件夹的权限时收到此警告消息,并且不确定更改将如何影响对服务的访问权限,应取消警告消息,然后检查子文件夹和服务的权限。然后可能需要通过对子文件夹和服务重新应用规则来继续执行权限更改,以获得所需的安全性配置。

如果在编辑权限时已添加或移除了多个角色,则该消息可能意味着多个角色受到了影响。最好检查子文件夹和服务中的权限,以确保不会覆盖想要的权限。


3/7/2012