Einen Zugriffstoken in der MDR Web Console erstellen

So erstellen Sie einen Zugriffstoken:

  1. Navigieren Sie im Fenster der MDR Web Console zum Menüpunkt Einstellungen.
  2. Klicken Sie auf die Registerkarte API.

    Die Liste Alle Token wird angezeigt. Jede Zeile steht für einen Token. Sie können auf eine beliebige Stelle in der Zeile klicken, um Informationen zu dem Token anzuzeigen.

  3. Klicken Sie auf ein Token mit dem Aktivierungsstatus Ausstehend.

    Der Block Token-Info wird angezeigt.

  4. Klicken Sie im Feld JWT-Token auf die Schaltfläche Aktualisieren.

    Ein Aktualisierungstoken wird angezeigt.

  5. Wählen und speichern Sie den Wert aus dem Feld Client-ID.
  6. Wählen Sie die Zeichenfolge des Tokens aus und speichern Sie diese in der Zwischenablage.
  7. Senden Sie eine POST-Anfrage an den /session/confirm-Endpunkt (siehe folgendes Beispiel)

    Ersetzen Sie {client_id} und {refresh_token} durch die in den vorherigen Schritten ausgewählten und gespeicherten Werte.

Beispiel (Python):

 

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

# Allgemeiner Teil

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

 

import time

import datetime

import requests

import jwt

 

# Das Zertifikat wird für die Authentifizierung einer externen Ressource benötigt

# Sie können das Zertifikat von https://mdr.kaspersky.com herunterladen,

# es auf Ihrer Festplatte speichern und seinen Pfad der Variablen hinzufügen:

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

 

# MDR REST API URL:

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

 

# ID Ihres Kunden und Ihres Tokens.

# Für Einzelheiten zum Abrufen Ihrer ID und der Token-ID siehe Hilfe https://support.kaspersky.com/MDR/de-DE/258285.htm

CLIENT_ID = "9ed43ed54sAmpleIdf349323951f" # (Fügen Sie Ihren Wert ein)

REFRESH_TOKEN = "ReFrEsHToKeN" # (Fügen Sie Ihren Wert ein)

ACCESS_TOKEN = "AcCeSsToKeN" # (Fügen Sie Ihren Wert ein)

 

 

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

# Zugriffstoken und Aktualisierungstoken (refresh token) für das nächste Update des Zugriffstokens anfordern

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

 

if REFRESH_TOKEN:

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

print(f"REFRESH_TOKENAblaufdatum und -uhrzeit: {datetime.datetime.fromtimestamp(refresh_token_exp)}")

if refresh_token_exp > time.time():

print("REFRESH_TOKEN ist aktuell")

else:

print(

"Der REFRESH_TOKEN muss aktualisiert werden. Dieser ist in der MDR Console verfügbar (https://support.kaspersky.com/MDR/de-DE/258285.htm)."

)

exit()

else:

print(

"Für den REFRESH_TOKEN muss ein Wert angegeben werden. Dieser ist in der MDR Console verfügbar (https://support.kaspersky.com/MDR/de-DE/258285.htm)."

)

exit()

 

# Prüfung, ob ein Zugriffstoken (access token) vorhanden und gültig ist

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 Ablaufdatum und -uhrzeit: {datetime.datetime.fromtimestamp(access_token_exp)}")

if access_token_exp > time.time():

print("ACCESS_TOKEN ist aktuell")

else:

need_update_access_token = True

else:

need_update_access_token = True

 

# Bei Bedarf Zugriffs- und Refresh-Tokens für das nächste Update des Zugriffstokens aktualisieren

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

 

#Aktualisierungstoken muss gespeichert werden, um nach Ablauf des aktuellen Zugriffstokens den nächsten Zugriffstoken zu erhalten

refresh_token = result_json["refresh_token"]

print(

f'!!! Ihr neuer REFRESH_TOKEN für die nächste Anfrage eines ACCESS_TOKEN (ersetzen Sie den Wert für REFRESH_TOKEN durch diesen Wert): "{refresh_token}"'

)

 

# Neuer Zugriffstoken zum Datenabruf erforderlich

access_token = result_json["access_token"]

print(f'!!! Ihr neuer ACCESS_TOKEN (ersetzen Sie den Wert für ACCESS_TOKEN durch diesen Wert): "{access_token}"')

 

# Zugriffstoken zum Request-Header hinzufügen

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

 

Beispiel (Shell):

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

Die REST-API liefert eine Antwort mit dem Zugriffstoken und einem neuen Aktualisierungstoken:

{

"access_token": "SamPLET346yoKEnSamPLEToK25EnSamPLEToK35EnS",

"refresh_token": "tOKenSaMPlet259OKenS123aMPle926tOKenSaMPle"

}

Sie können jetzt mithilfe des Zugriffstokens Anfragen an die REST-API senden. Jede Anfrage an die REST-API erfordert einen Zugriffstoken – eine Anfrage ohne Zugriffstoken gibt lediglich einen Autorisierungsfehler zurück.

Siehe auch:

Szenario: Tokenbasierte Autorisierung durchführen

Nach oben