Introduzione
In questo documento viene descritto come configurare Cisco Identity Service Engine 3.3 pxGrid Context-in utilizzando Open API.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- Cisco Identity Service Engine (ISE) 3.3
- API REST avanzato
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
- Cisco ISE 3.3
- Client API REST Insonnia
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
PxGrid - Soluzione Context-In tramite API REST. Ciò è dovuto al fatto che il modello pubsub Context-In presenta alcune limitazioni relative all'utilizzo di attributi personalizzati nei criteri di profiling e autorizzazione.
Gli attributi personalizzati sono attributi definiti dall'utente che non vengono inseriti come dati dell'endpoint tramite normali richieste di rete. Prima di ISE 3.3, esistevano principalmente due modi per immettere valori di attributi personalizzati come dati dell'endpoint.
- PxGrid Context-In argomento relativo alle risorse, in cui ISE agisce come consumer e utilizza i dati dell'endpoint pubblicati da un prodotto esterno di terze parti.
- API di creazione/aggiornamento di servizi RESTful estensibili per endpoint.
Entrambi i canali presentano limitazioni per l'utilizzo di attributi personalizzati nei criteri di profilatura e autorizzazione.
Fasi iniziali
Abilita Open API su ISE
Open API è disabilitato per impostazione predefinita su ISE. Per abilitarlo, passare a Administration > System > API Settings > API Service Settings
. Attivate o disattivate le opzioni di Open API e fate clic su Salva (Save).
Abilita Open API
Abilita attributo personalizzato per applicazione profilo su ISE
L'attributo personalizzato per l'applicazione della profilatura è disabilitato per impostazione predefinita in ISE. Per abilitarlo, passare a Work Centers > Profiler > Settings > Profiler Settings
. Abilita attributo personalizzato per applicazione profilatura. Fare clic su Salva.
Abilita attributo personalizzato per applicazione profilatura
Nota: il flag Attributo personalizzato per applicazione profilatura indica che viene eseguita un'azione di riprofilatura automatica se viene modificato un attributo personalizzato.
Interfaccia utente Swagger
Per accedere a tutte le definizioni Open API su ISE, selezionare Administration > System > Settings > API Settings
e fare clic su 'Per ulteriori informazioni su ISE Open API, visitare:'.
Gli URL per le definizioni utilizzate in questo documento sono:
- Attributo personalizzato: https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=CustomAttributes
- Endpoint: https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=Endpoints
Interfaccia utente Swagger
Configurazione degli attributi personalizzati dell'endpoint tramite l'API Open
Crea attributo personalizzato endpoint
Per creare un attributo personalizzato per l'endpoint, è necessario assegnargli un nome e un tipo.
I tipi che è possibile utilizzare sono:
- Stringa
- Int
- Booleano
- Fluttuare
- Lunga
- IP
- Data
Metodo |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint-custom-attribute |
Tipo di autenticazione |
Base |
Credenziali |
Usa credenziali dell'account API aperto |
Intestazioni |
Accetta:application/json Content-Type:applicazione/json |
Corpo |
{ "attributeName": "DeviceType", "attributeType": "String" } |
Corpo:
Attributo personalizzato endpoint corpo
Autenticazione:
Attributo personalizzato endpoint di autenticazione
Intestazioni:
Attributo personalizzato endpoint intestazioni
Output previsto:
Attributo personalizzato endpoint di output previsto
Verifica creazione attributi personalizzati
Da ISE, selezionare Administration > Identity Management > Settings > Endpoint Custom Attributes
. Verificare la creazione dell'attributo.
Interfaccia grafica dell'attributo personalizzato dell'endpoint
Nota: gli attributi personalizzati dell'endpoint possono essere aggiunti manualmente. Da ISE, selezionare Administration > Identity Management > Settings > Endpoint Custom Attributes
. Fare clic su +, immettere il Nome attributo, quindi scegliere il Tipo.
API di contesto per endpoint singolo
Criterio di profilatura per l'attributo personalizzato
Da ISE, selezionare Work Centers > Profiler > Profiling Policies
. Fare clic su Add
.
Inserire Name
del criterio di profiling.
Inferiore Rules
, passare a Attributes > Create New Condition > CUSTOMATTRIBUTE
. Scegliere l'attributo personalizzato creato, scegliere Operatore e immettere il valore da abbinare. Fare clic su Invia.
In questo esempio, il criterio di profiling DeviceTypeA è definito con CUSTOMATTRIBUTE_DeviceType.
Criteri profiler
Crea endpoint
In questo esempio, un endpoint con l'indirizzo MAC 94:DA:5F:96:74:63
e DeviceType impostato su A.
Metodo |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint |
Tipo di autenticazione |
Base |
Credenziali |
Usa credenziali dell'account API aperto |
Intestazioni |
Accetta:application/json Content-Type:applicazione/json |
Corpo |
{ "name": "94:DA:5F:96:74:63", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:63", "portalUser": "", "profileId": "", "ipAddress": null, "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false } |
Corpo:
Endpoint corpo
Autenticazione:
Endpoint di autenticazione
Intestazioni:
Endpoint Headers
Output previsto:
Endpoint di output previsto
Verifica creazione endpoint
Da ISE, selezionare Context Visibility > Endpoints
. Filtrare con il nome del criterio di profilatura creato nella colonna Profilo endpoint.
Visibilità contesto DeviceTypeA
Aggiorna endpoint
Per aggiornare gli endpoint tramite Open API, il percorso URL richiede il valore del parametro. Questo parametro può essere l'ID o l'indirizzo MAC dell'endpoint.
In questo esempio, un nuovo criterio di profilatura DeviceTypeB
è stato definito per aggiornare l'attributo personalizzato DeviceType impostato su B e il valore è impostato come indirizzo MAC.
Metodo |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/{value} |
Tipo di autenticazione |
Base |
Credenziali |
Usa credenziali dell'account API aperto |
Intestazioni |
Accetta:application/json Content-Type:applicazione/json |
Corpo |
{ "name": "94:DA:5F:96:74:63", "customAttributes": {"DeviceType":"B"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:63", "portalUser": "", "profileId": "", "ipAddress": null, "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false } |
Corpo:
Endpoint aggiornamento corpo
Autenticazione:
Endpoint di aggiornamento autenticazione
Intestazioni:
Endpoint aggiornamento intestazioni
Output previsto:
Endpoint di aggiornamento output previsto
Verifica aggiornamento endpoint
Da ISE, selezionare Context Visibility > Endpoints
. Filtro con il nome del criterio di profilatura creato in Endpoint Profile
colonna.
Visibilità contesto DeviceTypeB
Bulk API Context-In
Configurazione dei criteri di autorizzazione con il gruppo di identità degli endpoint
Da ISE, selezionare Policy > Policy Sets > Select a Policy Set > Authorization Policy
. Fare clic sull'icona a forma di ingranaggio in uno dei criteri di autorizzazione e scegliere Inserisci.
Assegnare un nome alla regola e aggiungere una nuova condizione per aprire Studio condizioni.
Aggiungere un nuovo attributo e passare a Identity Group > Name > CONTAINS > Select the Endpoint Profile > USE
.
Scegliere il profilo come risultato della condizione. Fare clic su Salva.
In questo esempio, il DeviceTypeA è il nome della regola.
Set di criteri
Aggiorna endpoint in blocco
Per modificare l'attributo per endpoint diversi, è necessaria la chiamata in blocco all'API.
In questo esempio, alla richiesta Radius da endpoint diversi non è associato alcun attributo personalizzato e il profilo dell'endpoint è impostato su Sconosciuto.
Profilo sconosciuto visibilità contesto
Metodo |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/bulk |
Tipo di autenticazione |
Base |
Credenziali |
Usa credenziali dell'account API aperto |
Intestazioni |
Accetta:application/json Content-Type:applicazione/json |
Corpo |
[ { "name": "94:DA:5F:96:74:61", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:61", "portalUser": "", "profileId": "", "ipAddress": "94:DA:5F:96:74:61", "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false }, { "name": "94:DA:5F:96:74:62", "customAttributes": {"DeviceType":"A"}, "description": null, "connectedLinks": null, "mdmAttributes": null, "groupId": "aa0e8b20-8bff-11e6-996c-525400b48521", "identityStore": "", "identityStoreId": "", "mac": "94:DA:5F:96:74:62", "portalUser": "", "profileId": "", "ipAddress": "10.218.185.96", "vendor": null, "productId": null, "serialNumber": null, "deviceType": null, "softwareRevision": null, "hardwareRevision": null, "protocol": null, "staticGroupAssignment": false, "staticProfileAssignment": false },....... ] |
Corpo:
Corpo endpoint in blocco
Autenticazione:
Bulk endpoint autenticazione
Intestazioni:
Intestazioni in blocco endpoint
Output previsto:
Endpoint di output previsto in blocco
Verifica aggiornamento di massa endpoint
Da ISE, selezionare Context Visibility > Endpoints
. Filtrare con il nome del criterio di profilatura creato nella colonna Profilo endpoint.
Profilo endpoint DeviceTypeA di visibilità del contesto
Per l'endpoint, per utilizzare il DeviceTypeA del criterio di autorizzazione corretto, è necessario eseguire di nuovo l'autenticazione dell'endpoint.
Criterio di autorizzazione DeviceTypeA di visibilità del contesto
Risoluzione dei problemi
Le informazioni contenute in questa sezione permettono di risolvere i problemi relativi alla configurazione.
Da ISE, selezionare Operation > Troubleshoot > Debug Wizard > Debug Log Configuration
. Scegliere il nodo di amministrazione principale (PAN) e fare clic su Modifica.
Filtrare il servizio API Nome componente per e scegliere il livello di log necessario. Fare clic su Salva.
Debug Level Configuration Open API
- Dalla CLI di ISE PAN, i log sono disponibili all'indirizzo:
admin#show logging application api-service.log
- Dalla GUI di ISE, selezionare
Operations > Troubleshoot > Download Logs > Select ISE PAN > Debug log > Debug Log Type > Application Logs
. Scarica i file zip per api-service.log
.
- Codici di risposta API e relativi significati possibili:
- 200 (OK): indica che l'API aperta ha eseguito l'azione desiderata.
- 201 (Creato): indica che la risorsa è stata creata e che la richiesta è stata completata.
- 400 (richiesta non valida): il server non è in grado di elaborare la richiesta. Riconoscere gli errori del client causati da sintassi delle richieste non valida, parametri non validi e così via. Leggere i dettagli del messaggio, se disponibili.
- 401 (non autorizzato): indica che l'azione è stata eseguita con credenziali errate o senza credenziali oppure che l'account non è autorizzato a eseguire l'azione.
- 403 (accesso negato): indica che il server è in grado di comprendere la richiesta ma non è autorizzato.
- 404 (non trovato): indica che il server non è in grado di trovare la risorsa richiesta.
- 500 (errore interno del server): indica un problema sul lato server. L'accesso ad ISE può aiutare a capire la causa.