PROCÉDURE
Lors de la demande d’un jeton via Python, la demande est techniquement anonyme. Étant donné que l’authentification anonyme est désactivée au niveau de l’adaptateur Web lors de l’utilisation de l’authentification unique IWA, une erreur 404 non autorisée est renvoyée lors de la tentative de génération d’un jeton.
Pour contourner cette limitation, il est nécessaire d’installer le module requests-negotiate-sspi dans l’environnement Python que nous voulons utiliser pour accorder au module « requests » la possibilité de transmettre des informations d’identification Windows dans les demandes.
Utilisez l’exemple de script ci-dessous pour générer un jeton à l’aide des informations d’identification du compte Windows avec lequel vous exécutez votre 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)
Obtenir de l’aide auprès des experts ArcGIS
Télécharger l’application Esri Support