Skip To Content

访问受 ArcGIS 令牌保护的 Web 服务

当使用基于 ArcGIS 令牌的身份验证保护 ArcGIS Server 服务时,客户端软件必须能够获取并使用该令牌。 Esri 客户端应用程序(例如 ArcGIS Pro)能自动处理从令牌服务获取令牌以及向受保护的 ArcGIS Web 服务出示令牌的过程。

在构建使用 GET 请求访问 Web 服务(这些服务受基于 ArcGIS 令牌的身份验证保护)的自定义 ArcGIS 客户端应用程序时,建议使用 X-Esri-Authorization 令牌头而非查询参数来发送令牌。 这可以防止网络中介(如代理、网关或负载均衡器)获取令牌。 以下是 HTTP GET 请求以 X-Esri-Authorization 令牌头发送令牌的示例:

GET https://arcgis.mydomain.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1
    Host: arcgis.mydomain.com
    X-Esri-Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-

如果 ArcGIS Server 使用 ArcGIS Server 身份验证而非 Web 层身份验证(IWA、HTTP BASIC、PKI 等),则可以使用标准 HTTP 授权令牌头代替 X-Esri-Authorization 令牌头:

GET https://arcgis.mydomain.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1
    Host: arcgis.mydomain.com
    Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-

当连接到一个使用基于令牌的身份验证进行保护的 ArcGIS web 服务时,ArcGIS 客户端会产生如下行为。

  • ArcGIS Pro:用户在连接对话框中提供有效的用户名和密码。 如果未指定用户名或密码,或者登录不正确,软件会提示用户输入正确的凭据。
  • ArcGIS Maps SDK for JavaScript:客户端必须能够提供令牌才能访问需要令牌的服务。 在大多数情况下,不适合将服务的用户名和密码嵌入到客户端 JavaScript。 而是可以从令牌服务器获取长期令牌,且此令牌可以包括在客户端页面中。 此令牌随后会包括在服务的请求中。 有关获取令牌的详细信息,请参阅获取 ArcGIS 令牌。 有关使用令牌请求访问资源的信息,请参阅相应的 API 帮助。
  • 基于 SOAP 的应用程序:使用 SOAP 工具包访问 GIS Web 服务的 WSDL 的应用程序需要明确地获取和使用这些令牌。