Использование токена JWT в Cisco Ironport Async API

#python #python-requests #cisco

#python #python-запросы #cisco

Вопрос:

У нас есть cisco Ironport, и нам нужно получать электронные письма, помещенные в карантин, из API. Согласно документации API (https://www.cisco.com/c/en/us/td/docs/security/esa/esa13-0/api/b_ESA_API_Guide/b_ESA_API_Guide_chapter_01.html#con_1092269) , нам нужно использовать учетные данные в кодировке Base64 для входа в систему. Используя приведенный ниже код, я могу получить доступ к ironport и сгенерировать токен jwt:

 import requests
import json
url = 'http://{IP}:6080/esa/api/v2.0/login'

headers = {
   "data": 
    {
        "userName":"base64_username",
        "passphrase":"base64_password"
    }
}

response = requests.request("POST", url, json=headers)

data = json.loads(response.text)
token_auth = str(data['data']["jwtToken"])
print(token_auth)
 

Однако мы не можем найти, как в дальнейшем использовать этот токен для аутентификации остальных вызовов. То, что я уже пробовал, это:

 headers = {
  "Authorization": "Bearer "   token_auth,
  "Accept": "application/json"
}

AND

headers = {
   "data": 
    {
        "Authorization": "Bearer "   token_auth,
        "Accept": "application/json"
    }
}
 

Я также пытался передать токен без предъявителя, но безуспешно. Код ошибки, создаваемый этими заголовками, имеет неправильный синтаксис или :

 {"error": {"message": "Unauthorized.", "code": "401", "explanation": "401 = No permission -- see authorization schemes."}}
 

Итак, каков правильный способ вызова конечных точек после получения токена?