操作方法
通过 Python 请求令牌时,该请求在技术上是匿名的。 由于在利用 IWA SSO 时,Web Adaptor 级别禁用了匿名身份验证,因此在尝试生成令牌时会返回 404 未授权错误。
为了解决这一问题,需要在所使用的 Python 环境中安装 requests-negotiate-sspi 模块,以便允许“requests”模块在请求中传递 Windows 凭据。
以下示例脚本演示了如何使用运行脚本的 Windows 账户的凭据生成令牌:
import json import requests from requests_negotiate_sspi import HttpNegotiateAuth portal = "https://hostname.domain.com/portal" server = "https://hostname.domain.com/server" def getPortalToken(url): parameters = {'client' : 'referer','referer': server,'expiration': 5,'f' : 'json'} req = requests.get(url + '/sharing/rest/generateToken?', parameters, auth=HttpNegotiateAuth()) json = req.json() token = json.get("token", "") return token def getServerToken(url, serverUrl, token): parameters = {'serverUrl' : serverUrl,'token' : token,'f' : 'json'} req = requests.get(url + '/sharing/rest/generateToken?', parameters, auth=HttpNegotiateAuth()) json= req.json() token = json.get("token", "") return token portalToken = getPortalToken(portal) serverToken = getServerToken(portal, server, portalToken) print(serverToken)
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序