简介
本文档介绍使用openAPI管理思科身份服务引擎(ISE)部署的步骤。
背景
在现代企业网络中,安全和管理变得越来越复杂和重要。为了应对这些挑战,从Cisco ISE 3.1开始,OpenAPI格式提供较新的API,可提供强大的网络访问控制和策略管理功能。管理员现在可以通过OpenAPI更有效地检查ISE部署,并主动采取行动,而不是等待最终用户提交问题报告。
先决条件
要求
Cisco 建议您了解以下主题:
- 思科身份服务引擎(ISE)
- REST API
- Python
使用的组件
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
配置
网络图
拓扑
ISE上的配置
第1步:添加Open API admin帐户
要添加API管理员,请导航到管理>系统>管理员访问权限>管理员>管理员用户>添加。
API管理员
第2步:在ISE上启用开放式API
默认情况下,在ISE上禁用开放式API。要启用它,请导航到管理>System >设置> API设置> API服务设置。切换Open API选项。Click Save.
启用OpenAPI
第3步:探索ISE开放式API
导航到管理>系统>设置> API设置>概述。点击打开API访问链接。
访问OpenAPI
Python示例
检索集群中部署的所有节点的列表
API列出集群中部署的所有节点。
第1步:API调用的必需信息。
第2步:查找用于检索部署信息的URL。
API URI
第3步:以下是Python代码示例。复制并粘贴内容。替换ISE IP、用户名和密码。另存为要执行的python文件。
确保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调用的必需信息。
方法 |
GET |
URL |
https://<ISE-PAN-IP>/api/v1/deployment/node/<ISE-Node-Hostname> |
凭证 |
使用Open API帐户凭证 |
信头 |
接受:application/json
内容类型:application/json
|
第2步:查找用于检索特定ISE节点信息的URL。
API URI
第三步:以下是Python代码的示例。复制并粘贴内容。替换ISE IP、用户名和密码。另存为要执行的python文件。
确保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'}
故障排除
要排除与开放式API相关的问题,请在调试日志配置窗口中将theapiservicecomponent 的日志级别设置为DEBUG。
要启用调试,请导航到操作>故障排除>调试向导>调试日志配置> ISE节点> apiservice。
API服务调试
要下载调试日志,请导航到操作>故障排除>下载日志> ISE PAN节点>调试日志。
下载调试日志