Contenido

Introducción

Background

Prerequisites

Requirements

Componentes Utilizados

Configurar

Diagrama de la red

Configuración en ISE

Ejemplos de Python

Recuperar La Lista De Todos Los Nodos Implementados En El Clúster

Recuperar Detalles De Un Nodo Implementado

Troubleshoot

Introducción

Este documento describe el procedimiento para utilizar openAPI para gestionar la implementación de Cisco Identity Services Engine (ISE).

Background

En las redes empresariales modernas, la seguridad y la gestión se han vuelto cada vez más complejas y críticas. Para hacer frente a estos retos, a partir de Cisco ISE 3.1, hay disponibles API más recientes en formato OpenAPI, que ofrece un control de acceso a la red sólido y capacidades de gestión de políticas. Ahora, el administrador puede comprobar la implementación de ISE de forma más eficaz mediante OpenAPI y actuar de forma proactiva en lugar de esperar a recibir informes de problemas de los usuarios finales.

Prerequisites

Requirements

Cisco recomienda que tenga conocimiento sobre estos temas:

- Cisco Identity Services Engine (ISE)

- API REST

- Python

Componentes Utilizados

- ISE 3.3

- Python 3.10.0

La información que contiene este documento se creó a partir de los dispositivos en un ambiente de laboratorio específico. Todos los dispositivos que se utilizan en este documento se pusieron en funcionamiento con una configuración verificada (predeterminada). Si tiene una red en vivo, asegúrese de entender el posible impacto de cualquier comando.

Configurar

Diagrama de la red

Topología

Configuración en ISE

Paso 1: Agregar una cuenta de administrador de API abierta

Para agregar un administrador de API, vaya aAdministración > Sistema > Acceso de administrador > Administradores > Usuarios de administración > Agregar.

Administrador de API

Paso 2: Habilitar API abierta en ISE

API abierta está desactivada de forma predeterminada en ISE. Para habilitarlo, navegue hasta Administration > System > Settings > API Settings > API Service Settings. Active o desactive las opciones de API abierta. Click Save.

Habilitar OpenAPI

Paso 3: Explore la API abierta de ISE

Vaya a Administration > System > Settings > API Settings > Overview. Haga clic en el enlace de visita API abierta.

Visite OpenAPI

Ejemplos de Python

Recuperar La Lista De Todos Los Nodos Implementados En El Clúster

La API enumera todos los nodos que se implementan en el clúster.

Paso 1: Información necesaria para una llamada de API.

Método

GET

URL

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

Credenciales

Usar credenciales de cuenta de API abierta

Encabezados

Aceptar: application/json

Tipo de contenido: application/json

Paso 2: Localice la URL que se utiliza para recuperar la información de implementación.

URI DE API

Paso 3: Este es el ejemplo de código Python. Copiar y pegar el contenido. Reemplace la IP, el nombre de usuario y la contraseña de ISE. Guardar como un archivo python para ejecutar.

Asegúrese de que haya una buena conectividad entre ISE y el dispositivo que ejecuta el ejemplo de código de 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())

Este es el ejemplo de resultados esperados.

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

Recuperar Detalles De Un Nodo Implementado

Esta API recupera información detallada del nodo de ISE específico.

Paso 1: Información necesaria para una llamada de API.

Método

GET

URL

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

Credenciales

Usar credenciales de cuenta de API abierta

Encabezados

Aceptar: application/json

Tipo de contenido: application/json

Paso 2: Localice la URL que se utiliza para recuperar la información específica del nodo de ISE.

URI DE API

Paso 3. Este es el ejemplo de código Python. Copiar y pegar el contenido. Reemplace la IP, el nombre de usuario y la contraseña de ISE. Guardar como un archivo python para ejecutar.

Asegúrese de que haya una buena conectividad entre ISE y el dispositivo que ejecuta el ejemplo de código de 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())

Este es el ejemplo de resultados esperados.

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

Troubleshoot

Para resolver problemas relacionados con las API abiertas, establezca elNivel de registro para el componente apiservicecomponent enDEBUGen la ventanaConfiguracióndel registro de depuración.

Para habilitar la depuración, vaya a Operaciones > Solución de problemas > Asistente de depuración > Configuración del registro de depuración > Nodo ISE > apiservice.

Depuración del servicio API

Para descargar los registros de depuración, vaya a Operaciones > Solución de problemas > Registros de descarga > Nodo ISE PAN > Registros de depuración.

Descargar registros de depuración