Creazione di un token di accesso in Web Console MDR

15 aprile 2024

ID 258285

Per creare un token di accesso:

  1. Nella finestra di Web Console MDR passare alla voce di menu Impostazioni.
  2. Fare clic sulla scheda API.

    Verrà visualizzato l'elenco Tutti i token. Ogni riga rappresenta un token. È possibile fare clic in qualsiasi punto della riga per visualizzare le informazioni sul token.

  3. Fare clic su un token con stato Attivazione in sospeso.

    Verrà visualizzata una sezione Informazioni token.

  4. Nel campo Token JWT fare clic sul pulsante Aggiorna.

    Verrà visualizzato un token di aggiornamento.

  5. Selezionare e salvare il valore nel campo ID cliente.
  6. Selezionare e salvare la sequenza di caratteri del token negli Appunti.
  7. Inviare una richiesta POST all'endpoint /session/confirm (vedere gli esempi di seguito).

    Sostituire {client_id} e {refresh_token} con i valori selezionati e salvati nei passaggi precedenti.

Esempio (Python):

 

###################################################

# Parte generale

###################################################

 

import time

import datetime

import requests

import jwt

 

# Il certificato è richiesto per l'autenticazione di una risorsa esterna

# È possibile scaricare il certificato da https://mdr.kaspersky.com,

# salvarlo sul disco e aggiungere il percorso nella variabile:

VERIFY_CERT_PATH = "C:\\tools\\DigiCert Global Root G2.crt"

 

# MDR REST API URL:

API_URL = "https://mdr.kaspersky.com/api/v1"

 

# L'ID del client e i token.

# Per i dettagli su come ottenere l'ID e i token, fare riferimento alla guida https://support.kaspersky.com/MDR/it-IT/258285.htm

CLIENT_ID = "9ed43ed54sAmpleIdf349323951f" # (Incollare il valore)

REFRESH_TOKEN = "ReFrEsHToKeN" # (Incollare il valore)

ACCESS_TOKEN = "AcCeSsToKeN" # (Incollare il valore)

 

 

###################################################

# Ottenere il token di accesso e un token di aggiornamento per l'aggiornamento successivo del token di accesso

###################################################

 

if REFRESH_TOKEN:

refresh_token_exp = jwt.decode(REFRESH_TOKEN, options={"verify_signature": False}).get("exp")

print(f"REFRESH_TOKEN data e ora di scadenza: {datetime.datetime.fromtimestamp(refresh_token_exp)}")

if refresh_token_exp > time.time():

print("REFRESH_TOKEN è attuale")

else:

print(

"Bisognerebbe aggiornare REFRESH_TOKEN. Prelevarlo dalla Console MDR (https://support.kaspersky.com/MDR/it-IT/258285.htm). "

)

exit()

else:

print(

"Sarebbe opportuno inserire il valore REFRESH_TOKEN. Prelevarlo dalla Console MDR (https://support.kaspersky.com/MDR/it-IT/258285.htm). "

)

exit()

 

# Verificare la presenza e la validità del token di accesso

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 data e ora di scadenza: {datetime.datetime.fromtimestamp(access_token_exp)}")

if access_token_exp > time.time():

print("ACCESS_TOKEN è attuale")

else:

need_update_access_token = True

else:

need_update_access_token = True

 

# Se necessario, aggiornare il token di accesso e aggiornare il token per il prossimo aggiornamento del token di accesso

access_token = ACCESS_TOKEN

se 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()

 

# È necessario salvare il token di aggiornamento per ottenere il token di accesso successivo alla scadenza del token di accesso corrente

refresh_token = result_json["refresh_token"]

print(

f'!!! Il nuovo REFRESH_TOKEN per l'orario successivo per la richiesta ACCESS_TOKEN (sostituire il valore di REFRESH_TOKEN con questo valore): "{refresh_token}"'

)

 

# È necessario un nuovo token di accesso per recuperare i dati

access_token = result_json["access_token"]

print(f'!!! Il nuovo ACCESS_TOKEN (sostituire il valore di ACCESS_TOKEN con questo valore): "{access_token}"')

 

# Il token di accesso viene aggiunto all'intestazione della richiesta

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

 

Esempio (Shell):

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

L'API REST invia una risposta con il token di accesso e un nuovo token di aggiornamento:

{

"access_token": "SamPLET346yoKenSamPLEToK25EnSamPLEToK35EnS",

"refresh_token": "tOKenSaMPlet259OKenS123aMPle926tOKenSaMPle"

}

Ora è possibile inviare richieste all'API REST utilizzando il token di accesso. Ogni richiesta all'API REST richiede un token di accesso. Una richiesta senza token di accesso restituirà solo un errore di autorizzazione.

Vedere anche:

Scenario: esecuzione dell'autorizzazione basata su token

Hai trovato utile questo articolo?
Cosa pensi che potremmo migliorare?
Grazie per il feedback! Ci stai aiutando a migliorare.
Grazie per il feedback! Ci stai aiutando a migliorare.