Création d’un jeton d’accès dans la Console MDR en ligne

15 avril 2024

ID 258285

Pour créer un jeton d’accès, procédez comme suit :

  1. Dans la fenêtre de la Console MDR en ligne, accédez à l’option du menu Paramètres.
  2. Cliquez sur l’onglet API.

    La liste Tous les jetons s’affiche. Chaque ligne représente un jeton. Vous pouvez cliquer n’importe où sur la ligne pour afficher les informations relatives au jeton.

  3. Cliquez sur un jeton avec un état En attente d’activation.

    Un bloc Informations sur le jeton s’affiche.

  4. Dans le champ Jeton JWT, cliquez sur le bouton Actualiser.

    Un jeton d’actualisation s’affiche.

  5. Sélectionnez et enregistrez la valeur du champ Identifiant du client.
  6. Sélectionnez et enregistrez la séquence de caractères du jeton dans le presse-papiers.
  7. Envoyez une requête POST au terminal /session/confirm (voir les exemples ci-dessous).

    Remplacez {client_id} et {refresh_token} par les valeurs sélectionnées et enregistrées dans les étapes précédentes.

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"

 

# URL de l’API REST MDR :

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/fr-FR/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/fr-FR/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_TOKEN pour votre prochaine demande de ACCESS_TOKEN (veuillez remplacer la valeur de REFRESH_TOKEN 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_TOKEN (veuillez remplacer la valeur de ACCESS_TOKEN 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}"}

 

Exemple (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 envoie une réponse comprenant le jeton d’accès et un nouveau jeton d’actualisation.

{

"access_token": "SamPLET346yoKEnSamPLEToK25EnSamPLEToK35EnS",

"refresh_token": "tOKenSaMPlet259OKenS123aMPle926tOKenSaMPle"

}

Maintenant, vous pouvez envoyer des requêtes à l’API REST en utilisant le jeton d’accès. Chaque requête à l’API REST nécessite un jeton d’accès ; une demande sans jeton d’accès ne renverra qu’une erreur d’autorisation.

Voir également :

Scénario : effectuer une autorisation basée sur des jetons

Cet article vous a-t-il été utile ?
Que pouvons-nous améliorer ?
Merci de nous faire part de vos commentaires. Vous nous aidez à nous améliorer.
Merci de nous faire part de vos commentaires. Vous nous aidez à nous améliorer.