автоматизация с помощью ISE ERS API
-
Всем привет! Я пытаюсь автоматизировать добавление сетевых устройств в ISE с помощью вызовов API Python к ISE с помощью модуля requests и с использованием JSON для изменения данных. Вот пример кода: #### import requests
import requests.auth
import getpass
import json Username = input("Введите имя пользователя API:") Password = getpass.getpass("Введите пароль API:") headers = {'Content-Type': 'application/json', 'Accept': 'application/json'} ISEjson= {
"NetworkDevice" : {
"id" : "123456789",
"name" : "networkDevice1",
"description" : "example nd",
"authenticationSettings" : {
"radiusSharedSecret" : "aaa",
"enableKeyWrap" : True,
"dtlsRequired" : True,
"keyEncryptionKey" : "1234567890123456",
"messageAuthenticatorCodeKey" : "12345678901234567890",
"keyInputFormat" : "ASCII"
},
"snmpsettings" : {
"version" : "ONE",
"roCommunity" : "aaa",
"pollingInterval" : 3600,
"linkTrapQuery" : True,
"macTrapQuery" : True,
"originatingPolicyServicesNode" : "Auto"
},
"trustsecsettings" : {
"deviceAuthenticationSettings" : {
"sgaDeviceId" : "networkDevice1",
"sgaDevicePassword" : "aaa"
},
"sgaNotificationAndUpdates" : {
"downlaodEnvironmentDataEveryXSeconds" : 86400,
"downlaodPeerAuthorizationPolicyEveryXSeconds" : 86400,
"reAuthenticationEveryXSeconds" : 86400,
"downloadSGACLListsEveryXSeconds" : 86400,
"otherSGADevicesToTrustThisDevice" : False,
"sendConfigurationToDevice" : False,
"sendConfigurationToDeviceUsing" : "ENABLE_USING_COA",
"coaSourceHost" : "IseNodeName"
},
"deviceConfigurationDeployment" : {
"includeWhenDeployingSGTUpdates" : True,
"enableModePassword" : "aaa",
"execModePassword" : "aaa",
"execModeUsername" : "aaa"
}
},
"tacacsSettings" : {
"sharedSecret" : "aaa",
"connectModeOptions" : "ON_LEGACY"
},
"profileName" : "Cisco",
"coaPort" : 1700,
"dtlsDnsName" : "ISE213.il.com",
"NetworkDeviceIPList" : [ {
"ipaddress" : "1.1.1.1",
"mask" : 32
} ],
"NetworkDeviceGroupList" : [ "Location#All Locations", "Device Type#All Device Types" ]
}
} ISE = requests.post("
https://x.x.x.x:9060/ers/config/networkdevice
", verify=False, auth=(Username, Password), headers=headers, json=ISEjson) print(ISE.text)
print(ISE.status_code)
print(ISE.headers) #### Проблема, с которой я столкнулся, заключается в том, что при попытке отправить данные в ISE я получаю следующее: <!doctype html><html lang="en"><head><title>HTTP Status 401 – Unauthorized</title><style type="text/css">h1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} h2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} h3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;размер шрифта: 14px;} body {семейство шрифтов: Tahoma, Arial, sans-serif; цвет: черный; цвет фона: белый;} b {семейство шрифтов: Tahoma, Arial, sans-serif; цвет: белый; цвет фона: #525D76;} p {семейство шрифтов: Tahoma, Arial, sans-serif; фон: белый; цвет: черный;font-size:12px;} a {color:black;} a.name {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 401 – Неавторизованный</h1><hr class="line" /><p><b>Тип</b> Отчет о статусе</p><p><b>Описание</b> Запрос не был обработан, поскольку не содержит действительных учетных данных для аутентификации целевого ресурса.</p><hr class="line" /><h3></h3></body></html>
401
{'WWW-Authenticate': 'Basic realm="ERSRealm"', 'Content-Type': 'text/html;charset=utf-8', 'Content-Language': 'en', 'Content-Length': '1014', 'Date': 'Tue, 09 Jul 2019 02:02:03 GMT', 'Server': ''} Я не понимаю, почему аутентификация не проходит, ведь я могу использовать модуль запросов для GET и DELETE в ISE с этой же учетной записью. Кто-нибудь может прояснить ситуацию? -
Игнорируйте! Решение: Проблемы вызывал интерпретатор Python.
-
Армин, как ты решил эту проблему? У меня, похоже, все еще остается та же проблема при использовании команды curl. }'
HTTP/1.1 401
WWW-Authenticate: Basic realm="ERSRealm"
Content-Length: 0
Date: Thu, 02 May 2024 20:27:00 GMT
Server:
Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.
Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.
С вашими комментариями этот пост может стать ещё лучше 💗
Зарегистрироваться Войти