المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

معلومات أساسية

التكوين

الرسم التخطيطي للشبكة

التكوين على ISE

أمثلة بايثون

Device Admin - قائمة مجموعات النهج

Device Admin - الحصول على قواعد المصادقة

مسؤول الجهاز - الحصول على قواعد التخويل

الوصول إلى الشبكة - قائمة بمجموعات السياسات

الوصول إلى الشبكة - الحصول على قواعد المصادقة

الوصول إلى الشبكة - الحصول على قواعد التخويل

استكشاف الأخطاء وإصلاحها

المقدمة

يصف هذا المستند إجراء إستخدام OpenAPI لإدارته محرك خدمات الهوية من Cisco (ISE) السياسة.

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- محرك خدمات الهوية من Cisco (ISE)

- واجهة برمجة تطبيقات REST

- بايثون

المكونات المستخدمة

- ISE 3.3

- بايثون 3.10.0

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

معلومات أساسية

من Cisco ISE 3.1 فصاعدا، تتوفر واجهات برمجة التطبيقات (API) الأحدث بتنسيق OpenAPI. تعمل سياسة الإدارة على تحسين أمان الشبكة وإدارتها من خلال تحسين قابلية التشغيل البيني وتحسين كفاءة التشغيل التلقائي وتعزيز الأمان وتشجيع الابتكار وتقليل التكاليف. وتسمح هذه السياسة للإدارة المتكاملة للنظم بالاندماج بسلاسة مع النظم الأخرى، وتحقيق التكوين والإدارة المؤتمتين، وتوفير التحكم في الوصول على نحو محبب، وتشجيع الابتكار من جانب طرف ثالث، وتبسيط عمليات الإدارة، وبالتالي تخفيض تكاليف الصيانة وزيادة العائد الإجمالي على الاستثمار.

التكوين

الرسم التخطيطي للشبكة

المخطط

التكوين على ISE

الخطوة 1. إضافة حساب مسؤول OpenAPI.

لإضافة مسؤول واجهة برمجة تطبيقات، انتقل إلى الإدارة > النظام > الوصول إلى المسؤول > المسؤولون > مستخدمو المسؤول > إضافة.

مسؤول API

الخطوة 2. تمكين OpenAPI على ISE.

يتم تعطيل واجهة برمجة التطبيقات المفتوحة بشكل افتراضي على ISE. لتمكينها، انتقل إلى الإدارة > النظام > الإعدادات > إعدادات واجهة برمجة التطبيقات > إعدادات خدمة API. تبديل خيارات OpenAPI. انقر حفظ.

تمكين OpenAPI

الخطوة 3. استكشف واجهة ISE OpenAPI.

انتقل إلى الإدارة > النظام > الإعدادات > إعدادات واجهة برمجة التطبيقات > نظرة عامة. انقر فوق OpenAPI لزيارة الارتباط.

زيارة OpenAPI

أمثلة بايثون

Device Admin - قائمة مجموعات النهج

يقوم API هذا باسترداد معلومات مجموعات نهج مسؤول الجهاز.

الخطوة 1. المعلومات المطلوبة لمكالمة API.

طريقة

إحضار

URL

https://<ISE-pan-IP>/api/v1/policy/device-admin/policy-set

بيانات الاعتماد

إستخدام بيانات اعتماد حساب OpenAPI.

العنوان الرئيسي

قبول :  التطبيق/json

المحتوى - النوع :  التطبيق/json

الخطوة 2. حدد موقع URL الذي يتم إستخدامه لاسترداد معلومات مجموعات نهج إدارة الجهاز.

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/policy/device-admin/policy-set"

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: {'version': '1.0.0', 'response': [{'default': True, 'id': '41ed8579-429b-42a8-879e-61861cb82bbf', 'name': 'Default', 'description': 'Tacacs Default policy set', 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': None, 'serviceName': 'Default Device Admin', 'isProxy': False, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/device-admin/policy-set/41ed8579-429b-42a8-879e-61861cb82bbf', 'type': 'application/json'}}]}

DClient Admin - الحصول على قواعد المصادقة

يقوم API هذا باسترداد قواعد المصادقة الخاصة بمجموعة نهج معينة.

الخطوة 1. المعلومات المطلوبة لمكالمة API.

طريقة

إحضار

URL

https://<ISE-pan-IP>/API/v1/policy/device-admin/policy-set/<id-of-policy-set>/authentication

بيانات الاعتماد

إستخدام بيانات اعتماد حساب OpenAPI.

العنوان الرئيسي

قبول :  التطبيق/json

المحتوى - النوع :  التطبيق/json

الخطوة 2. حدد موقع URL الذي يتم إستخدامه لاسترداد معلومات قاعدة المصادقة.

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/policy/device-admin/policy-set/41ed8579-429b-42a8-879e-61861cb82bbf/authentication"

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())

