簡介
本文檔介紹使用openAPI管理思科身份服務引擎(ISE)部署的過程。
背景
在現代企業網路中,安全和管理變得越來越複雜和關鍵。為了應對這些挑戰,從Cisco ISE 3.1開始,OpenAPI格式提供較新的API,可提供強大的網路訪問控制和策略管理功能。管理員現在可以透過OpenAPI更有效地檢查ISE部署,並主動採取行動,而不是等待終端使用者提交問題報告。
必要條件
需求
思科建議您瞭解以下主題:
- 思科身分辨識服務引擎(ISE)
- REST API
- Python
採用元件
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
設定
網路圖表
拓撲
ISE上的配置
第1步:增加打開API admin帳戶
要增加API管理員,請導航到管理>系統>管理員訪問許可權>管理員>管理員使用者>增加。
API管理
第2步:在ISE上啟用開放式API
預設情況下,在ISE上停用開放式API。要啟用該功能,請導航到管理>系統>設定> API設定> API服務設定。切換「開啟API」選項。按一下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呼叫的必要資訊。
方法 |
取得 |
URL |
https://<ISE-PAN-IP>/api/v1/deployment/node/<ISE-Node-Hostname> |
憑證 |
使用Open API帳戶憑據 |
標頭 |
接受:application/json
Content-Type: application/json
|
第2步:查詢用於檢索特定ISE節點資訊的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/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節點>調試日誌。
下載調試日誌