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