Sommario

Introduzione

Introduzione

Prerequisiti

Requisiti

Componenti usati

Configurazione

Esempio di rete

Configurazione su ISE

Esempi di Python

Recuperare L'Elenco Di Tutti I Nodi Distribuiti Nel Cluster

Recuperare I Dettagli Di Un Nodo Distribuito

Risoluzione dei problemi

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

- ISE 3.3

- Python 3.10.0

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.

Metodo

OTTIENI

URL

https://<ISE-PAN-IP>/api/v1/deployment/node

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 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