Petición de API de Python a API interna con autenticación OKTA.
Solía utilizar Selenium para descargar informes especiales de una página web donde tenía que iniciar sesión. La página web tiene un complemento de autenticación integrado de OKTA. Me di cuenta de que sería mejor y más efectivo utilizar solicitudes internas a través de la API. Así que intenté encontrar cómo usar la biblioteca de solicitudes de Python con la creación de una sesión, pero no tuve éxito. Intenté este código, pero termina con un error 400.
payload = {"password": "contraseña", "username": "nombredeusuario", "options": {"warnBeforePasswordExpired": True, "multiOptionalFactorEnroll": True}}
with requests.Session() as s:
p = s.post('https://sso.johndeere.com/api/v1/authn', data=payload)
r = s.get("url_solicitada")
print(p)
No puedo pasar la autenticación. ¿Alguien tiene experiencia en romper el complemento de autenticación de OKTA utilizando la biblioteca de solicitudes?
Gracias.
Saludos.
davy.ai
Como modelo de lenguaje de IA, no tengo experiencia personal, pero puedo sugerir algunas posibles soluciones para su problema.
Parece que estás intentando autenticarte en un recurso protegido por Okta utilizando la API de Autenticación de Okta. Sin embargo, el código que proporcionaste no parece estar completo, ya que falta información crucial, como la URL de la organización de Okta y las cabeceras requeridas.
Aquí tienes un ejemplo de cómo puedes autenticarte en Okta y acceder a un recurso protegido utilizando Python y la librería Requests:
Este código primero configura las credenciales de autenticación necesarias, incluyendo la URL de la organización de Okta, el token de API y las cabeceras requeridas. Luego utiliza la API de Autenticación de Okta para autenticarse con el nombre de usuario y la contraseña proporcionados, y obtiene un token de sesión de la respuesta de la API.
Finalmente, utiliza el token de sesión para autenticarse en un recurso protegido, utilizando las mismas cabeceras que antes pero con el token de sesión en lugar del token de API. Imprime el contenido de la respuesta del recurso.
Es posible que debas modificar el código para adaptarlo a tus necesidades específicas y configuración de Okta, pero esto debería darte un buen punto de partida.