المقدمة
يصف هذا المستند إجراء إستخدام OpenAPI لإدارة نشر محرك خدمات الهوية (ISE) من Cisco.
الخلفية
في شبكات المؤسسات الحديثة، أصبح الأمان والإدارة على نحو متزايد معقدين وحاسمين. لمعالجة هذه التحديات، بدءا من Cisco ISE 3.1 وما بعده، تتوفر واجهات برمجة التطبيقات (API) الأحدث في تنسيق OpenAPI، الذي يوفر التحكم القوي في الوصول إلى الشبكة وإمكانات إدارة السياسة. أصبح المسؤول الآن قادرا على التحقق من نشر ISE بشكل أكثر فعالية من خلال OpenAPI، واتخاذ إجراء بشكل استباقي بدلا من انتظار تقارير المشاكل من المستخدمين النهائيين.
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
- محرك خدمات الهوية من Cisco (ISE)
- واجهة برمجة تطبيقات REST
- بايثون
المكونات المستخدمة
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
التكوين
الرسم التخطيطي للشبكة
المخطط
التكوين على ISE
الخطوة 1: إضافة حساب مسؤول واجهة برمجة تطبيقات مفتوحة
إضافة مسؤول واجهة برمجة تطبيقات، انتقل إلى الإدارة > النظام > وصول المسؤول > المسؤولون > مستخدمون الإداريون > إضافة.
مسؤول API
الخطوة 2: تمكين واجهة برمجة التطبيقات المفتوحة على ISE
يتم تعطيل واجهة برمجة التطبيقات المفتوحة بشكل افتراضي على ISE. لتمكين هذا الخيار، انتقل إلى إدارة > نظام > إعدادات > إعدادات واجهة برمجة التطبيقات (API) > إعدادات خدمة API. تبديل خيارات واجهة برمجة التطبيقات المفتوحة. انقر فوق حفظ.
تمكين OpenAPI
الخطوة 3: أستكشاف واجهة برمجة التطبيقات المفتوحة ISE OPEN API
انتقل إلى إدارة > نظام > إعدادات > إعدادات واجهة برمجة التطبيقات > نظرة عامة. انقر فوق فتح إرتباط زيارة واجهة برمجة التطبيقات.
زيارة OpenAPI
أمثلة بايثون
إسترداد قائمة كافة العقد التي يتم نشرها في نظام المجموعة
يسرد واجهة برمجة التطبيقات (API) جميع العقد التي يتم نشرها في نظام المجموعة.
الخطوة 1: المعلومات المطلوبة لاستدعاء واجهة برمجة تطبيقات (API).
الخطوة 2: حدد موقع URL الذي يتم إستخدامه لاسترداد معلومات النشر.
API URI
الخطوة 3: هنا مثال على رمز Python. انسخ المحتوى ولصقه. استبدلت ال ISE ip، username، كلمة. حفظ كملف بايثون لتنفيذه.
تأكد من الاتصال الجيد بين ISE والجهاز الذي يشغل مثال رمز python.
from requests.auth import HTTPBasicAuth
import requests
requests.packages.urllib3.disable_warnings()
if __name__ == "__main__":
url = "https://10.106.33.92/api/v1/deployment/node"
headers = {"Accept": "application/json", "Content-Type": "application/json"}
basicAuth = HTTPBasicAuth("ApiAdmin", "Admin123")
response = requests.get(url=url, auth=basicAuth, headers=headers, verify=False)
print("Return Code:")
print(response.status_code)
print("Expected Outputs:")
print(response.json())
وفيما يلي مثال على النواتج المتوقعة.
Return Code:
200
Expected Outputs:
{'response': [{'hostname': 'ISE-BGL-CFME01-PAN', 'fqdn': 'ISE-BGL-CFME01-PAN.cisco.com', 'ipAddress': '192.168.20.240', 'roles': ['PrimaryAdmin'], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, {'hostname': 'ISE-BGL-CFME02-MNT', 'fqdn': 'ISE-BGL-CFME02-MNT.cisco.com', 'ipAddress': '192.168.21.240', 'roles': ['PrimaryMonitoring'], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, {'hostname': 'ISE-DLC-CFME01-PSN', 'fqdn': 'ISE-DLC-CFME01-PSN.cisco.com', 'ipAddress': '192.168.40.240', 'roles': [], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, {'hostname': 'ISE-DLC-CFME02-PSN', 'fqdn': 'ISE-DLC-CFME02-PSN.cisco.com', 'ipAddress': '192.168.41.240', 'roles': [], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, {'hostname': 'ISE-RTP-CFME01-PAN', 'fqdn': 'ISE-RTP-CFME01-PAN.cisco.com', 'ipAddress': '192.168.10.240', 'roles': ['SecondaryAdmin'], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, {'hostname': 'ISE-RTP-CFME02-MNT', 'fqdn': 'ISE-RTP-CFME02-MNT.cisco.com', 'ipAddress': '192.168.11.240', 'roles': ['SecondaryMonitoring'], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}], 'version': '1.0.0'}
إسترداد تفاصيل العقدة التي تم نشرها
يقوم واجهة برمجة التطبيقات (API) هذه باسترداد المعلومات التفصيلية لعقدة ISE المحددة.
الخطوة 1: المعلومات المطلوبة لاستدعاء واجهة برمجة تطبيقات (API).
طريقة |
إحضار |
URL |
https://<ISE-pan-IP>/API/v1/deployment/node/<ISE-Node-Hostname> |
بيانات الاعتماد |
إستخدام بيانات اعتماد حساب API المفتوح |
العنوان الرئيسي |
قبول: التطبيق/json
نوع المحتوى: التطبيق/json
|
الخطوة 2: حدد موقع عنوان URL الذي يتم إستخدامه لاسترداد معلومات عقدة ISE المحددة.
API URI
الخطوة 3. هنا مثال على شيفرة بايثون. انسخ المحتوى ولصقه. استبدلت ال ISE ip، username، كلمة. حفظ كملف بايثون لتنفيذه.
تأكد من الاتصال الجيد بين ISE والجهاز الذي يشغل مثال رمز python.
from requests.auth import HTTPBasicAuth
import requests
requests.packages.urllib3.disable_warnings()
if __name__ == "__main__":
url = "https://10.106.33.92/api/v1/deployment/node/ISE-DLC-CFME02-PSN"
headers = {"Accept": "application/json", "Content-Type": "application/json"}
basicAuth = HTTPBasicAuth("ApiAdmin", "Admin123")
response = requests.get(url=url, auth=basicAuth, headers=headers, verify=False)
print("Return Code:")
print(response.status_code)
print("Expected Outputs:")
print(response.json())
وفيما يلي مثال على النواتج المتوقعة.
Return Code:
200
Expected Outputs:
{'response': {'hostname': 'ISE-DLC-CFME02-PSN', 'fqdn': 'ISE-DLC-CFME02-PSN.cisco.com', 'ipAddress': '192.168.41.240', 'roles': [], 'services': ['Session', 'Profiler', 'DeviceAdmin'], 'nodeStatus': 'Connected'}, 'version': '1.0.0'}
استكشاف الأخطاء وإصلاحها
لاستكشاف أخطاء الأخطاء وإصلاحها المتعلقة بواجهات برمجة التطبيقات المفتوحة، قم بتعيين Log Level ل TaskServiceClient إلى DEBUGin Debug Log ConfigurationWindow.
لتمكين تصحيح الأخطاء، انتقل إلى العمليات > أستكشاف الأخطاء وإصلاحها > معالج تصحيح الأخطاء > تكوين سجل الأخطاء > عقدة ISE > قاعدة بيانات<</aService.
تصحيح أخطاء خدمة API
لتنزيل سجلات تصحيح الأخطاء، انتقل إلى العمليات > أستكشاف الأخطاء وإصلاحها > تنزيل السجلات > ISE PAN Node > سجلات تصحيح الأخطاء.
تنزيل سجلات التصحيح