CÓMO
Al solicitar un token a través de Python, la solicitud es técnicamente anónima. Dado que la autenticación anónima está deshabilitada en el nivel de Web Adaptor cuando se aprovecha el SSO de IWA, se devuelve un error 404 no autorizado al intentar generar un token.
Para solucionar esta limitación, es necesario instalar el módulo requests-negotiate-sspi en el entorno de Python que queremos utilizar para otorgar al módulo «requests» la capacidad de pasar credenciales de Windows en las solicitudes.
Utilice el siguiente script de ejemplo para generar un token utilizando las credenciales de la cuenta de Windows con la que ejecuta el 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)
Obtener ayuda de expertos en ArcGIS
Descargar la aplicación de soporte de Esri