Introduzione
In questo documento viene descritta la procedura per utilizzare openAPI per gestire l'implementazione di Cisco Identity Services Engine (ISE).
Introduzione
Nelle moderne reti aziendali, la sicurezza e la gestione sono diventate sempre più complesse e critiche. Per affrontare queste sfide, da Cisco ISE 3.1 in poi, sono disponibili API più recenti in formato OpenAPI, che offre affidabili funzionalità di controllo dell'accesso alla rete e di gestione delle policy. L'amministratore è ora in grado di controllare l'implementazione di ISE in modo più efficiente tramite OpenAPI, e di agire in modo proattivo piuttosto che attendere che gli utenti finali segnalino i problemi.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- Cisco Identity Services Engine (ISE)
- API REST
- Python
Componenti usati
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.
Configurazione
Esempio di rete
Topologia
Configurazione su ISE
Passaggio 1: Aggiungere un account amministratore Open API
Per aggiungere un amministratore API, selezionare Amministrazione > Sistema > Accesso amministratore > Amministratori > Utenti amministratori > Aggiungi.
Amministratore API
Fase 2: Abilitare Open API su ISE
Open API è disabilitato per impostazione predefinita su ISE. Per abilitarlo, selezionare Amministrazione > Sistema > Impostazioni > Impostazioni API > Impostazioni servizio API. Attivate o disattivate le opzioni di Open API. Fare clic su Save (Salva).
Abilita OpenAPI
Passaggio 3: Esplora ISE open API
Selezionare Amministrazione > Sistema > Impostazioni > Impostazioni API > Panoramica. Fare clic sul collegamento Apri API.
Visita OpenAPI
Esempi di Python
Recuperare L'Elenco Di Tutti I Nodi Distribuiti Nel Cluster
L'API elenca tutti i nodi distribuiti nel cluster.
Passaggio 1: Informazioni obbligatorie per una chiamata API.
Passaggio 2: Individuare l'URL utilizzato per recuperare le informazioni sulla distribuzione.
URI API
Passaggio 3: Ecco l'esempio del Codice Python. Copiare e incollare il contenuto. Sostituire l'indirizzo IP, il nome utente e la password ISE. Salva come file Python da eseguire.
Verificare la buona connettività tra ISE e il dispositivo su cui è in esecuzione il codice 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())
Di seguito è riportato l'esempio degli output previsti.
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'}
Recuperare I Dettagli Di Un Nodo Distribuito
Questa API recupera informazioni dettagliate sul nodo ISE specifico.
Passaggio 1: Informazioni obbligatorie per una chiamata API.
Metodo |
OTTIENI |
URL |
https://<ISE-PAN-IP>/api/v1/deployment/node/<nome host-nodo-ISE> |
Credenziali |
Usa credenziali dell'account API aperto |
Intestazioni |
Accetta: application/json
Content-Type: applicazione/json
|
Passaggio 2: Individuare l'URL utilizzato per recuperare le informazioni specifiche del nodo ISE.
URI API
Passaggio 3. Di seguito è riportato l'esempio del codice Python. Copiare e incollare il contenuto. Sostituire l'indirizzo IP, il nome utente e la password ISE. Salva come file Python da eseguire.
Verificare la buona connettività tra ISE e il dispositivo su cui è in esecuzione il codice 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())
Di seguito è riportato l'esempio degli output previsti.
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'}
Risoluzione dei problemi
Per risolvere i problemi relativi alle API aperte, impostare il livello di log per apiservicecomponent su DEBUGnella finestra di configurazione del log di debug.
Per abilitare il debug, selezionare Operazioni > Risoluzione dei problemi > Debug guidato > Configurazione log di debug > Nodo ISE > apiservice.
Debug del servizio API
Per scaricare i log di debug, selezionare Operations > Troubleshoot > Download Logs > ISE PAN Node > Debug Logs.
Scarica log di debug