Inleiding
Dit document beschrijft de procedure voor het gebruik van openAPI om de implementatie van Cisco Identity Services Engine (ISE) te beheren.
Achtergrond
In moderne ondernemingsnetwerken zijn beveiliging en beheer steeds complexer en kritischer geworden. Om deze uitdagingen aan te gaan, zijn vanaf Cisco ISE 3.1 nieuwere API's beschikbaar in de OpenAPI-indeling, die robuuste mogelijkheden biedt voor netwerktoegangscontrole en beleidsbeheer. De beheerder kan nu de implementatie van ISE efficiënter controleren via OpenAPI en proactief actie ondernemen in plaats van te wachten op probleemmeldingen van eindgebruikers.
Voorwaarden
Vereisten
Cisco raadt kennis van de volgende onderwerpen aan:
- Cisco Identity Services Engine (ISE)
- REST API
- Python
Gebruikte componenten
- ISE-lijnkaart 3.3
- Python 3.10.0
De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.
Configureren
Netwerkdiagram
Topologie
Configuratie op ISE
Stap 1: Voeg een Open API Admin account toe
Om een API-beheerder toe te voegen, navigeer naar Beheer > Systeem > Admin Access > Beheerders > Admin Gebruikers > Add.
API-beheerder
Stap 2: Open API inschakelen op ISE
Open API is standaard uitgeschakeld op ISE. Om het in te schakelen, navigeer naar Beheer > Systeem > Instellingen > API-instellingen > API-serviceinstellingen. Schakel de opties voor Open API in. Klik op Save (Opslaan).
OpenAPI inschakelen
Stap 3: Verken de open API van ISE
Ga naar Beheer > Systeem > Instellingen > API-instellingen > Overzicht. Klik op Open API bezoek link.
Bezoek OpenAPI
Python-voorbeelden
Ontvang de lijst met alle knooppunten die in de cluster zijn geïmplementeerd
API maakt een lijst van alle knooppunten die in de cluster worden opgesteld.
Stap 1: Vereiste informatie voor een API-oproep.
Stap 2: Zoek de URL die wordt gebruikt om implementatieinformatie op te halen.
API-URI
Stap 3: Hier is het voorbeeld van de Python-code. Kopieert en plakt de inhoud. Vervang de ISE IP, gebruikersnaam, wachtwoord. Opslaan als een python-bestand voor uitvoering.
Zorg voor een goede verbinding tussen ISE en het apparaat waarop het voorbeeld van de pythoncode wordt uitgevoerd.
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 is het voorbeeld van de verwachte outputs.
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'}
Gegevens over een geïmplementeerd knooppunt ophalen
Deze API haalt gedetailleerde informatie op van de specifieke ISE-knooppunt.
Stap 1: Vereiste informatie voor een API-oproep.
Methode |
KRIJGEN |
URL |
https://<ISE-PAN-IP>/api/v1/implementatie/knooppunt/<ISE-knooppunt-hostnaam> |
referenties |
Open API-accountreferenties gebruiken |
Koppen |
Aanvaarden: aanvraag/json
Content-Type: applicatie/json
|
Stap 2: Zoek de URL die wordt gebruikt om de specifieke ISE-knoopinformatie op te halen.
API-URI
Stap 3. Dit is het voorbeeld van de Python-code. Kopieert en plakt de inhoud. Vervang de ISE IP, gebruikersnaam, wachtwoord. Opslaan als een python-bestand voor uitvoering.
Zorg voor een goede verbinding tussen ISE en het apparaat waarop het voorbeeld van de pythoncode wordt uitgevoerd.
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 is het voorbeeld van de verwachte outputs.
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'}
Problemen oplossen
Om problemen op te lossen die betrekking hebben op de Open API's, stelt u het niveau Log voor deapiservice component in op DEBUG in het venster Debug Log Configuration.
Om debug in te schakelen, navigeer naar Operations > Probleemoplossing > Debug Wizard > Debug Log Configuration > ISE Node > Appliance.
Debug van API-service
Als u debug-logbestanden wilt downloaden, navigeert u naar Operations > Probleemoplossing > Downloadlogs > ISE PAN-knooppunt > Debug-logbestanden.
Debug logs downloaden