Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

Achtergrondinformatie

Configureren

Netwerkdiagram

Configuratie op ISE

Python-voorbeelden

Apparaatbeheer - lijst met beleidssets

Apparaatbeheer - Verificatieregels verkrijgen

Apparaatbeheer - autorisatieregels verkrijgen

Netwerktoegang - lijst van beleidssets

Netwerktoegang - Verificatieregels verkrijgen

Netwerktoegang - vergunningsregels verkrijgen

Problemen oplossen

Inleiding

Dit document beschrijft de procedure voor het gebruik van OpenAPI voor beheer Cisco Identity Services Engine (ISE) Beleid.

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.

Achtergrondinformatie

Vanaf Cisco ISE 3.1 zijn nieuwere API's beschikbaar in de OpenAPI-indeling. Het beheerbeleid optimaliseert de netwerkbeveiliging en het netwerkbeheer door de interoperabiliteit te verbeteren, de automatiseringsefficiëntie te verbeteren, de beveiliging te versterken, innovatie te bevorderen en de kosten te verlagen. Dit beleid zorgt ervoor dat ISE naadloos kan integreren met andere systemen, geautomatiseerde configuratie en beheer kan realiseren, granulaire toegangscontrole kan bieden, innovatie van derden kan aanmoedigen en beheerprocessen kan vereenvoudigen, waardoor de onderhoudskosten kunnen worden verlaagd en het totale rendement op investeringen kan worden verhoogd.

Configureren

Netwerkdiagram

Topologie

Configuratie op ISE

Stap 1. Voeg een OpenAPI-account toe.

Om een API-beheerder toe te voegen, navigeer naar Beheer > Systeem > Admin Access > Beheerders > Admin Gebruikers > Add.

API-beheerder

Stap 2. OpenAPI inschakelen op ISE.

Open API is standaard uitgeschakeld op ISE. Om dit in te schakelen, navigeert u naar Beheer > Systeem > Instellingen > API-instellingen > API-serviceinstellingen. Schakel de opties voor OpenAPI in. Klik op de knop  Opslaan.

OpenAPI inschakelen

Stap 3. Verken ISE OpenAPI.

Naar navigeren Beheer > Systeem > Instellingen > API-instellingen > Overzicht. Klik op OpenAPI om de link te bezoeken.

Bezoek OpenAPI

Python-voorbeelden

Apparaatbeheer - lijst met beleidssets

Deze API haalt informatie op over de beleidssets van de apparaatbeheerder.

Stap 1. Vereiste informatie voor een API-oproep.

Methode

KRIJGEN

URL

https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set

referenties

Gebruik OpenAPI-accountreferenties.

Koppen

accepteren :  application/json

Content-Type :  application/json

Stap 2. Zoek de URL die wordt gebruikt om informatie op te halen over de beleidssets van de apparaatbeheerder.

API-URI

Stap 3. Dit is een voorbeeld van Python-code. Kopieert en plakt de inhoud. Vervang de ISE IP, gebruikersnaam en het wachtwoord. Opslaan als een python-bestand voor uitvoering.

Zorg voor een goede verbinding tussen ISE en het apparaat met het python-codevoorbeeld.

from requests.auth import HTTPBasicAuth

import requests

requests.packages.urllib3.disable_warnings()

if __name__ == "__main__":

url = "https://10.106.33.92/api/v1/policy/device-admin/policy-set"

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

Dit is het voorbeeld van de verwachte output.

Return Code: 200 Expected Outputs: {'version': '1.0.0', 'response': [{'default': True, 'id': '41ed8579-429b-42a8-879e-61861cb82bbf', 'name': 'Default', 'description': 'Tacacs Default policy set', 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': None, 'serviceName': 'Default Device Admin', 'isProxy': False, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/device-admin/policy-set/41ed8579-429b-42a8-879e-61861cb82bbf', 'type': 'application/json'}}]}

DApparaatbeheer - Verificatieregels verkrijgen

Deze API haalt verificatieregels van een bepaalde beleidsset op.

Stap 1. Vereiste informatie voor een API-oproep.

Methode

KRIJGEN

URL

