Table des matières

Introduction

Fond

Conditions préalables

Exigences

Composants utilisés

Configurer

Diagramme du réseau

Configuration sur ISE

Exemples Python

Récupérer La Liste De Tous Les Noeuds Déployés Dans Le Cluster

Récupérer Les Détails D'Un Noeud Déployé

Dépannage

Introduction

Ce document décrit la procédure d'utilisation d'openAPI pour gérer le déploiement de Cisco Identity Services Engine (ISE).

Fond

Dans les réseaux d'entreprise modernes, la sécurité et la gestion sont devenues de plus en plus complexes et critiques. Pour relever ces défis, à partir de Cisco ISE 3.1, des API plus récentes sont disponibles au format OpenAPI, qui offre des fonctionnalités robustes de contrôle d'accès au réseau et de gestion des politiques. L'administrateur peut désormais contrôler plus efficacement le déploiement ISE via OpenAPI et prendre des mesures proactives plutôt que d'attendre les rapports de problème des utilisateurs finaux.

Conditions préalables

Exigences

Cisco vous recommande de prendre connaissance des rubriques suivantes :

- Cisco Identity Services Engine (ISE)

- API REST

- Python

Composants utilisés

- ISE 3.3

- Python 3.10.0

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.

Configurer

Diagramme du réseau

Topologie

Configuration sur ISE

Étape 1 : Ajouter un compte admin API ouvert

Pour ajouter un administrateur d'API, accédez à Administration > System > Admin Access > Administrators > Admin Users > Add.

Administrateur API

Étape 2 : Activer l'API ouverte sur ISE

L'API ouverte est désactivée par défaut sur ISE. Pour l'activer, accédez à Administration > System > Settings > API Settings > API Service Settings. Activez les options de l'API ouverte. Cliquez sur Save.

Activer OpenAPI

Étape 3 : Explorez l'API ouverte ISE

Accédez à Administration > System > Settings > API Settings > Overview. Cliquez sur le lien Open API visit.

Visitez OpenAPI

Exemples Python

Récupérer La Liste De Tous Les Noeuds Déployés Dans Le Cluster

L'API répertorie tous les noeuds déployés dans le cluster.

Étape 1 : Informations requises pour un appel API.

Méthode

GET

URL

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

Identifiants

Utiliser les informations d'identification du compte Open API

Header (En-tête)

Accept (accepter): application/json

Content-Type : application/json

Étape 2 : Localisez l'URL utilisée pour récupérer les informations de déploiement.

URI API

Étape 3 : Voici l'exemple de code Python. Copiez et collez le contenu. Remplacez l'adresse IP ISE, le nom d'utilisateur et le mot de passe. Enregistrer sous un fichier python à exécuter.

Assurez-vous de la bonne connectivité entre ISE et le périphérique exécutant l'exemple de code 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())

Voici l'exemple des résultats attendus.

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

Récupérer Les Détails D'Un Noeud Déployé

Cette API récupère des informations détaillées sur le noeud ISE spécifique.

Étape 1 : Informations requises pour un appel API.

Méthode

GET

URL

https://<ISE-PAN-IP>/api/v1/deployment/node/<Nom d'hôte du noeud ISE>

Identifiants

Utiliser les informations d'identification du compte Open API

Header (En-tête)

Accept (accepter): application/json

Content-Type : application/json

Étape 2 : Localisez l'URL utilisée pour récupérer les informations de noeud ISE spécifiques.

URI API

Étape 3. Voici l'exemple de code Python. Copiez et collez le contenu. Remplacez l'adresse IP ISE, le nom d'utilisateur et le mot de passe. Enregistrer sous un fichier python à exécuter.

Assurez-vous de la bonne connectivité entre ISE et le périphérique exécutant l'exemple de code 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())

Voici l'exemple des résultats attendus.

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

Dépannage

Pour résoudre les problèmes liés aux API ouvertes, définissez le niveau de journalisation pour theapiservicomponent sur DEBUGdans la fenêtre de configuration du journal de débogage.

Pour activer le débogage, accédez à Operations > Troubleshoot > Debug Wizard > Debug Log Configuration > ISE Node > apiservice.

Débogage du service API

Pour télécharger les journaux de débogage, accédez à Operations > Troubleshoot > Download Logs > ISE PAN Node > Debug Logs.

Télécharger les journaux de débogage