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
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 > Admin Access > 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 > Settings > 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 > Settings > 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.
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