https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set/<ID-of-Policy-Set>/verificatie

referenties

Gebruik OpenAPI-accountreferenties.

Koppen

accepteren :  application/json

Content-Type :  application/json

Stap 2. Bepaal de plaats van de URL die wordt gebruikt om de informatie van de authentificatieregel terug te winnen.

API-URI

Stap 3. Dit is een voorbeeld van Python-code. Kopieert en plakt de inhoud. Vervang de ISE IP, gebruikersnaam en het wachtwoord. Opslaan als een python-bestand voor uitvoering.

Zorg voor een goede verbinding tussen ISE en het apparaat met het python-codevoorbeeld.

from requests.auth import HTTPBasicAuth

import requests

requests.packages.urllib3.disable_warnings()

if __name__ == "__main__":

url = "https://10.106.33.92/api/v1/policy/device-admin/policy-set/41ed8579-429b-42a8-879e-61861cb82bbf/authentication"

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

Opmerking: de ID is afkomstig van API-uitgangen in stap 3 van Apparaatbeheer - Lijst met beleidssets. Bijvoorbeeld, 41ed8579-429b-42a8-879e-61861cb82bbf is een standaard TACACS beleidsset.

Dit is het voorbeeld van de verwachte output.

Return Code: 200 Expected Outputs: {'version': '1.0.0', 'response': [{'rule': {'default': True, 'id': '73461597-0133-45ce-b4cb-6511ce56f262', 'name': 'Default', 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': None}, 'identitySourceName': 'All_User_ID_Stores', 'ifAuthFail': 'REJECT', 'ifUserNotFound': 'REJECT', 'ifProcessFail': 'DROP', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/device-admin/policy-set/41ed8579-429b-42a8-879e-61861cb82bbf/authentication/73461597-0133-45ce-b4cb-6511ce56f262', 'type': 'application/json'}}]}

Apparaatbeheer - autorisatieregels verkrijgen

Deze API wint autorisatieregels van een bepaalde beleidsreeks terug.

Stap 1. Vereiste informatie voor een API-oproep.

Methode

KRIJGEN

URL

https://<ISE-PAN-IP>/api/v1/policy/device-admin/policy-set/<ID-of-Policy-Set>/autorisatie

referenties

Gebruik OpenAPI-accountreferenties.

Koppen

accepteren :  application/json

Content-Type :  application/json

Stap 2. Zoek de URL die wordt gebruikt om de informatie over de autorisatieregel op te halen.

API-URI

Stap 3. Dit is een voorbeeld van Python-code. Kopieert en plakt de inhoud. Vervang de ISE IP, gebruikersnaam en het wachtwoord. Opslaan als een python-bestand voor uitvoering.

Zorg voor een goede verbinding tussen ISE en het apparaat met het python-codevoorbeeld.

from requests.auth import HTTPBasicAuth import requests requests.packages.urllib3.disable_warnings() if __name__ == "__main__": url = "https://10.106.33.92/api/v1/policy/device-admin/policy-set/41ed8579-429b-42a8-879e-61861cb82bbf/authorization" 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())

Opmerking: de ID is afkomstig van API-uitgangen in stap 3 van Apparaatbeheer - Lijst met beleidssets. Bijvoorbeeld, 41ed8579-429b-42a8-879e-61861cb82bbf is een standaard TACACS beleidsset.

Dit is het voorbeeld van de verwachte output.

Return Code:

200

Expected Outputs:

{'version': '1.0.0', 'response': [{'rule': {'default': True, 'id': '39d9f546-e58c-4f79-9856-c0a244b8a2ae', 'name': 'Default', 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': None}, 'commands': ['DenyAllCommands'], 'profile': 'Deny All Shell Profile', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/device-admin/policy-set/41ed8579-429b-42a8-879e-61861cb82bbf/authorization/39d9f546-e58c-4f79-9856-c0a244b8a2ae', 'type': 'application/json'}}]}

Netwerktoegang - lijst van beleidssets

Deze API haalt beleidssets voor netwerktoegang van ISE-implementaties op.

Stap 1. Vereiste informatie voor een API-oproep.

Methode

KRIJGEN

URL

https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set

referenties

