Skip To Content

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

当使用基于 ArcGIS 令牌的身份验证保护 ArcGIS Server 服务时,客户端软件必须能够获取并使用该令牌。Esri 客户端应用程序 (例如 ArcGIS DesktopArcGIS 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 DesktopArcGIS Pro:用户在连接对话框中输入有效的用户名和密码。如果未指定用户名或密码,或者登录不正确,软件会提示用户输入正确的凭据。
  • ArcGIS API for JavaScript:客户端必须能够提供令牌才能访问需要令牌的服务。大多数情况下,将服务的用户名和密码嵌入客户端 JavaScript 中是不合适的。但是,可以从令牌服务器获取长期令牌,而且此令牌可以包含在客户端页面中。随后此令牌将被包含在服务请求中。有关获取令牌的详细信息,请参阅获取 ArcGIS 令牌。有关使用令牌请求访问资源的信息,请参阅相应的 API 帮助。
  • 基于 SOAP 的应用程序:使用 SOAP 工具包访问 GIS Web 服务的 WSDL 的应用程序需要明确地获取和使用这些令牌。
  • ArcGIS Web 应用程序(Java 或 Microsoft .NET):Web 应用程序使用先前输入 ArcGIS Web 应用程序管理器的凭据,或使用开发者环境中的凭据。