Crear un token de acceso en Kaspersky Security Center

15 de abril de 2024

ID 204469

Un token de acceso es una secuencia única de caracteres (letras, dígitos y caracteres especiales) que le autoriza a utilizar los métodos de la API de REST.

Para crear un token de acceso:

  1. En la sección MDR de Kaspersky Security Center, haga clic en la pestaña API.

    Aparece la lista Conexiones API.

  2. Haga clic en una conexión con un estado de Activación pendiente.

    Aparece un bloque que contiene la información de conexión.

  3. En el campo JWT token, haga clic en el botón Actualizar.

    Aparece un token de actualización.

  4. Seleccione y guarde el valor del campo Id. de cliente.
  5. Seleccione y guarde la secuencia de caracteres del token en el portapapeles.
  6. Envíe una solicitud POST al punto final /session/confirm.

    Reemplace {client_id} y {refresh_token} con los valores seleccionados y guardados en los pasos anteriores.

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"

 

# URL de la API de REST de MDR:

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/en-US/258285.htm). "

)

exit()

else:

print(

"Debe rellenar el valor REFRESH_TOKEN. Tómelo de MDR Console (https://support.kaspersky.com/MDR/en-US/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_TOKENcon este valor):"{access_token}" ')

 

# El token de acceso se añade al encabezado de la solicitud

headers = {"Authorization": f"Bearer {access_token}"}

 

Ejemplo (Shell):

curl -X POST https://mdr.kaspersky.com/api/v1/{client_id}/session/confirm -H "Content-Type: application/json" -d '{"refresh_token": "{refresh_token}"}'

La API de REST envía una respuesta con el token de acceso y un nuevo token de actualización.

{

"access_token": "SamPLET346yoKEnSamPLEToK25EnSamPLEToK35EnS",

"refresh_token": "tOKenSaMPlet259OKenS123aMPle926tOKenSaMPle"

}

Ahora, puede enviar solicitudes a la API de REST utilizando el token de acceso. Cada solicitud a la API de REST requiere un token de acceso; una solicitud sin un token de acceso solo devolverá un error de autorización.

También puede crear un token de acceso en MDR Web Console.

Ver también:

Escenario: realizar una autorización basada en token

Trabajar con la API de REST

¿Le ha resultado útil este artículo?
¿Qué podemos mejorar?
¡Gracias por darnos su opinión! Nos está ayudando a mejorar.
¡Gracias por darnos su opinión! Nos está ayudando a mejorar.