Ejemplo (Python):
###################################################
# Parte general
###################################################
import time
import datetime
import requests
import jwt
# El certificado es necesario para la autenticación de un recurso externo
# Puede descargar el certificado desde https://mdr.kaspersky.com,
# guárdelo en su disco y agregue la ruta en la variable:
VERIFY_CERT_PATH = "C:\\tools\\DigiCert Global Root G2.crt"
# MDR REST API URL:
API_URL = "https://mdr.kaspersky.com/api/v1"
# La identificación de su cliente y sus tokens.
# Para obtener más información sobre cómo obtener su ID y los tokens, consulte la ayuda https://support.kaspersky.com/MDR/en-US/258285.htm
CLIENT_ID = "9ed43ed54sAmpleIdf349323951f" # (Pegue su valor)
REFRESH_TOKEN = "ReFrEsHToKeN" # (Pegue su valor)
ACCESS_TOKEN = "AcCeSsToKeN" # (Pegue su valor)
###################################################
# Obtenga un token de acceso y un token de actualización para la próxima actualización del token de acceso
###################################################
if REFRESH_TOKEN:
refresh_token_exp = jwt.decode(REFRESH_TOKEN, options={"verify_signature": False}).get("exp")
print(f"REFRESH_TOKEN fecha y hora de caducidad: {datetime.datetime.fromtimestamp(refresh_token_exp)}")
if refresh_token_exp > time.time():
print("REFRESH_TOKEN es válido ")
else:
print(
" Debe actualizar REFRESH_TOKEN .Tómelo de MDR Console (https://support.kaspersky.com/MDR/es-ES/258285.htm) . "
)
exit()
else:
print(
" Debe rellenar el valor REFRESH_TOKEN.Tómelo de MDR Console (https://support.kaspersky.com/MDR/es-ES/258285.htm) . "
)
exit()
# Verificar la presencia y validez del token de acceso
need_update_access_token = False
if ACCESS_TOKEN:
access_token_exp = jwt.decode(ACCESS_TOKEN, options={"verify_signature": False}).get("exp")
print(f"ACCESS_TOKEN fecha y hora de caducidad: {datetime.datetime.fromtimestamp(access_token_exp)}")
if access_token_exp > time.time():
print("ACCESS_TOKEN es válido ")
else:
need_update_access_token = True
else:
need_update_access_token = True
# Si es necesario, actualice el token de acceso y actualice el token para la próxima actualización del token de acceso
access_token = ACCESS_TOKEN
if need_update_access_token:
request_body = {"refresh_token": REFRESH_TOKEN}
result = requests.post(url=f"{API_URL}/{CLIENT_ID}/session/confirm", json=request_body, verify=VERIFY_CERT_PATH)
result_json = result.json()
if "error" in result_json:
print(result_json)
exit()
# Es necesario guardar el token de actualización para obtener el siguiente token de acceso cuando caduque el token de acceso actual
refresh_token = result_json["refresh_token"]
print(
f' !!!Su nuevo REFRESH_TOKEN para la próxima vez que solicite ACCESS_TOKEN (reemplace el valor de REFRESH_TOKEN con este valor ): "{refresh_token}" '
)
# Se requiere un nuevo token de acceso para recuperar los datos
access_token = result_json["access_token"]
print(f' !!!Su nuevo ACCESS_TOKEN (reemplace el valor de ACCESS_TOKEN con este valor) : "{access_token}"' )
# El token de acceso se añade al encabezado de la solicitud
headers = {"Authorization": f"Bearer {access_token}"}
|