HOW TO
Die Anforderung, die beim Anfordern eines Token über Python gesendet wird, ist technisch gesehen anonym. Da bei Verwendung von IWA-SSO die anonyme Authentifizierung auf Web Adaptor-Ebene deaktiviert ist, wird beim Versuch, ein Token zu generieren, der Fehler "404 Nicht autorisiert" zurückgegeben.
Um diese Einschränkung zu umgehen, müssen Sie das Modul requests-negotiate-sspi in der Python-Umgebung installieren. Damit wird es dem Modul "requests" ermöglicht, Windows-Anmeldeinformationen in Anforderungen zu übergeben.
Verwenden Sie das folgende Beispielskript, um mit den Anmeldeinformationen des Windows-Kontos, das Sie zum Ausführen des Skripts verwenden, ein Token zu generieren:
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)Artikel-ID: 000029103
Unterstützung durch ArcGIS-Experten anfordern
Beginnen Sie jetzt mit dem Chatten