Exemple (Python) :
###################################################
# Partie générale
###################################################
import time
import datetime
import requests
import jwt
# Le certificat est requis pour l’authentification d’une ressource externe
# Vous pouvez télécharger le certificat à l’adresse https://mdr.kaspersky.com,
# enregistrez-le sur votre disque et ajoutez son chemin dans la variable :
VERIFY_CERT_PATH = "C:\\tools\\DigiCert Global Root G2.crt"
# MDR REST API URL:
API_URL = "https://mdr.kaspersky.com/api/v1"
# L’identifiant de votre client et vos jetons.
# Pour en savoir plus sur l’obtention de votre identifiant et des jetons, consultez l’aide https://support.kaspersky.com/MDR/fr-FR/258285.htm
CLIENT_ID = "9ed43ed54sAmpleIdf349323951f" # (Collez la valeur)
REFRESH_TOKEN = "ReFrEsHToKeN" # (Collez la valeur)
ACCESS_TOKEN = "AcCeSsToKeN" # (Collez la valeur)
###################################################
# Obtenir un jeton d’accès et un jeton d’actualisation pour la prochaine mise à jour du jeton d’accès
###################################################
if REFRESH_TOKEN:
refresh_token_exp = jwt.decode(REFRESH_TOKEN, options={"verify_signature": False}).get("exp")
print(f"REFRESH_TOKEN date et heure d’expiration : {datetime.datetime.fromtimestamp(refresh_token_exp)}")
if refresh_token_exp > time.time():
print("REFRESH_TOKEN existe ")
else:
print(
" Vous devez mettre à jour REFRESH_TOKEN . Veuillez le récupérer depuis la Console MDR (https://support.kaspersky.com/MDR/en-US/258285.htm) . "
)
exit()
else:
print(
" Vous devez renseigner la valeur REFRESH_TOKEN. Veuillez le récupérer depuis la Console MDR (https://support.kaspersky.com/MDR/en-US/258285.htm) . "
)
exit()
# Vérifier la présence et la validité du jeton d’accès
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 date et heure d’expiration : {datetime.datetime.fromtimestamp(access_token_exp)}")
if access_token_exp > time.time():
print("ACCESS_TOKEN existe ")
else:
need_update_access_token = True
else:
need_update_access_token = True
# Si nécessaire, mettre à jour le jeton d’accès et actualiser le jeton pour la prochaine mise à jour du jeton d’accès
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()
# Il est nécessaire d’enregistrer le jeton d’actualisation afin d’obtenir le prochain jeton d’accès après l’expiration du jeton d’accès actuel
refresh_token = result_json["refresh_token"]
print(
f' !!!Votre nouveau REFRESH_TOKE N pour votre prochaine demande de ACCESS_TOKE N (veuillez remplacer la valeur de REFRESH_TOKE N par celle-ci ) : "{refresh_token}" '
)
# Un nouveau jeton d’accès est requis pour récupérer les données
access_token = result_json["access_token"]
print(f' !!!Votre nouveau ACCESS_TOKE N (veuillez remplacer la valeur de ACCESS_TOKE N par celle-ci) : "{access_token}"' )
# Le jeton d’accès est ajouté à l’en-tête de la requête
headers = {"Authorization": f"Bearer {access_token}"}
|