المقدمة
يصف هذا المستند عملية إنشاء أجهزة الوصول إلى الشبكة (NAD) على ISE عبر واجهة برمجة تطبيقات ERS باستخدام PostMan كعميل REST.
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
- ISE (محرك خدمات الهوية)
- ERS (خدمات الراحة الخارجية)
- راحة العملاء مثل Postman، راحة، أرق، وهكذا.
المكونات المستخدمة
تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج التالية:
- حزمة تصحيح Cisco ISE (Identity Services Engine) 3.1 6
- Postman REST Client الإصدار 10.17.4
ملاحظة: يكون الإجراء مماثلا أو متطابقا مع إصدارات ISE الأخرى وعملاء REST. يمكنك إستخدام هذه الخطوات على جميع إصدارات برامج 2.x و 3.x ISE ما لم ينص على خلاف ذلك.
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
التكوين
تمكين ERS (المنفذ 9060)
واجهات برمجة تطبيقات ERS هي واجهات برمجة تطبيقات REST الخاصة ب HTTPS فقط التي تعمل عبر المنفذ 443 والمنفذ 9060. يتم إغلاق المنفذ 9060 بشكل افتراضي، لذلك يلزم فتحه أولا. يتم تقديم مهلة من الخادم إذا لم يقم العملاء الذين يحاولون الوصول إلى هذا المنفذ بتمكين ERS أولا. لذلك، فإن المتطلب الأول هو تمكين ERS من واجهة مستخدم إدارة Cisco ISE.
انتقل إلى إدارة > إعدادات > إعدادات واجهة برمجة التطبيقات وقم بتمكين زر تبديل ERS (قراءة/كتابة).
ملاحظة: تدعم واجهات برمجة التطبيقات (API) لنظام ERS TLS 1.1 و TLS 1.2. لا تدعم واجهات برمجة التطبيقات (APIs) TLS 1.0 بغض النظر عن تمكين TLS 1.0 في نافذة إعدادات الأمان من واجهة المستخدم الرسومية (GUI) Cisco ISE (الإدارة > النظام > الإعدادات > إعدادات الأمان). يرتبط تمكين TLS 1.0 في نافذة إعدادات التأمين ببروتوكول EAP فقط ولا يؤثر على واجهات ERS APIs.
Create ERS admin
قم بإنشاء مسؤول Cisco ISE، وعينت كلمة مرور، وأضفت المستخدم إلى مجموعة الإدارة كمسؤول ERS. يمكنك ترك بقية التكوين فارغة.
إعداد ساعي البريد
قم بتنزيل الإصدار عبر الإنترنت من PostMan أو إستخدامه.
- قم بإنشاء مستخدم وإنشاء مساحة عمل بالنقر فوق إنشاء مساحة عمل ضمن علامة التبويب مساحات العمل.
2. حدد مساحة عمل فارغة وقم بتعيين اسم لمساحة العمل. يمكنك إضافة وصف وجعله عاما. لهذا المثال، تم تحديد Personalis.
بمجرد إنشاء مساحة العمل، يمكنك الآن تكوين مكالمات API.
تفويض ISE SDK و Basic Postman
لتكوين أي مكالمة، قم بالوصول أولا إلى ISE ERS SDK (مجموعة أدوات تطوير البرامج). تقوم هذه الأداة بتجميع القائمة الكاملة لمكالمات API ISE التي يمكن تنفيذها:
- انتقل إلى https://{ise-ip}/ers/sdk.
- سجل الدخول باستخدام بيانات اعتماد مسؤول ISE.
- توسيع وثائق واجهة برمجة التطبيقات.
- قم بالتمرير لأسفل حتى تجد جهاز الشبكة وانقر عليه.
- تحت هذا الخيار، يمكنك الآن العثور على جميع العمليات المتاحة التي يمكنك تنفيذها لأجهزة الشبكة على ISE. حدد إنشاء.
6. يمكنك الآن الاطلاع على التكوين المطلوب لإجراء إستدعاء واجهة برمجة التطبيقات باستخدام XML أو JSON على أي عميل REST بالإضافة إلى مثال إستجابة متوقع.
7. عودة إلى PostMan قم بتكوين المصادقة الأساسية ل ISE. تحت علامة التبويب التخويل، حدد المصادقة الأساسية كنوع المصادقة وأضفت مسوغات مستخدم ISE ERS التي تم إنشاؤها مسبقا على ISE.
ملاحظة: تظهر كلمة المرور كنص واضح ما لم يتم تكوين متغيرات على ساعي البريد.
إنشاء واستخدام XML
قم بإنشاء Testnad1 باستخدام إعدادات RADIUS TACACS و SNMP و TrustSec باستخدام XML.
1. في SDK، ضمن إنشاء، الرؤوس والقوالب المطلوبة لإجراء الاستدعاء بالإضافة إلى الاستجابة المتوقعة.
2. انتقل إلى علامة التبويب الرؤوس وقم بتكوين الرؤوس المطلوبة لاستدعاء API كما هو موضح في SDK. يجب أن يبدو تكوين الرأس كما يلي:
3. انتقل إلى رأس المتن وحدد خام. يتيح لك ذلك لصق قالب XML المطلوب لإنشاء NAD.
4. يبدو قالب XML بهذا الشكل (قم بتغيير القيم كما هو مطلوب):
<?xml version="1.0" encoding="UTF-8"?> <ns0:networkdevice xmlns:ns0="network.ers.ise.cisco.com" xmlns:xs="Schema XML File" xmlns:ns1="ers.ise.cisco.com" xmlns:ers="ers.ise.cisco.com" description="This NAD was added via ERS API" name="TESTNAD1"> <authenticationSettings> <dtlsRequired>true</dtlsRequired> <enableKeyWrap>true</enableKeyWrap> <keyEncryptionKey>1234567890123456</keyEncryptionKey> <keyInputFormat>ASCII</keyInputFormat> <messageAuthenticatorCodeKey>12345678901234567890</messageAuthenticatorCodeKey> <radiusSharedSecret>cisco123</radiusSharedSecret> </authenticationSettings> <coaPort>1700</coaPort> <dtlsDnsName>Domain</dtlsDnsName> <NetworkDeviceIPList> <NetworkDeviceIP> <ipaddress>NAD IP Address</ipaddress> <mask>32</mask> </NetworkDeviceIP> </NetworkDeviceIPList> <NetworkDeviceGroupList> <NetworkDeviceGroup>Location#All Locations#LAB</NetworkDeviceGroup> <NetworkDeviceGroup>Device Type#All Device Types#Access-Layer</NetworkDeviceGroup> </NetworkDeviceGroupList> <profileName>Cisco</profileName> <snmpsettings> <linkTrapQuery>true</linkTrapQuery> <macTrapQuery>true</macTrapQuery> <originatingPolicyServicesNode>Auto</originatingPolicyServicesNode> <pollingInterval>3600</pollingInterval> <roCommunity>aaa</roCommunity> <version>ONE</version> </snmpsettings> <tacacsSettings> <connectModeOptions>ON_LEGACY</connectModeOptions> <sharedSecret>cisco123</sharedSecret> </tacacsSettings> <trustsecsettings> <deviceAuthenticationSettings> <sgaDeviceId>TESTNAD1</sgaDeviceId> <sgaDevicePassword>cisco123</sgaDevicePassword> </deviceAuthenticationSettings> <deviceConfigurationDeployment> <enableModePassword>cisco123</enableModePassword> <execModePassword>cisco123</execModePassword> <execModeUsername>Admin</execModeUsername> <includeWhenDeployingSGTUpdates>true</includeWhenDeployingSGTUpdates> </deviceConfigurationDeployment> <pushIdSupport>false</pushIdSupport> <sgaNotificationAndUpdates> <coaSourceHost>ise3-1test</coaSourceHost> <downlaodEnvironmentDataEveryXSeconds>86400</downlaodEnvironmentDataEveryXSeconds> <downlaodPeerAuthorizationPolicyEveryXSeconds>86400</downlaodPeerAuthorizationPolicyEveryXSeconds> <downloadSGACLListsEveryXSeconds>86400</downloadSGACLListsEveryXSeconds> <otherSGADevicesToTrustThisDevice>false</otherSGADevicesToTrustThisDevice> <reAuthenticationEveryXSeconds>86400</reAuthenticationEveryXSeconds> <sendConfigurationToDevice>false</sendConfigurationToDevice> <sendConfigurationToDeviceUsing>ENABLE_USING_COA</sendConfigurationToDeviceUsing> </sgaNotificationAndUpdates> </trustsecsettings> </ns0:networkdevice>
ملاحظة: من المهم ملاحظة أن الأسطر التالية مطلوبة فقط في حالة تعيين <enableKeyWrap>{false|true}</enableKeyWrap> إلى true. وإلا، يمكن حذف الأمر نفسه من قالب XML:
<keyEncryptionKey>1234567890123456</keyEncryptionKey> <keyInputFormat>ASCII</keyInputFormat> <messageAuthenticatorCodeKey>12345678901234567890</messageAuthenticatorCodeKey>
يمكنك إزالة التكوين الذي لا تطلبه من القالب فقط واترك البيانات التي تحتاج بالفعل إلى إضافتها أثناء إنشاء NAD. على سبيل المثال، يوجد هنا نفس القالب ولكن فقط مع تكوين TACACS. بغض النظر عن التكوين المطلوب، تأكد من أن القالب ينتهي ب </ns0:networkdevice>.
<?xml version="1.0" encoding="UTF-8"?> <ns0:networkdevice xmlns:ns0="network.ers.ise.cisco.com" xmlns:xs="Schema XML File" xmlns:ns1="ers.ise.cisco.com" xmlns:ers="ers.ise.cisco.com" description="This NAD was added via ERS API" name="TESTNAD1"> <NetworkDeviceIPList> <NetworkDeviceIP> <ipaddress>NAD IP Address</ipaddress> <mask>32</mask> </NetworkDeviceIP> </NetworkDeviceIPList> <NetworkDeviceGroupList> <NetworkDeviceGroup>Location#All Locations#LAB</NetworkDeviceGroup> <NetworkDeviceGroup>Device Type#All Device Types#Access-Layer</NetworkDeviceGroup> </NetworkDeviceGroupList> <profileName>Cisco</profileName> <tacacsSettings> <connectModeOptions>ON_LEGACY</connectModeOptions> <sharedSecret>cisco123</sharedSecret> </tacacsSettings> </ns0:networkdevice>
5. الصق قالب XML للخام تحت رأس المتن.
6. حدد POST كطريقة، الصق https://{ISE-ip}/ers/config/networkDevice وانقر فوق إرسال. إذا تم تكوين كل شيء بشكل صحيح، يجب أن ترى رسالة تم إنشاؤها بواسطة 201 والنتيجة فارغة.
7. تأكد مما إذا كان NAD قد تم إنشاؤه عن طريق إجراء مكالمة GET ل NAD، أو عن طريق التحقق من قائمة ISE NAD.
إنشاء واستخدام JSON
قم بإنشاء Testnad2باستخدام إعدادات RADIUS TACACS و SNMP و TrustSec باستخدام JSON.
1. في SDK، ضمن إنشاء، الرؤوس والقوالب المطلوبة لإجراء الاستدعاء بالإضافة إلى الاستجابة المتوقعة.
2. انتقل إلى علامة التبويب الرؤوس وقم بتكوين الرؤوس المطلوبة لاستدعاء API كما هو موضح في SDK. يجب أن يبدو تكوين الرأس كما يلي:
3. انتقل إلى رأس المتن وحدد خام. يتيح لك ذلك لصق قالب JSON المطلوب لإنشاء NAD.
4. يجب أن يبدو قالب JSON بهذا الشكل (قم بتغيير القيم كما هو مطلوب):
{ "NetworkDevice": { "name": "TESTNAD2", "description": "This NAD was added via ERS API", "authenticationSettings": { "radiusSharedSecret": "cisco123", "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": "TESTNAD2", "sgaDevicePassword": "cisco123" }, "sgaNotificationAndUpdates": { "downlaodEnvironmentDataEveryXSeconds": 86400, "downlaodPeerAuthorizationPolicyEveryXSeconds": 86400, "reAuthenticationEveryXSeconds": 86400, "downloadSGACLListsEveryXSeconds": 86400, "otherSGADevicesToTrustThisDevice": false, "sendConfigurationToDevice": false, "sendConfigurationToDeviceUsing": "ENABLE_USING_COA", "coaSourceHost": "ise3-1test" }, "deviceConfigurationDeployment": { "includeWhenDeployingSGTUpdates": true, "enableModePassword": "cisco123", "execModePassword": "cisco123", "execModeUsername": "Admin" }, "pushIdSupport": "false" }, "tacacsSettings": { "sharedSecret": "cisco123", "connectModeOptions": "ON_LEGACY" }, "profileName": "Cisco", "coaPort": 1700, "dtlsDnsName": "Domain", "NetworkDeviceIPList": [ { "ipaddress": "NAD IP Adress", "mask": 32 } ], "NetworkDeviceGroupList": [ "Location#All Locations", "Device Type#All Device Types" ] } }
ملاحظة: من المهم ملاحظة أن الأسطر التالية مطلوبة فقط في حالة تعيين enableKeyWrap:{false|true}، إلى true. وإلا، يمكن حذف الأمر نفسه من قالب JSON:
"keyEncryptionKey": "1234567890123456", "messageAuthenticatorCodeKey": "12345678901234567890", "keyInputFormat": "ASCII" يمكنك أيضا إزالة التكوين الذي لا تطلبه من القالب، واترك البيانات التي تحتاج بالفعل إلى إضافتها أثناء إنشاء NAD.
5. الصق قالب JSON ل raw أسفل رأس المتن.
6. حدد POST كطريقة، الصق https://{ISE-ip}/ers/config/networkDevice وانقر فوق إرسال. إذا تم تكوين كل شيء بشكل صحيح، يجب أن ترى الرسالة التي تم إنشاؤها عام 201 والنتيجة فارغة.
7. تأكد مما إذا كان NAD قد تم إنشاؤه عن طريق إجراء مكالمة GET ل NAD، أو عن طريق التحقق من قائمة ISE NAD.
التحقق من الصحة
إذا كنت قادرا على الوصول إلى صفحة واجهة المستخدم الرسومية (GUI) لخدمة API، على سبيل المثال، https://{iseip}:{port}/api/swagger-ui/index.html أو https://{iseip}:9060/ers/sdk، فهذا يعني أن خدمة API تعمل كما هو متوقع.
استكشاف الأخطاء وإصلاحها
- وتتم مراجعة جميع عمليات REST ويتم تسجيل السجلات في سجلات النظام.
- لاستكشاف المشاكل المتعلقة بواجهات برمجة التطبيقات المفتوحة وإصلاحها، قم بتعيين مستوى السجل لمكون apiservice إلى debug في نافذة تكوين سجل تصحيح الأخطاء.
- لاستكشاف المشاكل المتعلقة بواجهات برمجة تطبيقات ERS وإصلاحها، قم بتعيين مستوى السجل لمكون ers على تصحيح الأخطاء في نافذة تكوين سجل تصحيح الأخطاء. لعرض هذا الإطار، انتقل إلى واجهة المستخدم الرسومية Cisco ISE، انقر فوق رمز القائمة واختر عمليات > أستكشاف الأخطاء وإصلاحها > معالج تصحيح الأخطاء > تكوين سجل الأخطاء.
- يمكنك تنزيل السجلات من نافذة تنزيل السجلات. لعرض هذا الإطار، انتقل إلى واجهة المستخدم الرسومية Cisco ISE، انقر فوق أيقونة القائمة واختر العمليات > أستكشاف الأخطاء وإصلاحها > سجلات التنزيل.
- يمكنك إختيار تنزيل إما حزمة دعم من علامة التبويب حزمة الدعم بالنقر فوق الزر تنزيل ضمن علامة التبويب، أو تنزيل سجلات تصحيح الأخطاء خدمة API من علامة التبويب تصحيح الأخطاء" بالنقر فوق قيمة ملف السجل لسجل تصحيح أخطاء خدمة API.