La documentazione per questo prodotto è stata redatta cercando di utilizzare un linguaggio senza pregiudizi. Ai fini di questa documentazione, per linguaggio senza di pregiudizi si intende un linguaggio che non implica discriminazioni basate su età, disabilità, genere, identità razziale, identità etnica, orientamento sessuale, status socioeconomico e intersezionalità. Le eventuali eccezioni possono dipendere dal linguaggio codificato nelle interfacce utente del software del prodotto, dal linguaggio utilizzato nella documentazione RFP o dal linguaggio utilizzato in prodotti di terze parti a cui si fa riferimento. Scopri di più sul modo in cui Cisco utilizza il linguaggio inclusivo.
Cisco ha tradotto questo documento utilizzando una combinazione di tecnologie automatiche e umane per offrire ai nostri utenti in tutto il mondo contenuti di supporto nella propria lingua. Si noti che anche la migliore traduzione automatica non sarà mai accurata come quella fornita da un traduttore professionista. Cisco Systems, Inc. non si assume alcuna responsabilità per l’accuratezza di queste traduzioni e consiglia di consultare sempre il documento originale in inglese (disponibile al link fornito).
Questo documento descrive la procedura per l'utilizzo di OpenAPI per la gestione Cisco Identity Services Engine (ISE) Policy.
Cisco raccomanda la conoscenza dei seguenti argomenti:
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Da Cisco ISE 3.1 in poi, le nuove API sono disponibili in formato OpenAPI. La policy di gestione ottimizza la sicurezza e la gestione della rete migliorando l'interoperabilità, migliorando l'efficienza dell'automazione, rafforzando la sicurezza, promuovendo l'innovazione e riducendo i costi. Questa politica consente ad ISE di integrarsi facilmente con altri sistemi, ottenere una configurazione e una gestione automatizzate, fornire un controllo granulare dell'accesso, incoraggiare l'innovazione di terze parti e semplificare i processi di gestione, riducendo in tal modo i costi di manutenzione e aumentando il ritorno complessivo sull'investimento.
Passaggio 1. Aggiungere un account amministratore OpenAPI.
Per aggiungere un amministratore API, selezionare Amministrazione > Sistema > Accesso amministratore > Amministratori > Utenti amministratori > Aggiungi.
Passaggio 2. Abilitare OpenAPI su ISE.
Open API è disabilitato per impostazione predefinita su ISE. Per attivarlo, passare a Amministrazione > Sistema > Impostazioni > Impostazioni API > Impostazioni servizio API. Attivate o disattivate le opzioni di OpenAPI. Fare clic su Salva.
Passaggio 3. Scopri ISE OpenAPI.
Passa a Amministrazione > Sistema > Impostazioni > Impostazioni API > Panoramica. Fare clic su OpenAPI per visitare il collegamento.
Questa API recupera le informazioni sui set di criteri di amministrazione del dispositivo.
Passaggio 1. Informazioni necessarie per una chiamata API.
Metodo | OTTIENI |
URL |
https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set
|
Credenziali | Utilizzare le credenziali dell'account OpenAPI. |
Intestazioni |
Accetta
:
application/json
Content-Type
:
application/json
|
Passaggio 2. Individuare l'URL utilizzato per recuperare le informazioni sui set di criteri di amministrazione del dispositivo.
Passaggio 3. Questo è un esempio di codice Python. Copiare e incollare il contenuto. Sostituire l'ISE IP, il nome utente e la password. Salvare come file Python da eseguire.
Verificare che la connettività tra ISE e il dispositivo su cui è in esecuzione il codice Python sia buona.
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())
Questo è l'esempio degli output previsti.
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'}}]}
Questa API recupera le regole di autenticazione di un set di criteri specifico.
Passaggio 1. Informazioni necessarie per una chiamata API.
Metodo | OTTIENI |
URL |
https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set/<ID-Of-Policy-Set>/authentication
|
Credenziali | Utilizzare le credenziali dell'account OpenAPI. |
Intestazioni |
Accetta
:
application/json
Content-Type
:
application/json
|
Passaggio 2. Individuare l'URL utilizzato per recuperare le informazioni sulle regole di autenticazione.
Passaggio 3. Questo è un esempio di codice Python. Copiare e incollare il contenuto. Sostituire l'ISE IP, il nome utente e la password. Salvare come file Python da eseguire.
Verificare che la connettività tra ISE e il dispositivo su cui è in esecuzione il codice Python sia buona.
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())
Nota: l'ID deriva dagli output API al passaggio 3 di Device Admin - List Of Policy Sets. Ad esempio, 41ed8579-429b-42a8-879e-61861cb82bbf è impostato come criterio predefinito di TACACS.
Questo è l'esempio degli output previsti.
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'}}]}
Questa API recupera le regole di autorizzazione di un set di criteri specifico.
Passaggio 1. Informazioni necessarie per una chiamata API.
Metodo | OTTIENI |
URL |
https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set/<ID-Of-Policy-Set>/authorization
|
Credenziali | Utilizzare le credenziali dell'account OpenAPI. |
Intestazioni |
Accetta
:
application/json
Content-Type
:
application/json
|
Passaggio 2. Individuare l'URL utilizzato per recuperare le informazioni sulla regola di autorizzazione.
Passaggio 3. Questo è un esempio di codice Python. Copiare e incollare il contenuto. Sostituire l'ISE IP, il nome utente e la password. Salvare come file Python da eseguire.
Verificare che la connettività tra ISE e il dispositivo su cui è in esecuzione il codice Python sia buona.
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())
Nota: l'ID deriva dagli output API al passaggio 3 di Device Admin - List Of Policy Sets. Ad esempio, 41ed8579-429b-42a8-879e-61861cb82bbf è impostato come criterio predefinito di TACACS.
Questo è l'esempio degli output previsti.
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'}}]}
Questa API recupera i set di criteri di accesso alla rete delle distribuzioni ISE.
Passaggio 1. Informazioni necessarie per una chiamata API.
Metodo | OTTIENI |
URL |
https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set
|
Credenziali | Utilizzare le credenziali dell'account OpenAPI. |
Intestazioni |
Accetta
:
application/json
Content-Type
:
application/json
|
Passaggio 2. Individuare l'URL utilizzato per recuperare le informazioni specifiche del nodo ISE.
Passaggio 3. Questo è un esempio di codice Python. Copiare e incollare il contenuto. Sostituire l'ISE IP, il nome utente e la password. Salvare come file Python da eseguire.
Verificare che la connettività tra ISE e il dispositivo su cui è in esecuzione il codice Python sia buona.
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())
Questo è l'esempio degli output previsti.
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'}}]}
Questa API recupera le regole di autenticazione di un set di criteri specifico.
Passaggio 1. Informazioni necessarie per una chiamata API.
Metodo | OTTIENI |
URL |
https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set/<ID-Of-Policy-Set>/authentication
|
Credenziali | Utilizzare le credenziali dell'account OpenAPI. |
Intestazioni |
Accetta
:
application/json
Content-Type
:
application/json
|
Passaggio 2. Individuare l'URL utilizzato per recuperare le informazioni sulla regola di autenticazione.
Passaggio 3. Questo è un esempio di codice Python. Copiare e incollare il contenuto. Sostituire l'ISE IP, il nome utente e la password. Salvare come file Python da eseguire.
Verificare che la connettività tra ISE e il dispositivo su cui è in esecuzione il codice Python sia buona.
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())
Nota: l'ID deriva dagli output API al passaggio 3 di Accesso alla rete - Elenco di set di criteri. Ad esempio, ba71a417-4a48-4411-8bc3-d5df9b115769
è BGL_CFME02-FMC
.
Questo è l'esempio degli output previsti.
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'}}]}
Questa API recupera le regole di autorizzazione di un set di criteri specifico.
Passaggio 1. Informazioni necessarie per una chiamata API.
Metodo | OTTIENI |
URL |
https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set/<ID-Of-Policy-Set>/authorization
|
Credenziali | Utilizzare le credenziali dell'account OpenAPI. |
Intestazioni |
Accetta
:
application/json
Content-Type
:
application/json
|
Passaggio 2. Individuare l'URL utilizzato per recuperare le informazioni sulla regola di autorizzazione.
Passaggio 3. Questo è un esempio di codice Python. Copiare e incollare il contenuto. Sostituire l'ISE IP, il nome utente e la password. Salvare come file Python da eseguire.
Verificare che la connettività tra ISE e il dispositivo su cui è in esecuzione il codice Python sia buona.
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())
Nota: l'ID deriva dagli output API al passaggio 3 di Accesso alla rete - Elenco di set di criteri. Ad esempio, ba71a417-4a48-4411-8bc3-d5df9b115769 è BGL_CFME02-FMC.
Questo è l'esempio degli output previsti.
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'}}]}
Per risolvere i problemi relativi alle OpenAPI, impostare il livello di log per apiservicecomponent su DEBUGnella finestra di configurazione del log di debug.
Per abilitare il debug, selezionare Operations > Troubleshoot > Debug Wizard > Debug Log Configuration > ISE Node > apiservice.
Per scaricare il file di log di debug, selezionare Operations > Troubleshoot > Download Logs > ISE PAN Node > Debug Logs (Operazioni > Risoluzione dei problemi > Log di download > Nodo PAN ISE > Log di debug).
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
18-Sep-2024 |
Versione iniziale |