Skip to main 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.example.com/arcgis/rest/services/SampleWorldCities/MapServer?f=pjson HTTP/1.1
    Host: arcgis.example.com
    X-Esri-Authorization: Bearer xMTuPSYpAbj85TVfbZcVU7td8bMBlDKuSVkM3FAx7zO1MYD0zDam1VR3Cm-ZbFo-

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

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

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

  • ArcGIS Pro:用户在连接对话框中提供有效的用户名和密码。 如果未指定用户名或密码,或者登录不正确,软件会提示用户输入正确的凭据。

  • ArcGIS Maps SDK for JavaScript:客户端必须能够提供令牌才能访问需要令牌的服务。 在大多数情况下,不适合将服务的用户名和密码嵌入到客户端 JavaScript。 而是可以从令牌服务器获取长期令牌,且此令牌可以包括在客户端页面中。 此令牌随后会包括在服务的请求中。 有关获取令牌的详细信息,请参阅获取 ArcGIS 令牌。 有关使用令牌请求访问资源的信息,请参阅相应的 API 帮助。

  • 基于 SOAP 的应用程序:使用 SOAP 工具包访问 GIS Web 服务的 WSDL 的应用程序需要明确地获取和使用这些令牌。