简介
本文档介绍使用PostMan作为REST客户端通过ERS API在ISE上创建网络访问设备(NAD)的过程。
先决条件
要求
Cisco 建议您了解以下主题:
- ISE(身份服务引擎)
- ERS(外部RESTful服务)
- REST的客户喜欢邮递员、REST、失眠等。
使用的组件
本文档中的信息基于以下软件版本:
- 思科ISE(身份服务引擎)3.1补丁6
- Postman REST客户端v10.17.4
注意:其他ISE版本和REST客户端的步骤相似或相同。除非另有说明,否则您可以在所有2.x和3.x ISE软件版本上使用这些步骤。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
启用ERS(端口9060)
ERS API是在端口443和端口9060上运行的仅HTTPS的REST API。端口9060默认关闭,因此需要先将其打开。 如果尝试访问此端口的客户端不首先启用ERS,则会出现服务器超时。因此,第一个要求是从思科ISE管理员UI启用ERS。
导航到管理>设置> API设置,并启用ERS(读/写)切换按钮。
注:ERS API支持TLS 1.1和TLS 1.2。ERS API不支持TLS 1.0,无论在Cisco ISE GUI的Security Settings窗口中启用TLS 1.0(Administration > System > Settings > Security Settings)。在“安全设置”窗口中启用TLS 1.0仅与EAP协议相关,不会影响ERS API。
创建ERS管理员
创建思科ISE管理员,分配密码,并将用户作为ERS管理员添加到管理员组。您可以将配置的其余部分留空。
设置Postman
下载或使用在线版Postman。
- 通过点击“工作区”(Workspaces)选项卡下的“创建工作区”(Create Workspace)创建用户和工作空间。
2.选择空白工作区,并为工作区指定名称。您可以添加描述并将其公开。 在本例中,选择了Personalis。
创建工作空间后,即可配置API调用。
ISE SDK和基本Postman授权
要配置任何呼叫,请首先访问ISE ERS SDK(软件开发套件)。此工具编译ISE可以执行的所有API调用列表:
- 导航到https://{ise-ip}/ers/sdk。
- 使用您的ISE管理员凭证登录。
- 展开API文档。
- 向下滚动,直到找到Network Device并单击它。
- 在此选项下,您现在可找到可在ISE上为网络设备执行的所有可用操作。选择创建。
6.现在,您可以看到在任何Rest客户端上使用XML或JSON执行API调用所需的配置,以及预期的响应示例。
7.返回到Postman,将基本身份验证配置为ISE。在Authorization选项卡下,选择Basic Auth作为身份验证类型,并添加之前在ISE中创建的ISE ERS用户凭证。
注意:除非在Postman上配置了变量,否则密码显示为明文。
使用XML创建NAD
使用XML创建具有RADIUS TACACS、SNMP和TrustSec设置的TESTNAD1。
1.在SDK的创建下,是执行呼叫所需的标头和模板,以及预期的响应。
2.移至Headers选项卡,并为API调用配置所需的报头,如SDK中所示。报头配置必须如下所示:
3.移至“正文”题头,然后选择“原始”。这允许您粘贴创建NAD所需的XML模板。
4. XML模板如下所示(根据需要更改值):
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">
true
true
1234567890123456
ASCII
12345678901234567890
cisco123
1700
Domain
NAD IP Address
32
Location#All Locations#
LAB
Device Type#All Device Types#
Access-Layer
Cisco
true
true
Auto
3600
aaa
ONE
ON_LEGACY
cisco123
TESTNAD1
cisco123
cisco123
cisco123
Admin
true
false
ise3-1test
86400
86400
86400
false
86400
false
ENABLE_USING_COA
注意:必须注意,只有当<enableKeyWrap>{false|true}</enableKeyWrap>设置为true时,才需要下一行。否则,可以从XML模板中删除相同内容:
1234567890123456
ASCII
12345678901234567890
您可以删除模板中不需要的配置,并保留您在创建NAD期间实际需要添加的数据。例如,这是相同的模板,但仅使用TACACS配置。无论所需的配置如何,请确保模板以</ns0:networkdevice>结尾。
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">
NAD IP Address
32
Location#All Locations#
LAB
Device Type#All Device Types#
Access-Layer
Cisco
ON_LEGACY
cisco123
5.将raw的XML模板粘贴到Body标题下。
6.选择POST作为方法,粘贴https://{ISE-ip}/ers/config/networkdevice,然后单击Send。 如果所有内容都配置正确,您必须看到201 Created消息且结果为空。
7.确认是否通过执行NAD的GET调用,或通过检查ISE NAD列表创建了NAD。
使用JSON创建NAD
使用JSON创建具有RADIUS TACACS、SNMP和TrustSec设置的TESTNAD2。
1.在SDK的创建下,是执行呼叫所需的标头和模板,以及预期的响应。
2.移至Headers选项卡,并为API调用配置所需的报头,如SDK中所示。报头配置必须如下所示:
3.移至“正文”题头,然后选择“原始”。这允许您粘贴创建NAD所需的JSON模板。
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模板粘贴到Body标题下。
6.选择POST作为方法,粘贴https://{ISE-ip}/ers/config/networkdevice,然后单击Send。 如果所有内容都配置正确,您必须看到201 Created消息且结果为空。
7.确认是否通过执行GET呼叫创建NAD,或通过检查ISE NAD列表创建NAD。
验证
如果能够访问API服务GUI页面,例如https://{iseip}:{port}/api/swagger-ui/index.html或https://{iseip}:9060/ers/sdk,则表示API服务按预期工作。
故障排除
- 所有REST操作都经过审核,并且日志记录在系统日志中。
- 要排除与开放式API相关的问题,请在调试日志配置窗口中将apiservice组件的日志级别设置为DEBUG。
- 要排除与ERS API相关的问题,请在Debug Log Configuration窗口中将ers组件的Log Level设置为DEBUG。要查看此窗口,导航到Cisco ISE GUI,点击菜单图标并选择操作>故障排除>调试向导>调试日志配置。
- 您可以从Download Logs(下载日志)窗口下载日志。要查看此窗口,导航到Cisco ISE GUI,点击菜单图标并选择操作>故障排除>下载日志。
- 您可以选择从Support Bundle选项卡下载支持捆绑包,方法是单击该选项卡下的Download按钮,或通过单击api-service debug log日志的Log File值,从Debug Logs选项卡下载api-service debug logs。