#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."}}
Итак, каков правильный способ вызова конечных точек после получения токена?