ملاحظة: يتم الحصول على المعرف من مخرجات واجهة برمجة التطبيقات (API) في الخطوة 3 من مسؤول الجهاز - قائمة مجموعات السياسات. على سبيل المثال، 41ed8579-429b-42a8-879e-61861cb82bbf هي مجموعة السياسات الافتراضية من TACACS.

وهذا مثال على النواتج المتوقعة.

Return Code: 200 Expected Outputs: {'version': '1.0.0', 'response': [{'rule': {'default': True, 'id': '73461597-0133-45ce-b4cb-6511ce56f262', 'name': 'Default', 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': None}, 'identitySourceName': 'All_User_ID_Stores', 'ifAuthFail': 'REJECT', 'ifUserNotFound': 'REJECT', 'ifProcessFail': 'DROP', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/device-admin/policy-set/41ed8579-429b-42a8-879e-61861cb82bbf/authentication/73461597-0133-45ce-b4cb-6511ce56f262', 'type': 'application/json'}}]}

مسؤول الجهاز - الحصول على قواعد التخويل

يقوم API هذا باسترداد قواعد التخويل الخاصة بمجموعة نهج معينة.

الخطوة 1. المعلومات المطلوبة لمكالمة API.

طريقة

إحضار

URL

https://<ISE-pan-IP>/api/v1/policy/device-admin/policy-set/<id-of-policy-set>/authorization

بيانات الاعتماد

إستخدام بيانات اعتماد حساب OpenAPI.

العنوان الرئيسي

قبول :  التطبيق/json

المحتوى - النوع :  التطبيق/json

الخطوة 2. حدد موقع URL الذي يتم إستخدامه لاسترداد معلومات قاعدة التخويل.

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/policy/device-admin/policy-set/41ed8579-429b-42a8-879e-61861cb82bbf/authorization" 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())

ملاحظة: يتم الحصول على المعرف من مخرجات واجهة برمجة التطبيقات (API) في الخطوة 3 من مسؤول الجهاز - قائمة مجموعات السياسات. على سبيل المثال، 41ed8579-429b-42a8-879e-61861cb82bbf هي مجموعة السياسات الافتراضية من TACACS.

وهذا مثال على النواتج المتوقعة.

Return Code:

200

Expected Outputs:

{'version': '1.0.0', 'response': [{'rule': {'default': True, 'id': '39d9f546-e58c-4f79-9856-c0a244b8a2ae', 'name': 'Default', 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': None}, 'commands': ['DenyAllCommands'], 'profile': 'Deny All Shell Profile', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/device-admin/policy-set/41ed8579-429b-42a8-879e-61861cb82bbf/authorization/39d9f546-e58c-4f79-9856-c0a244b8a2ae', 'type': 'application/json'}}]}

الوصول إلى الشبكة - قائمة بمجموعات السياسات

يقوم واجهة برمجة التطبيقات (API) هذه باسترداد مجموعات سياسات الوصول إلى الشبكة لعمليات نشر ISE.

الخطوة 1. المعلومات المطلوبة لمكالمة API.

طريقة

إحضار

URL

https://<ISE-pan-IP>/API/V1/policy/network-access/policy-set

بيانات الاعتماد

إستخدام بيانات اعتماد حساب OpenAPI.

العنوان الرئيسي

