本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案介紹使用OpenAPI來管理網際網路的程式 思科身分辨識服務引擎(ISE) 政策。
思科建議您瞭解以下主題:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
從Cisco ISE 3.1開始,新的API以OpenAPI格式提供。管理策略透過增強互操作性、提高自動化效率、增強安全性、促進創新和降低成本,最佳化了網路安全和管理。此策略允許ISE與其他系統無縫整合,實現自動配置和管理,提供精細的訪問控制,鼓勵第三方創新,並簡化管理流程,從而降低維護成本並提高總體投資回報。
步驟 1.新增anOpenAPI admin帳戶。
要增加API管理員,請導航到管理>系統>管理員訪問許可權>管理員>管理員使用者>增加。
步驟 2.在ISE上啟用OpenAPI。
預設情況下,在ISE上停用開放式API。若要啟用它,請導覽至 Administration > System > Settings > API Settings > API Service Settings.切換OpenAPI選項按一下 儲存.
步驟 3.探索ISE OpenAPI。
導覽至 Administration > System > Settings > API Settings > Overview.按一下OpenAPI以訪問連結。
此API檢索裝置管理策略集資訊。
步驟 1.API呼叫所需的資訊。
方法 | 取得 |
URL |
https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set
|
憑證 | 使用OpenAPI帳戶憑據。 |
標頭 |
接受
:
application/json
Content-Type
:
application/json
|
步驟 2.找到用於檢索裝置管理策略集資訊的URL。
步驟 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/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呼叫所需的資訊。
方法 | 取得 |
URL |
https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set/<策略集的ID>/authentication
|
憑證 | 使用OpenAPI帳戶憑據。 |
標頭 |
接受
:
application/json
Content-Type
:
application/json
|
步驟 2.找到用於檢索身份驗證規則資訊的URL。
步驟 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/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呼叫所需的資訊。
方法 | 取得 |
URL |
https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set/<策略集ID>/authorization
|
憑證 | 使用OpenAPI帳戶憑據。 |
標頭 |
接受
:
application/json
Content-Type
:
application/json
|
步驟 2.找到用於檢索授權規則資訊的URL。
步驟 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/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呼叫所需的資訊。
方法 | 取得 |
URL |
https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set
|
憑證 | 使用OpenAPI帳戶憑據。 |
標頭 |
接受
:
application/json
Content-Type
:
application/json
|
步驟 2.查詢用於檢索特定ISE節點資訊的URL。
步驟 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/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呼叫所需的資訊。
方法 | 取得 |
URL |
https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set/<ID-Of-Policy-Set>/authentication
|
憑證 | 使用OpenAPI帳戶憑據。 |
標頭 |
接受
:
application/json
Content-Type
:
application/json
|
步驟 2.找到用於檢索身份驗證規則資訊的URL。
步驟 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/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呼叫所需的資訊。
方法 | 取得 |
URL |
https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set/<策略集ID>/authorization
|
憑證 | 使用OpenAPI帳戶憑據。 |
標頭 |
接受
:
application/json
Content-Type
:
application/json
|
步驟 2.找到用於檢索授權規則資訊的URL。
步驟 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/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相關的問題,請在偵錯日誌組態視窗中將theapiservicecomponent的記錄層級設定為DEBUG。
要啟用調試,請導航到操作>故障排除>調試嚮導>調試日誌配置> ISE節點> apiservice。
要下載調試日誌檔案,請導航到操作>故障排除>下載日誌> ISE PAN節點>調試日誌。
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
18-Sep-2024 |
初始版本 |