常见问题
注: 本文适用于 ArcGIS 9.x 至 10.2 版本。 默认情况下,受支持的较新版本 ArcGIS Enterprise 将启用 HTTPS。
ArcGIS Server 支持两种身份验证方法 - web 层身份验证(包括集成 Windows 身份验证、PKI 和 HTTP 基本/摘要)以及 GIS 层身份验证(也称为令牌身份验证)。 必须选择一种方法,两种方法不能组合使用。
要获得最高的安全性,建议使用 web 层身份验证。 如果架构要求使用负载均衡器,而非 web 适配器,或者 web 服务器无法集成到 ArcGIS Server 正在使用的用户存储(例如 ArcGIS Server 内置帐户)中,则可以在安全性较低的环境中使用 GIS 层。
本文将介绍令牌身份验证的工作原理以及应该如何对其进行配置。
如果将 ArcGIS Server 配置为使用 GIS 层身份验证,则客户端应用程序会要求用户提供其用户名和密码。 然后,这些客户端应用程序会将用户名/密码发送到 ArcGIS Server 并接收令牌作为交换。 然后,即可在后续请求中使用该令牌,由此无需发送用户名/密码。
如果 ArcGIS Server 配置不正确,则使用令牌存在安全风险。 以下将讨论这些风险以及应对措施:
风险 1: 泄露用户名/密码
如果启用,则所有 Esri 客户端和 API 都将通过 https(加密)发送用户名和密码。 如果未启用,则可能会通过网络以明文形式发送用户名/密码。 为防止出现这种情况,在使用 GIS 层身份验证时,强烈建议在 ArcGIS Server 中启用 https。 默认情况下,将不启用 https。
风险 2:重放攻击
一种常见的攻击是嗅探网络流量并获取令牌等信息,以便在恶意攻击中重复使用。 从用户处获取 ArcGIS Server 令牌的攻击者能够在一段时间内伪装成该用户。
可以通过一些方法来减轻这种攻击。 最强大的方法是要求所有通信都使用 https,由此会对进出 ArcGIS Server 的所有内容进行加密。
还有一些方法通过 ArcGIS Server 的令牌设置来减轻这种攻击。 ArcGIS Server 会发布短期和长期令牌。 长期令牌必须绑定到 IP 地址或引用者。 如果令牌绑定到 IP,则将仅接受来自该 IP 地址的令牌。 这意味着将拒绝来自另一台计算机的重放令牌。 如果令牌绑定到引用者,则意味着除非设置称为引用者的特定 http 标头,否则将拒绝该令牌。 客户端应用程序将决定使用引用者还是 IP 地址。 使用引用者可能会降低实施的安全性,因此不建议这样做。
由于短期令牌的有效期限通常非常短,这使得重放变得更加困难,因此无需将其绑定到 IP 地址或引用者。 可以配置短期令牌的最长时限,以便将其缩短为一分钟。
风险 3:开发实践
可以通过 HTTP GET 或 HTTP POST 获取令牌。 使用 POST 始终更加安全。 GET 请求可能会在网络设备历史记录和浏览器历史记录中留下用户名/密码。 在获取令牌时,Esri API 和产品将使用 POST。 但是,为了方便人们编写脚本,可以通过 GET 请求获取令牌。 在安全环境中,Esri 建议不要通过 GET 请求获取令牌。
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序