CÓMO

Generar un token para un ArcGIS Server federado que utiliza la autenticación IWA SSO con Python

Last Published: January 11, 2023

Resumen

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:

Procedimiento

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. de artículo: 000029103

Obtenga soporte con IA

Resuelva su problema rápidamente con el chatbot de inteligencia artificial de soporte de Esri.

Empieza a chatear ahora

Información relacionada

Descubrir más sobre este tema

Obtener ayuda de expertos en ArcGIS

Contactar con el soporte técnico

Empieza a chatear ahora

Ir a opciones de descarga