Gebruik OpenAPI-accountreferenties.

Koppen

accepteren :  application/json

Content-Type :  application/json

Stap 2. Bepaal de plaats van de URL die wordt gebruikt om de specifieke de knoopinformatie van ISE terug te winnen.

API-URI

Stap 3. Dit is een voorbeeld van Python-code. Kopieert en plakt de inhoud. Vervang de ISE IP, gebruikersnaam en het wachtwoord. Opslaan als een python-bestand voor uitvoering.

Zorg voor een goede verbinding tussen ISE en het apparaat met het python-codevoorbeeld.

from requests.auth import HTTPBasicAuth

import requests

requests.packages.urllib3.disable_warnings()

if __name__ == "__main__":

url = "https://10.106.33.92/api/v1/policy/network-access/policy-set"

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

Dit is het voorbeeld van de verwachte output.

Return Code: 200 Expected Outputs: {'version': '1.0.0', 'response': [{'default': False, 'id': 'ba71a417-4a48-4411-8bc3-d5df9b115769', 'name': 'BGL_CFME02-FMC', 'description': None, 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': {'link': None, 'conditionType': 'ConditionAndBlock', 'isNegate': False, 'children': [{'link': None, 'conditionType': 'ConditionAttributes', 'isNegate': False, 'dictionaryName': 'DEVICE', 'attributeName': 'Location', 'operator': 'equals', 'dictionaryValue': None, 'attributeValue': 'All Locations#BGL_CFME02'}, {'link': None, 'conditionType': 'ConditionAttributes', 'isNegate': False, 'dictionaryName': 'DEVICE', 'attributeName': 'Device Type', 'operator': 'equals', 'dictionaryValue': None, 'attributeValue': 'All Device Types#FMCv'}]}, 'serviceName': 'Default Network Access', 'isProxy': False, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769', 'type': 'application/json'}}, {'default': False, 'id': 'f7d82b2d-1007-44f6-961b-efa721d6ebec', 'name': 'SPRT', 'description': None, 'hitCounts': 0, 'rank': 1, 'state': 'enabled', 'condition': {'link': None, 'conditionType': 'ConditionAttributes', 'isNegate': False, 'dictionaryName': 'DEVICE', 'attributeName': 'Device Type', 'operator': 'equals', 'dictionaryValue': None, 'attributeValue': 'All Device Types#SPRT'}, 'serviceName': 'Default Network Access', 'isProxy': False, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/f7d82b2d-1007-44f6-961b-efa721d6ebec', 'type': 'application/json'}}, {'default': True, 'id': '467f6a69-344d-407f-81a4-e87c5dc7e438', 'name': 'Default', 'description': 'Default policy set', 'hitCounts': 0, 'rank': 2, 'state': 'enabled', 'condition': None, 'serviceName': 'Default Network Access', 'isProxy': False, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/467f6a69-344d-407f-81a4-e87c5dc7e438', 'type': 'application/json'}}]}

Netwerktoegang - Verificatieregels verkrijgen

Deze API haalt verificatieregels van een bepaalde beleidsset op.

Stap 1. Vereiste informatie voor een API-oproep.

Methode

KRIJGEN

URL

https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set/<ID-of-Policy-Set>/verificatie

referenties

Gebruik OpenAPI-accountreferenties.

Koppen

accepteren :  application/json

Content-Type :  application/json

Stap 2. Zoek de URL die wordt gebruikt om de informatie over de verificatieregel op te halen.

API-URI

Stap 3. Dit is een voorbeeld van Python-code. Kopieert en plakt de inhoud. Vervang de ISE IP, gebruikersnaam en het wachtwoord. Opslaan als een python-bestand voor uitvoering.

Zorg voor een goede verbinding tussen ISE en het apparaat met het python-codevoorbeeld.

from requests.auth import HTTPBasicAuth

import requests

requests.packages.urllib3.disable_warnings()

if __name__ == "__main__":

url = "https://10.106.33.92/api/v1/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769/authentication"

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

Opmerking: de ID is afkomstig van API-uitgangen in stap 3 van Network Access - List of Policy Sets. Dat ba71a417-4a48-4411-8bc3-d5df9b115769 is bijvoorbeeld BGL_CFME02-FMCzo.

Dit is het voorbeeld van de verwachte output.

Return Code: 200 Expected Outputs: {'version': '1.0.0', 'response': [{'rule': {'default': True, 'id': '03875777-6c98-4114-a72e-a3e1651e533a', 'name': 'Default', 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': None}, 'identitySourceName': 'S.H.I.E.L.D', 'ifAuthFail': 'REJECT', 'ifUserNotFound': 'REJECT', 'ifProcessFail': 'DROP', 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769/authentication/03875777-6c98-4114-a72e-a3e1651e533a', 'type': 'application/json'}}]}

Netwerktoegang - vergunningsregels verkrijgen

Deze API wint autorisatieregels van een bepaalde beleidsreeks terug.

Stap 1. Vereiste informatie voor een API-oproep.

Methode

KRIJGEN

URL

https://<ISE-PAN-IP>/api/v1/policy/network-access/policy-set/<ID-of-Policy-Set>/authorisatie

referenties

Gebruik OpenAPI-accountreferenties.

Koppen

accepteren :  application/json

Content-Type :  application/json

Stap 2. Zoek de URL die wordt gebruikt om de informatie over de autorisatieregel op te halen.

API-URI

Stap 3. Dit is een voorbeeld van Python-code. Kopieert en plakt de inhoud. Vervang de ISE IP, gebruikersnaam en het wachtwoord. Opslaan als een python-bestand voor uitvoering.

Zorg voor een goede verbinding tussen ISE en het apparaat met het python-codevoorbeeld.

from requests.auth import HTTPBasicAuth

import requests

requests.packages.urllib3.disable_warnings()

if __name__ == "__main__":

url = "https://10.106.33.92/api/v1/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769/authorization"

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

Opmerking: de ID is afkomstig van API-uitgangen in stap 3 van Network Access - List of Policy Sets. Bijvoorbeeld, ba71a417-4a48-441-8bc3-d5df9b115769 is BGL_CFME02-FMC.

Dit is het voorbeeld van de verwachte output.

Return Code: 200 Expected Outputs: {'version': '1.0.0', 'response': [{'rule': {'default': False, 'id': 'bc67a4e5-9000-4645-9d75-7c2403ca22ac', 'name': 'FMC Admin', 'hitCounts': 0, 'rank': 0, 'state': 'enabled', 'condition': {'link': None, 'conditionType': 'ConditionAttributes', 'isNegate': False, 'dictionaryName': 'S.H.I.E.L.D', 'attributeName': 'ExternalGroups', 'operator': 'equals', 'dictionaryValue': None, 'attributeValue': 'cisco.com/Cisco/Lab/Groups/FmcAdmin'}}, 'profile': ['FMC-BGL_CFME02-Admin'], 'securityGroup': None, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769/authorization/bc67a4e5-9000-4645-9d75-7c2403ca22ac', 'type': 'application/json'}}, {'rule': {'default': True, 'id': 'e9f3034c-b768-4479-b6c3-3bb64bb6722c', 'name': 'Default', 'hitCounts': 0, 'rank': 1, 'state': 'enabled', 'condition': None}, 'profile': ['DenyAccess'], 'securityGroup': None, 'link': {'rel': 'self', 'href': 'https://10.106.33.92/api/v1/policy/network-access/policy-set/ba71a417-4a48-4411-8bc3-d5df9b115769/authorization/e9f3034c-b768-4479-b6c3-3bb64bb6722c', 'type': 'application/json'}}]}

Problemen oplossen

Om problemen op te lossen die betrekking hebben op de OpenAPI's, stelt u het niveau Log voor de component OpenAPI in op DEBUG in het venster Debug Log Configuration.

Om debug in te schakelen, navigeer naar Operations > Troubleshoot > Debug Wizard > Debug Log Configuration > ISE Node > Appliance.

Debug van API-service

Als u het debug-logbestand wilt downloaden, gaat u naar Operations > Troubleshoot > Logbestanden downloaden > ISE PAN-knooppunt > Debug-logbestanden.

Debug logs downloaden