Instrução
Ao solicitar um token via Python, a solicitação é tecnicamente anônima. Como a autenticação anônima é desativada no nível do Web Adaptor ao aproveitar o IWA SSO, um erro 404 não autorizado é retornado ao tentar gerar um token.
Para contornar essa limitação, é necessário instalar o módulo requests-negotiate-sspi no ambiente Python que queremos usar para conceder ao módulo "requests" a capacidade de passar credenciais do Windows em solicitações.
Use o script de exemplo abaixo para gerar um token usando as credenciais da conta do Windows com a qual você executa o script:
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 do Artigo: 000029103
Obtenha ajuda de especialistas do ArcGIS
Comece a conversar agora