操作方法

操作方法:使用 Python 为启用 IWA SSO 认证的联合 ArcGIS Server 生成令牌

Last Published: January 11, 2023

摘要

通过 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)

 

文章 ID: 000029103

接收通知并查找新问题或常见问题的解决方案

从我们全新的 AI 聊天机器人中获得简明答案和视频解决方案。

下载 Esri 支持应用程序

相关信息

发现关于本主题的更多内容

获取来自 ArcGIS 专家的帮助

联系技术支持部门

下载 Esri 支持应用程序

转至下载选项