简介
本文档介绍如何使用Open API配置思科身份服务引擎3.3 pxGrid Context-in。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科身份服务引擎(ISE)3.3
- 高级REST API
使用的组件
本文档中的信息基于以下软件和硬件版本:
- 思科ISE 3.3
- Insomnia REST API客户端
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
通过REST API提供pxGrid情景传入解决方案。这是因为Context-In pubsub模型在分析和授权策略中使用自定义属性方面存在一些限制。
自定义属性是用户定义的属性,不通过常规网络探测作为终端数据输入。在ISE 3.3之前,输入自定义属性值作为终端数据的方法主要有两种。
- pxGrid Context-In资产主题,其中ISE充当消费者,使用由外部第三方产品发布的终端数据。
- 终端可扩展RESTful服务(ERS)创建/更新API。
这两个通道都限制在分析和授权策略中使用自定义属性。
初始步骤
在ISE上启用开放式API
默认情况下,在ISE上禁用打开API。要启用它,请导航至 Administration > System > API Settings > API Service Settings
.切换Open API选项并单击Save。
启用开放式API
在ISE上启用分析实施的自定义属性
默认情况下,在ISE上禁用分析强制的自定义属性。要启用它,请导航至 Work Centers > Profiler > Settings > Profiler Settings
.启用分析实施的自定义属性。Click Save.
启用分析实施的自定义属性
注意:“分析实施的自定义属性”(Custom Attribute for Profiling Enforcement)标志指明如果修改了任何自定义属性,将会执行自动重新分析操作。
Swagger用户界面
要访问ISE上的所有开放式API定义,请导航至 Administration > System > Settings > API Settings
并点击“有关ISE开放式API的详细信息,请访问:”。
本文档中使用的定义的URL为:
- 自定义属性:https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=CustomAttributes
- 终端:https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=终端
Swagger用户界面
使用开放式API配置终端自定义属性
创建终端自定义属性
要创建终端自定义属性,必须为其提供名称和类型。
可以使用的类型包括:
方法 |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint-custom-attribute |
认证类型 |
基本 |
凭证 |
使用Open API帐户凭证 |
信头 |
接受:应用/json Content-Type:application/json |
正文 |
{ "attributeName": "DeviceType", "attributeType": "String" } |
正文:
正文终结点自定义属性
身份验证:
身份验证终端自定义属性
标头:
报头终端自定义属性
预期输出:
预期输出终端自定义属性
验证自定义属性创建
从ISE,导航至 Administration > Identity Management > Settings > Endpoint Custom Attributes
.验证属性是否已创建。
终端自定义属性GUI
注意:可以手动添加终端自定义属性。从ISE,导航至 Administration > Identity Management > Settings > Endpoint Custom Attributes
.单击+,然后输入属性名称,然后选择类型。
适用于单个终端的情景输入API
分析自定义属性的策略
从ISE,导航至 Work Centers > Profiler > Profiling Policies
. 点击 Add
.
输入 Name
分析策略的。
低于 Rules
,导航至 Attributes > Create New Condition > CUSTOMATTRIBUTE
.选择创建的自定义属性,选择运算符,然后输入要匹配的值。单击“Submit”。
在本示例中,使用CUSTOMATTRIBUTE_DeviceType定义DeviceTypeA分析策略。
分析器策略
创建终端
在本示例中,终端具有mac地址 94:DA:5F:96:74:63
并创建设置为A的DeviceType。
方法 |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint |
认证类型 |
基本 |
凭证 |
使用Open API帐户凭证 |
信头 |
接受:应用/json Content-Type:application/json |
正文 |
{ "name": "94:DA:5F:96:74:63", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:63", "portalUser": "", "profileId": "", "ipAddress": null, "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false } |
正文:
正文终结点
身份验证:
身份验证终端
标头:
报头端点
预期输出:
预期输出终结点
验证终端创建
从ISE,导航至 Context Visibility > Endpoints
.使用在Endpoint Profile列下创建的分析策略的名称进行过滤。
情景可视性DeviceTypeA
更新终端
要通过开放式API更新终端,URL路径需要参数值。 此参数可以是终端的ID或MAC地址。
在本示例中,新的分析策略 DeviceTypeB
定义该属性是为了将自定义属性DeviceType更新为B,并将值设置为MAC地址。
方法 |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/{value} |
认证类型 |
基本 |
凭证 |
使用Open API帐户凭证 |
信头 |
接受:应用/json Content-Type:application/json |
正文 |
{ "name": "94:DA:5F:96:74:63", "customAttributes": {"DeviceType":"B"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:63", "portalUser": "", "profileId": "", "ipAddress": null, "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false } |
正文:
正文更新终结点
身份验证:
身份验证更新终结点
标头:
信头更新终端
预期输出:
预期输出更新终结点
验证终端更新
从ISE,导航至 Context Visibility > Endpoints
.使用下创建的分析策略的名称进行过滤 Endpoint Profile
列.
情景可视性DeviceTypeB
Context-In API批量
使用终端身份组的授权策略配置
从ISE,导航至 Policy > Policy Sets > Select a Policy Set > Authorization Policy
. 点击任何授权策略中的齿轮图标,然后选择插入。
为规则指定名称并添加新条件以打开Condition Studio。
添加新属性并导航至 Identity Group > Name > CONTAINS > Select the Endpoint Profile > USE
.
选择配置文件作为条件的结果。点击 保存.
在本示例中,DeviceTypeA是规则的名称。
策略集
批量更新终端
要更改不同终端的属性,需要批量API调用。
在本示例中,来自不同终端的Radius请求没有任何自定义属性,并且终端配置文件设置为Unknown。
情景可视性未知配置文件
方法 |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/bulk |
认证类型 |
基本 |
凭证 |
使用Open API帐户凭证 |
信头 |
接受:应用/json Content-Type:application/json |
正文 |
[ { "name": "94:DA:5F:96:74:61", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:61", "portalUser": "", "profileId": "", "ipAddress": "94:DA:5F:96:74:61", "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false }, { "name": "94:DA:5F:96:74:62", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:62", "portalUser": "", "profileId": "", "ipAddress": "10.218.185.96", "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false },....... ] |
正文:
主体终端批量
身份验证:
身份验证终端批量
标头:
报头端点批量
预期输出:
预期输出终端批量
验证终端批量更新
从ISE,导航至 Context Visibility > Endpoints
.使用在Endpoint Profile列下创建的分析策略的名称进行过滤。
情景可视性设备类型A终端配置文件
对于终端,要使用正确的授权策略DeviceTypeA,终端必须重新进行身份验证。
情景可视性设备A类型授权策略
故障排除
本部分提供可用于对配置进行故障排除的信息。
从ISE,导航至 Operation > Troubleshoot > Debug Wizard > Debug Log Configuration
. 选择您的主管理节点(PAN),然后点击Edit。
过滤Component Nameby API服务并选择所需的日志级别。点击Save。
Debug Level Configuration Open API
admin#show logging application api-service.log
- 在ISE GUI上,导航至
Operations > Troubleshoot > Download Logs > Select ISE PAN > Debug log > Debug Log Type > Application Logs
.下载的压缩文件 api-service.log
.
- API响应代码及其可能的含义:
- 200(OK):表示开放式API成功执行了所需的操作。
- 201(Created):表示资源已创建且请求成功。
- 400(错误请求):服务器无法处理该请求。识别由于请求语法格式错误、参数无效等导致的客户端错误。阅读消息详细信息(如果可用)。
- 401(未授权):这表示操作使用错误凭证或无凭证执行,或者帐户无权执行此操作。
- 403(已禁止):这表示服务器能够理解请求,但未获得授权。
- 404(未找到):这表示服务器找不到请求的资源。
- 500(内部服务器错误):表示服务器端出现问题。登录ISE有助于了解原因。