保护与服务之间建立的 Internet 连接
创建服务时将自动启用 Web 访问。这意味着其他人与您的服务器建立 ArcGIS Server Internet 连接后便可使用此服务。可选择完全关闭 Web 访问或限制对所选用户组的访问。还可以限制通过 Web 服务可执行的操作类型。此主题包括以下内容:
agsadmin 和 agsusers 组不适用于 Internet 连接;它们用于保护本地连接。本地和 Internet 连接的安全性都应作为整个安全策略的一部分。有关详细信息,请参阅保护与服务之间建立的本地连接。
关闭 Web 访问
如果不想让 Internet 客户端访问服务,则需要显式禁用 Web 访问。
在管理器中关闭 Web 访问
要在管理器中禁用对服务的 Web 访问,请执行以下步骤。执行下述步骤时必须停止服务。
- 在管理器中单击服务选项卡。
- 在服务列表中,找到要禁用 Web 访问的服务然后单击其编辑链接。
- 单击功能选项卡。
- 取消选中启用 Web 访问。
- 单击保存并重新启动。
在 ArcCatalog 中关闭 Web 访问
要在 ArcCatalog 中禁用对服务的 Web 访问,请执行以下步骤。执行下述步骤时必须停止服务。
- 与服务器建立管理连接。有关说明,请参阅在 ArcCatalog 中与 ArcGIS Server 建立管理连接。
- 找到要禁用 Web 访问的服务。
- 如果服务已启动,则右键单击此服务然后单击停止。
- 右键单击此服务然后单击禁用 Web 访问。
- 右键单击此服务然后单击启动。
对于地图服务,上述步骤仅禁用对制图功能的 Web 访问。在服务属性 对话框的功能选项卡中可禁用对其他功能的 Web 访问。
要求通过 HTTPS 访问文件夹和服务
可以要求连接到 ArcGIS Server 服务的客户端使用 HTTPS 进行连接。HTTPS 将对客户端与服务器之间所有的通信进行加密,因此即使某人在传输过程中截获了通信,也会因数据已加密而无法阅读。如果想限制某些用户对服务的访问权限,请参阅以下章节“限制对服务具有访问权限的用户”。
在文件夹级别而不是各服务级别设置 HTTPS 要求。如果仅需要通过 HTTPS 访问单个服务而不是整个服务器或文件夹,请创建一个新文件夹并将服务添加到此新文件夹中。
请注意,必须在 Web 服务器上安装 SSL 证书,客户端方可使用 HTTPS 来请求资源。有关详细信息,请参阅设置 SSL。
要使用管理器要求通过 HTTPS 访问文件夹,请执行以下步骤:
- 登录 ArcGIS Server 管理器然后单击服务。
- 在服务器文件夹(标有服务位置:)的下拉框中选择要求通过 HTTPS 访问的文件夹。若要求通过 HTTPS 访问整个服务器,请选择服务器(根)。
- 单击管理文件夹,然后在下拉列表中单击属性。
- 在打开的文件夹属性 对话框中,选中需要加密的 Web 访问并单击确定。
也可以使用 ArcCatalog 要求通过 HTTPS 访问文件夹:
- 启动 ArcCatalog,展开 GIS 服务器,然后双击管理服务器连接。如有必要,按以下步骤添加管理连接:双击添加 ArcGIS Server,单击管理 GIS 服务,然后输入服务器名称和 URL(例如,http://myserver.example.com/arcgis/services)。
- 如有必要,展开服务器连接以查找要求通过 HTTPS 访问的文件夹。
- 右键单击文件夹然后选择属性(若要求通过 SSL 访问所有服务,可右键单击服务器然后单击根文件夹属性)。
- 在文件夹属性 对话框中,选中需要加密的 Web 访问并单击确定。
请注意,要求通过 HTTPS 访问文件夹后,所有客户端应用程序都必须使用带有 https:// 的 URL 才能使用此文件夹中的服务。如果用户使用 ArcCatalog 与服务器连接且在 URL 中不使用 https,则即使允许用户访问,此文件夹仍无法显示。
限制对服务具有访问权限的用户
可使用 ArcGIS Server 管理器来限制哪些用户可通过 Internet 连接对服务进行访问。要执行此操作,需定义一组用户和角色并指定有权访问特定 Internet 服务的角色。请阅读主题有关设置用户和角色的概述了解如何创建用户和角色。配置服务安全性之前,至少需要添加一个用户和一个具有用户的角色。在分配的权限实际生效之前,还必须执行启用服务安全性的附加步骤。
实现 GIS 服务安全性的步骤如下:
- 设置存储用户和角色的位置并添加用户和角色。请参阅有关设置用户和角色的概述。
- 向文件夹和/或服务添加权限。请参阅下面的设置服务或文件夹的权限。
- 启用服务的安全性。请参阅启用服务的安全性。完成此步骤之前,对 Web 访问服务没有强加任何限制。
可以设置文件夹和服务的权限。文件夹中的服务继承文件夹的权限设置。如果在根级别设置权限,则所有服务都继承这些权限。通过移除服务或文件夹中继承的角色可覆盖继承的权限。
完成上述步骤 3 启用服务安全性之前,任何人都能与已启用 Web 访问权限的服务连接。了解以下内容也非常重要:启用安全性之后,任何用户都不能访问服务,除非 (1) 您将角色的权限添加到服务或文件夹中以及 (2) 用户使用服务允许的角色中的帐户登录。因此,应该在启用安全性之前设置服务权限。根据用户帐户的存储位置,“匿名”角色可能会允许任何人访问服务或文件夹。
设置安全性的一种方法是为服务器的根指定宽泛的权限,然后限制文件夹和服务的权限。另一种方式是保留对根的权限限制,然后允许指定角色访问特定的文件夹或服务。
如果用户是多个角色的成员且所有这些角色都可以访问服务,则用户也可访问服务。管理器无法显式拒绝对角色或用户的访问。因此应该谨慎设计角色以使角色与对服务和文件夹的授权访问相匹配。
设置服务或文件夹的权限
要设置用户对服务或文件夹的访问权限,请执行以下步骤:
- 在管理器中,单击服务选项卡查看服务器中的服务列表。如果要设置文件夹或文件夹内部服务的权限,可使用服务位置列表更改文件夹的视图。
- 打开服务或文件夹的权限 对话框:
- 对于文件夹权限,单击管理文件夹然后在打开的列表中单击权限。
- 对于服务权限,单击服务的权限(锁)图标。
- 将打开权限 对话框。左侧的列表显示了可用的角色,右侧的框中列出了当前允许访问的角色。
- 要允许角色访问文件夹中的服务,可单击可用角色列表中的角色然后单击添加按钮将其移动到允许的角色列表中。
要移除某个角色的访问权限,可在允许的角色列表中单击选择此角色,然后单击移除。角色即被移动到可用角色列表中。
注意:如果角色已被删除或在当前角色存储中不存在,则重新打开“权限”对话框时将不显示此角色。
- 配置权限完成后,单击保存保存更改并将其应用到服务中。单击取消放弃对服务所做的所有更改。
如果已将“任何人”、“经验证的用户”和“匿名”角色添加到用户存储中,则可将其中的任何角色添加到服务或文件夹中;如果已从父文件夹中继承了这些角色,还可将其移除。如果允许“任何人”角色,则不管是否提供登录信息,任何人都可以访问服务(或文件夹中的服务)。如果允许“任何人”,则不必再将其他角色添加到允许角色列表中。允许“经验证的用户”意味着允许访问用户存储中的所有用户。有关这些特殊角色的详细信息,请参阅角色提供程序(SQL Server 或自定义提供程序)的“设置用户和角色”主题。如果角色为 Windows 组,则这些角色不可用,因为组成员资格必须由操作系统决定。
如果在权限 对话框中显示以下消息,则表明尚未启用服务的安全性:
“警告:尚未启用 GIS 服务的安全性。请参见‘安全性设置’以启用服务的安全性。”
只有启用安全性后才可真正实施您所设置的权限。请参阅启用服务的安全性来了解如何启用安全性。
服务的权限规则由 ArcGIS Server 内部存储。规则不存储在 ArcGIS/Services Web 应用程序中。在 <ArcGIS 安装位置>\server\user\cfg 文件夹中权限被存储为 .sec 文件。设置文件夹权限后,文件夹包含 Folder.sec 文件。设置服务权限后,文件夹包含与服务的 .cfg 文件名称相匹配但扩展名为 .sec 的文件。如果尚未设置文件夹或服务权限,则此文件夹或服务将不包含 .sec 文件。有关 .sec 文件格式的信息,请参阅安全性配置文件。
不应在 ArcGIS/Services Web 应用程序中手动设置访问规则。在许多 ASP.NET Web 应用程序中,通过将授权规则添加到 web.config 文件来控制对 Web 应用程序的访问。现在 ArcGIS Server 将权限规则内部存储而不是存储在 web.config 文件中。如果将“服务”应用程序的规则添加到 web.config 文件中,将导致管理器中安全性设置失败。
有关权限如何实现其功能的延伸阅读,请参阅以下主题:
启用服务的安全性
启用安全性后,才可在与服务的 Internet 连接中实施您设置的权限规则。启用安全性之前,即使已设置权限规则,所有服务仍对所有用户都开放。
启用服务安全性之前,应该设置要应用于服务中的权限规则。如果在分配服务的权限规则之前启用安全性,则与任何服务都无法建立 Internet 连接。
启用安全性以后,无法在管理器中禁用安全性。这是为了防止对服务安全性做出无意地更改。有关详细信息,请参阅下文。
这些步骤仅适用于 GIS 服务的安全性。Web 应用程序的安全性单独应用于每个应用程序中。有关详细信息,请参阅保护 Web 应用程序。
要启用服务安全性,请执行以下步骤:
- 根据需要为 GIS 服务设置权限规则。有关详细信息,请参阅前一部分“设置服务或文件夹的权限”。根据需要,可以使用“任何人”角色以便所有用户访问一个或多个服务。
- 在管理器中,单击安全性 > 设置。在 GIS 服务的安全性 中,单击启用按钮。将显示一个对话框,其中包含有关设置服务安全性的信息。请阅读此信息以确保理解启用安全性的含义。如果确定已准备好启用安全性,可单击启用服务的安全性按钮。否则,单击取消。
- 如果选择将用户存储为 Windows 用户,必须禁用对“服务”应用程序的匿名访问。有关禁用匿名访问的说明,请参阅在 Internet 信息服务 中禁用对 ArcGIS Web 服务的匿名访问。
- 测试服务以确保所允许角色中的用户可以访问服务。如有必要,按照设置服务或文件夹的权限中所述调整权限。
禁用服务的安全性
启用 GIS 服务的安全性之后,无法使用管理器中禁用安全性。这用来防止意外禁用安全性和暴露对服务的访问。如果后来决定必须禁用安全性,可以执行以下步骤。
如果执行这些步骤,则所有用户均可使用 Internet 连接来连接到任意 GIS 服务,无需提供任何登录信息。
- 单击控制面板 > 管理工具 > 服务,打开服务 管理控制台。
- 右键单击 ArcGIS Server 对象管理器服务,然后单击停止。警告:
如果停止 ArcGIS Server 之前进行如下更改,ArcGIS Server 停止后您的更改将被覆盖。
- 使用文本编辑器(例如“记事本”)或 XML 编辑器打开服务器对象管理器 (SOM) 计算机上的 Server.dat 文件。此文件位于 ArcGIS Server 安装中的以下位置:<ArcGIS 安装位置>\server\system。
- 更改以下位于 <Server> 元素内部的元素,从
<SecurityEnabled>true</SecurityEnabled>
改为<SecurityEnabled>false</SecurityEnabled>
然后保存文件。 - 使用文本或 XML 编辑器打开位于 C:\Inetpub\wwwroot\ArcGIS\Services(如果将 ArcGIS Web 服务安装到其他位置,请调整此路径)中的 web.config 文件。
- 在 <appSettings> 部分内部找到以下行:
<add key="RequireToken" value="True" />
并将其更改为<add key="RequireToken" value="False" />
然后保存此文件。 - 对 Rest 文件夹中的 web.config 文件以及 C:\Inetpub\wwwroot\ArcGIS 目录下的 Tokens 文件夹重复执行上述两步。
- 如果为 Windows 用户配置安全性,则在 IIS 中重新启用对 ArcGIS Server Web 实例中的 Services 和 Rest 文件夹的匿名访问。参考标题为在 Internet 信息服务 中禁用对 ArcGIS Web 服务的匿名访问的部分中的说明(除了说明中的步骤 3),选择启用匿名访问。对 Services 和 Rest 目录执行同样的操作。
- 返回服务 管理控制台,右键单击 ArcGIS Server 对象管理器服务然后单击启动。
- 右键单击万维网发布服务然后单击重新启动。
要重新启动安全性,请遵循启用服务的安全性中的步骤。
限制用户可对服务执行的操作
为了便于控制 Web 服务的使用方式,每种类型的服务都具有一组允许的操作,可决定用户能够调用哪些方法。如果希望用户充分利用服务,可允许所有操作;如果要阻止用户进行某些操作(比如查询地图中的数据或从地理数据库中提取数据),可禁用某些操作。
在服务属性 对话框的功能选项卡上可设置允许的操作。有关每个操作中所包含方法的其他文档,请参阅调整和配置服务。