此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍使用OpenAPI进行管理的步骤 思科身份服务引擎(ISE) 策略。
Cisco 建议您了解以下主题:
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
从Cisco ISE 3.1开始,新的API可用于OpenAPI格式。管理策略通过增强互操作性、提高自动化效率、增强安全性、促进创新和降低成本,优化了网络安全和管理。此策略允许ISE与其他系统无缝集成,实现自动化配置和管理,提供精细的访问控制,鼓励第三方创新,并简化管理流程,从而降低维护成本并提高总体投资回报。
步骤1:添加anOpenAPI admin帐户。
要添加API管理员,请导航到Administration > System > Admin Access > Administrators > Admin Users > Add。
第二步:在ISE上启用OpenAPI。
默认情况下,在ISE上禁用开放式API。要启用该功能,请导航至 Administration > System > Settings > API Settings > API Service Settings.切换打开API选项。点击 保存.
第三步:探索ISE OpenAPI。
导航至 管理>System >设置> API设置>概述.单击OpenAPI以访问链接。
此API检索设备管理策略集信息。
步骤1:API调用的必需信息。
方法 | GET |
URL |
https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set
|
凭证 | 使用OpenAPI帐户凭证。 |
信头 |
Accept(接受)
:
application/json
内容类型
:
application/json
|
第二步:找到用于检索设备管理策略集信息的URL。
第三步:这是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/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'}}]}
此API检索特定策略集的身份验证规则。
步骤1:API调用的必需信息。
方法 | GET |
URL |
https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set/<ID-Of-Policy-Set>/authentication
|
凭证 | 使用OpenAPI帐户凭证。 |
信头 |
Accept(接受)
:
application/json
内容类型
:
application/json
|
第二步:找到用于检索身份验证规则信息的URL。
第三步:这是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/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())
注意:ID来自设备管理-策略集列表第3步中的API输出。例如,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调用的必需信息。
方法 | GET |
URL |
https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set/<ID-Of-Policy-Set>/authorization
|
凭证 | 使用OpenAPI帐户凭证。 |
信头 |
Accept(接受)
:
application/json
内容类型
:
application/json
|
第二步:查找用于检索授权规则信息的URL。
第三步:这是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/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())
注意:ID来自设备管理-策略集列表第3步中的API输出。例如,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调用的必需信息。
方法 | GET |
URL |
https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set
|
凭证 | 使用OpenAPI帐户凭证。 |
信头 |
Accept(接受)
:
application/json
内容类型
:
application/json
|
第二步:找到用于检索特定ISE节点信息的URL。
第三步:这是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/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调用的必需信息。
方法 | GET |
URL |
https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set/<ID-Of-Policy-Set>/authentication
|
凭证 | 使用OpenAPI帐户凭证。 |
信头 |
Accept(接受)
:
application/json
内容类型
:
application/json
|
第二步:找到用于检索身份验证规则信息的URL。
第三步:这是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/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())
注意:ID来自网络访问-策略集列表第3步中的API输出。例如,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调用的必需信息。
方法 | GET |
URL |
https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set/<ID-Of-Policy-Set>/authorization
|
凭证 | 使用OpenAPI帐户凭证。 |
信头 |
Accept(接受)
:
application/json
内容类型
:
application/json
|
第二步:查找用于检索授权规则信息的URL。
第三步:这是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/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())
注意:ID来自“网络访问-策略集列表”第3步中的API输出。例如,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'}}]}
要排除与OpenAPI相关的问题,请在Debug Log Configurationwindow将theapiservicecomponent的日志级别设置为DEBUG。
要启用调试,请导航到操作>故障排除>调试向导>调试日志配置> ISE节点> apiservice。
要下载调试日志文件,请导航到操作>故障排除>下载日志> ISE PAN节点>调试日志。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
18-Sep-2024 |
初始版本 |