Kaspersky Managed Detection and Response

Создание токена доступа в Kaspersky Security Center

Токен доступа – это уникальная последовательность символов (букв, цифр и символов), позволяющая использовать методы REST API.

Чтобы создать токен доступа:

  1. В разделе MDR в Kaspersky Security Center перейдите на вкладку API.

    Появится список API-подключения.

  2. Выберите подключение со статусом Ожидает активации.

    Появится раздел, содержащий информацию о подключении.

  3. В поле Токен JWT нажмите на кнопку Обновить.

    Отобразится токен обновления.

  4. Выделите и сохраните значение поля Идентификатор клиента.
  5. Выделите и скопируйте последовательность символов токена в буфер обмена.
  6. Отправьте запрос POST на конечную точку /session/confirm.

    Замените {client_id} и {refresh_token} значениями, выбранными и сохраненными на предыдущих шагах.

Пример (Python):

################################################### # Общая часть ###################################################   import time import datetime import requests import jwt   # Сертификат необходим для аутентификации внешнего ресурса. # Вы можете скачать сертификат с https://mdr.kaspersky.com. # Сохраните сертификат на свой диск и добавьте путь к сертификату в переменной: VERIFY_CERT_PATH = "C:\\tools\\DigiCert Global Root G2.crt"   # MDR REST API URL: API_URL = "https://mdr.kaspersky.com/api/v1"   # Ваш идентификатор клиента и ваши токены. # Подробнее о получении идентификатора и токенов см. в справке https://support.kaspersky.com/MDR/ru-RU/258285.htm. CLIENT_ID = "9ed43ed54sAmpleIdf349323951f" # (Вставьте ваше значение) REFRESH_TOKEN = "ReFrEsHToKeN" # (Вставьте ваше значение) ACCESS_TOKEN = "AcCeSsToKeN" # (Вставьте ваше значение)     ################################################### # Получение токена доступа и токена обновления для следующего обновления токена доступа ###################################################   if REFRESH_TOKEN: refresh_token_exp = jwt.decode(REFRESH_TOKEN, options={"verify_signature": False}).get("exp") print(f"REFRESH_TOKEN дата и время истечения срока действия: {datetime.datetime.fromtimestamp(refresh_token_exp)}") if refresh_token_exp > time.time(): print("REFRESH_TOKEN действительный") else: print( "Вам нужно обновить REFRESH_TOKEN. Возьмите его из Консоли MDR (https://support.kaspersky.com/MDR/ru-RU/258285.htm)". ) exit() else: print( "Вам нужно заполнить значение REFRESH_TOKEN. Возьмите его из Консоли MDR (https://support.kaspersky.com/MDR/ru-RU/258285.htm)". ) exit()   # Проверьте наличие и срок действия токена доступа. 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 дата и время истечения срока действия: {datetime.datetime.fromtimestamp(access_token_exp)}") if access_token_exp > time.time(): print("ACCESS_TOKEN действительный") else: need_update_access_token = True else: need_update_access_token = True   # При необходимости обновите токен доступа и токен обновления для следующего обновления токена доступа. 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()   # Необходимо сохранить токен обновления, чтобы получить следующий токен доступа после истечения срока действия текущего токена доступа refresh_token = result_json["refresh_token"] print( f'!!! Ваш новый REFRESH_TOKEN для следующего запроса ACCESS_TOKEN (замените значение REFRESH_TOKEN значением): "{refresh_token}"' )   # Требуется новый токен доступа для получения данных access_token = result_json["access_token"] print(f'!!! Ваш новый ACCESS_TOKEN (замените значение ACCESS_TOKEN значением): "{access_token}"')   # Токен доступа добавлен в заголовок запроса. headers = {"Authorization": f"Bearer {access_token}"}

 

Пример (Shell):

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

REST API отправляет действие по реагированию с токеном доступа и новым токеном обновления:

{ "access_token": "SamPLET346yoKEnSamPLEToK25EnSamPLEToK35EnS", "refresh_token": "tOKenSaMPlet259OKenS123aMPle926tOKenSaMPle" }

Теперь можно отправлять запросы в REST API, используя токен доступа. Для каждого запроса к REST API требуется токен доступа; в ответ на запрос без токена доступа возвращается только ошибка авторизации.

Вы также можете создать токен доступа в Консоли MDR.

См. также:

Сценарий: авторизация на основе токенов

Работа с REST API