Creazione di un token di accesso in Kaspersky Security Center
Un token di accesso è una sequenza univoca di caratteri (lettere, cifre e caratteri speciali) che autorizza a utilizzare i metodi dell'API REST.
Per creare un token di accesso:
- Nella sezione MDR di Kaspersky Security Center fare clic sulla scheda API.
Verrà visualizzato l'elenco Connessioni API.
- Fare clic su una connessione con stato Attivazione in sospeso.
Verrà visualizzata una sezione contenente le informazioni sulla connessione.
- Nel campo Token JWT fare clic sul pulsante Aggiorna.
Verrà visualizzato un token di aggiornamento.
- Selezionare e salvare il valore nel campo ID cliente.
- Selezionare e salvare la sequenza di caratteri del token negli Appunti.
- Inviare una richiesta POST all'endpoint
/session/confirm
.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
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()
# È 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:
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.
È inoltre possibile creare un token di accesso in Web Console MDR.