Inhalt

Einleitung

Hintergrund

Voraussetzungen

Anforderungen

Verwendete Komponenten

Konfigurieren

Netzwerkdiagramm

Konfiguration auf der ISE

Python-Beispiele

Abrufen der Liste aller Knoten, die im Cluster bereitgestellt werden

Abrufen von Details eines bereitgestellten Knotens

Fehlerbehebung

Einleitung

In diesem Dokument wird das Verfahren zur Verwendung einer offenen API zur Verwaltung der Cisco Identity Services Engine (ISE)-Bereitstellung beschrieben.

Hintergrund

In modernen Unternehmensnetzwerken werden Sicherheit und Management immer komplexer und wichtiger. Um diesen Herausforderungen zu begegnen, sind ab Cisco ISE 3.1 neuere APIs im OpenAPI-Format verfügbar, das eine robuste Netzwerkzugriffskontrolle und Richtlinienmanagement-Funktionen bietet. Der Administrator kann die ISE-Bereitstellung jetzt mithilfe von OpenAPI effizienter prüfen und proaktiv handeln, anstatt auf Problemberichte von Endbenutzern zu warten.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:

- Cisco Identity Services Engine (ISE)

- REST-API

- Python

Verwendete Komponenten

- ISE 3.3

- Python 3.10.0

Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.

Konfigurieren

Netzwerkdiagramm

Topologie

Konfiguration auf der ISE

Schritt 1: Hinzufügen eines offenen API-Administrationskontos

Um einen API-Administrator hinzuzufügen, navigieren Sie zu Administration -> System -> Administration -> Administrators -> Admin Users -> Add.

API-Administrator

Schritt 2: Aktivieren der offenen API auf der ISE

Die offene API ist auf der ISE standardmäßig deaktiviert. Um sie zu aktivieren, navigieren Sie zu Administration > System > API Settings > API Service Settings. Schalten Sie die Open API-Optionen um. Klicken Sie auf Speichern.

OpenAPI aktivieren

Schritt 3: Erkunden der offenen ISE-API

Navigieren Sie zu Administration > System > API Settings > Overview. Klicken Sie auf API-Besuchslink öffnen.

OpenAPI aufrufen

Python-Beispiele

Abrufen der Liste aller Knoten, die im Cluster bereitgestellt werden

Die API listet alle Knoten auf, die im Cluster bereitgestellt werden.

Schritt 1: Erforderliche Informationen für einen API-Aufruf.

Methode

HOLEN

URL

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

Anmeldeinformationen

Open API-Kontoinformationen verwenden

Header

Akzeptieren: Anwendung/json

Inhaltstyp: Anwendung/json

Schritt 2: Suchen Sie nach der URL, die zum Abrufen von Bereitstellungsinformationen verwendet wird.

API-URI

Schritt 3: Hier ist das Beispiel des Python-Codes. Kopieren Sie den Inhalt, und fügen Sie ihn ein. Ersetzen Sie die ISE-IP, den Benutzernamen und das Kennwort. Speichern Sie die Datei als Python, um sie auszuführen.

Stellen Sie sicher, dass eine gute Verbindung zwischen der ISE und dem Gerät besteht, auf dem das Python-Codebeispiel ausgeführt wird.

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

Hier sehen Sie das Beispiel der erwarteten Ergebnisse.

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

Abrufen von Details eines bereitgestellten Knotens

Diese API ruft detaillierte Informationen zum jeweiligen ISE-Knoten ab.

Schritt 1: Erforderliche Informationen für einen API-Aufruf.

Methode

HOLEN

URL

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

Anmeldeinformationen

Open API-Kontoinformationen verwenden

Header

Akzeptieren: Anwendung/json

Inhaltstyp: Anwendung/json

Schritt 2: Suchen Sie nach der URL, die zum Abrufen der spezifischen ISE-Knoteninformationen verwendet wird.

API-URI

Schritt 3: Hier ist das Beispiel des Python-Codes. Kopieren Sie den Inhalt, und fügen Sie ihn ein. Ersetzen Sie die ISE-IP, den Benutzernamen und das Kennwort. Speichern Sie die Datei als Python, um sie auszuführen.

Stellen Sie sicher, dass eine gute Verbindung zwischen der ISE und dem Gerät besteht, auf dem das Python-Codebeispiel ausgeführt wird.

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

Hier sehen Sie das Beispiel der erwarteten Ergebnisse.

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

Fehlerbehebung

Um Probleme im Zusammenhang mit den Open APIs zu beheben, legen Sie dieLog-Ebene für die apiservicecomponent im KonfigurationsfensterDebug Log auf DEBUG fest.

Um das Debugging zu aktivieren, navigieren Sie zu Operations -> Troubleshoot -> Debug Wizard -> Debug Log Configuration -> ISE Node -> apiservice.

Debuggen von API-Diensten

Um Debug-Protokolle herunterzuladen, navigieren Sie zu Operations -> Troubleshoot -> Download Logs -> ISE PAN Node -> Debug Logs.

Debug-Protokolle herunterladen