在 web.config 中配置 ArcGIS for Spatial Data Server for IIS 的安全性

如果经 Windows 验证的用户将经由 Intranet 访问您的 ArcGIS Spatial Data Server for IIS 服务,您可以通过配置位于 ArcGIS Spatial Data Server for IIS 安装目录的 REST 文件夹中的 web.config 文件来设置空间数据服务器的安全性。

为此,必须首先启用 IIS 角色服务并启用 Windows 身份验证或基本身份验证。然后,可以将包含 authorization 元素的 location 元素作为 configuration 元素的子元素添加到 web.config 中。

启用 IIS 角色服务

必须先启用 URL 授权 IIS 角色服务,以及 Windows 身份验证或基本身份验证 IIS 角色服务,才能够通过将 location 元素添加到 web.config 文件的方式来控制服务访问权限。

角色服务通过服务器管理器启用。您必须以 Windows 管理员组的成员身份登录到服务器才能在服务器管理器中更改设置。

步骤:
  1. 启动服务器管理器。

    开始 > 管理工具 > 服务器管理器 > 角色

    将打开服务器管理器 对话框。

  2. 滚动至 Web 服务器(IIS) 部分,然后单击添加角色服务
  3. 安全性下,选中 URL 授权
  4. 选中 Windows 身份验证,如果要使用 SSL 证书,则选中基本身份验证
  5. 单击下一步
  6. 检查设置并确认设置正确后,单击安装
  7. 单击关闭
  8. 关闭服务器管理器

启用 Windows 身份验证或基本身份验证

已通过上述步骤添加了基本身份验证或者 Windows 身份验证角色服务,接下来就可以在 IIS 管理器中启用该角色服务了。您必须以 Windows 管理员组的成员身份登录到服务器才能更改 IIS 管理器中的设置。

步骤:
  1. 启动 IIS 管理器。

    开始 > 管理工具 > Internet 信息服务

    将打开 Internet 信息服务(IIS)管理器

  2. 在管理器内连接到服务器。
  3. 在 IIS 的“功能视图”下,双击身份验证

    将打开身份验证 窗格。

  4. 身份验证 中选择 Windows 身份验证基本身份验证,然后在操作下单击启用

    如果要使用基本身份验证,请务必启用 SSL,以避免凭据以明文形式发送。

  5. 单击文件 > 退出关闭 IIS 管理器。

配置 web.config 文件中的 location 元素

您可以向 web.config 文件中添加 location 元素以控制对服务的访问。location 元素的格式如下:

<location path="path">
    <system.webServer>
      <security>
        <authorization>
          <remove users="" roles="" verbs="" />
          <add accessType="Allow" 
               users="allowedUsers" 	
               roles="allowedRoles" />
        </authorization>
      </security>
    </system.webServer>
  </location>

更改 location 元素的下列子元素的值:

添加 location 元素作为 configuration 元素的子元素。configuration 元素包含许多直接子元素,但是您可以在 configSections 元素之后以及与其同级别的任意位置添加 location 元素。

示例 1:管理员请求安全设置

下列 locatioin 元素的示例从 web.config 文件中移除默认的 IIS 授权设置,然后配置一个授权规则,该规则只允许 Windows 管理员组中的用户访问管理端中的内容。

<configuration>
  <location path="admin">
    <system.webServer>
      <security>
        <authorization>
          <remove users="*" roles="" verbs="" />
          <add accessType="Allow" 
               users="" 
               roles="Administrators" />
        </authorization>
      </security>
    </system.webServer>
  </location>
</configuration>

示例 2:允许特定用户和角色访问所有服务

在此 location 元素示例中,web.config 文件中的默认 IIS 授权设置被替换为这样一条规则,其允许 svcsusers 组和 svcmgr Windows 用户访问空间数据服务器上的所有服务:

<configuration>
  <location path="rest/services">
   <system.webServer>
      <security>
        <authorization>
          <remove users="*" roles="" verbs="" />
          <add accessType="Allow" 
               users="mydomain\svcmgr" 
               roles="svcsusers" />
        </authorization>
      </security>
    </system.webServer>
  </location>
</configuration>

示例 3:允许访问特定服务

要限制某个角色对特定服务的全部访问,请向应用于某个服务的 web.config 文件中添加 location 元素,并将权限授予指定角色。在此示例中,weather 服务只能由 meteorologists 角色的成员访问:

<configuration>
  <location path="rest/services/weather/FeatureServer">
    <system.webServer>
      <security>
        <authorization>
          <remove users="*" roles="" verbs="" />
          <add accessType="Allow" 
               roles="meteorologists" />
        </authorization>
      </security>
    </system.webServer>
  </location>
</configuration>

示例 4:允许多个角色访问特定服务

要允许多个角色访问某一特定服务,可向应用于某个服务的 web.config 文件中添加 location 元素并允许由多个角色访问。在此示例中,landuse 服务可由 planners、contractors 和 developers 角色的成员访问:

<configuration>
  <location path="rest/services/landuse/FeatureServer">
    <system.webServer>
      <security>
        <authorization>
          <remove users="*" roles="" verbs="" />
          <add accessType="Allow" 
               roles="planners,contractors,developers" />
        </authorization>
      </security>
    </system.webServer>
  </location>
</configuration>

9/15/2013