قبول :  التطبيق/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/policy/network-access/policy-set"

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: {'version': '1.0.0', 'response': [{'default': False, 'id': 'ba71a417-4a48-4411-8bc3-d5df9b115769', 'name': 'BGL_CFME02-FMC', 'description': None, 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': {'link': None, 'conditionType': 'ConditionAndBlock', 'isNegate': False, 'children': [{'link': None, 'conditionType': 'ConditionAttributes', 'isNegate': False, 'dictionaryName': 'DEVICE', 'attributeName': 'Location', 'operator': 'equals', 'dictionaryValue': None, 'attributeValue': 'All Locations#BGL_CFME02'}, {'link': None, 'conditionType': 'ConditionAttributes', 'isNegate': False, 'dictionaryName': 'DEVICE', 'attributeName': 'Device Type', 'operator': 'equals', 'dictionaryValue': None, 'attributeValue': 'All Device Types#FMCv'}]}, 'serviceName': 'Default Network Access', 'isProxy': False, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769', 'type': 'application/json'}}, {'default': False, 'id': 'f7d82b2d-1007-44f6-961b-efa721d6ebec', 'name': 'SPRT', 'description': None, 'hitCounts': 0, 'rank': 1, 'state': 'enabled', 'condition': {'link': None, 'conditionType': 'ConditionAttributes', 'isNegate': False, 'dictionaryName': 'DEVICE', 'attributeName': 'Device Type', 'operator': 'equals', 'dictionaryValue': None, 'attributeValue': 'All Device Types#SPRT'}, 'serviceName': 'Default Network Access', 'isProxy': False, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/f7d82b2d-1007-44f6-961b-efa721d6ebec', 'type': 'application/json'}}, {'default': True, 'id': '467f6a69-344d-407f-81a4-e87c5dc7e438', 'name': 'Default', 'description': 'Default policy set', 'hitCounts': 0, 'rank': 2, 'state': 'enabled', 'condition': None, 'serviceName': 'Default Network Access', 'isProxy': False, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/467f6a69-344d-407f-81a4-e87c5dc7e438', 'type': 'application/json'}}]}

الوصول إلى الشبكة - الحصول على قواعد المصادقة

يقوم API هذا باسترداد قواعد المصادقة الخاصة بمجموعة نهج معينة.

الخطوة 1. المعلومات المطلوبة لمكالمة API.

طريقة

إحضار

URL

https://<ISE-pan-IP>/API/v1/policy/network-access/policy-set/<id-of-policy-set>/authentication

بيانات الاعتماد

إستخدام بيانات اعتماد حساب OpenAPI.

العنوان الرئيسي

قبول :  التطبيق/json

المحتوى - النوع :  التطبيق/json

الخطوة 2. حدد موقع URL الذي يتم إستخدامه لاسترداد معلومات قاعدة المصادقة.

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/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769/authentication"

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())

ملاحظة: يستند المعرف إلى مخرجات واجهة برمجة التطبيقات في الخطوة 3 من الوصول إلى الشبكة - قائمة بمجموعات السياسات. على سبيل المثال، ba71a417-4a48-4411-8bc3-d5df9b115769 هي BGL_CFME02-FMC.

وهذا مثال على النواتج المتوقعة.

Return Code: 200 Expected Outputs: {'version': '1.0.0', 'response': [{'rule': {'default': True, 'id': '03875777-6c98-4114-a72e-a3e1651e533a', 'name': 'Default', 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': None}, 'identitySourceName': 'S.H.I.E.L.D', 'ifAuthFail': 'REJECT', 'ifUserNotFound': 'REJECT', 'ifProcessFail': 'DROP', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769/authentication/03875777-6c98-4114-a72e-a3e1651e533a', 'type': 'application/json'}}]}

الوصول إلى الشبكة - الحصول على قواعد التخويل

يقوم API هذا باسترداد قواعد التخويل الخاصة بمجموعة نهج معينة.

الخطوة 1. المعلومات المطلوبة لمكالمة API.

طريقة

إحضار

URL

https://<ISE-pan-IP>/API/v1/policy/network-access/policy-set/<id-of-policy-set>/authorization

بيانات الاعتماد

إستخدام بيانات اعتماد حساب OpenAPI.

العنوان الرئيسي

قبول :  التطبيق/json

المحتوى - النوع :  التطبيق/json

الخطوة 2. حدد موقع URL الذي يتم إستخدامه لاسترداد معلومات قاعدة التخويل.

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/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769/authorization"

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())

ملاحظة: يستند المعرف إلى مخرجات واجهة برمجة التطبيقات في الخطوة 3 من الوصول إلى الشبكة - قائمة مجموعات السياسات. على سبيل المثال، BA71a417-4a48-4411-8bc3-d5df9b115769 هو BGL_CFME02-FMC.

وهذا مثال على النواتج المتوقعة.

Return Code: 200 Expected Outputs: {'version': '1.0.0', 'response': [{'rule': {'default': False, 'id': 'bc67a4e5-9000-4645-9d75-7c2403ca22ac', 'name': 'FMC Admin', 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': {'link': None, 'conditionType': 'ConditionAttributes', 'isNegate': False, 'dictionaryName': 'S.H.I.E.L.D', 'attributeName': 'ExternalGroups', 'operator': 'equals', 'dictionaryValue': None, 'attributeValue': 'cisco.com/Cisco/Lab/Groups/FmcAdmin'}}, 'profile': ['FMC-BGL_CFME02-Admin'], 'securityGroup': None, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769/authorization/bc67a4e5-9000-4645-9d75-7c2403ca22ac', 'type': 'application/json'}}, {'rule': {'default': True, 'id': 'e9f3034c-b768-4479-b6c3-3bb64bb6722c', 'name': 'Default', 'hitCounts': 0, 'rank': 1, 'state': 'enabled', 'condition': None}, 'profile': ['DenyAccess'], 'securityGroup': None, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769/authorization/e9f3034c-b768-4479-b6c3-3bb64bb6722c', 'type': 'application/json'}}]}

استكشاف الأخطاء وإصلاحها

لاستكشاف المشاكل المتعلقة ب OpenAPIs وإصلاحها، قم بتعيين مستوى السجل ل TaskServiceClient إلى DEBUGin Debug Log ConfigurationWindow.

لتمكين تصحيح الأخطاء، انتقل إلى العمليات > أستكشاف الأخطاء وإصلاحها > معالج تصحيح الأخطاء > تكوين سجل الأخطاء > عقدة ISE > ميزة التحكم.

تصحيح أخطاء خدمة API

لتنزيل ملف سجل التصحيح، انتقل إلى العمليات > أستكشاف الأخطاء وإصلاحها > سجلات التنزيل > عقدة ISE PAN > سجلات التصحيح.

تنزيل سجلات التصحيح