Einleitung
In diesem Dokument wird beschrieben, wie Sie Cisco Identity Service Engine 3.3 pxGrid Context-in mithilfe einer offenen API konfigurieren.
Voraussetzungen
Anforderungen
Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:
- Cisco Identity Service Engine (ISE) 3.3
- Advance REST-API
Verwendete Komponenten
Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:
- Cisco ISE 3.3
- Insomnia REST API-Client
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.
Hintergrundinformationen
pxGrid Context-In Lösung über REST APIs. Dies liegt daran, dass das Context-In-Pubsub-Modell in Bezug auf die Verwendung benutzerdefinierter Attribute in Profilerstellungs- und Autorisierungsrichtlinien einige Einschränkungen aufweist.
Benutzerdefinierte Attribute sind benutzerdefinierte Attribute, die nicht über reguläre Netzwerkprüfungen als Endpunktdaten eingehen. Vor ISE 3.3 gab es hauptsächlich zwei Möglichkeiten, benutzerdefinierte Attributwerte als Endpunktdaten einzugeben.
- pxGrid Context-In Asset Topic, bei dem die ISE als Verbraucher fungiert und Endpunktdaten nutzt, die von einem externen Drittanbieterprodukt veröffentlicht werden.
- Endpoint Extensible RESTful Services (ERS) - Erstellen/Aktualisieren von APIs
Für beide Kanäle bestehen Einschränkungen bei der Verwendung benutzerdefinierter Attribute in Profilerstellungs- und Autorisierungsrichtlinien.
Erste Schritte
Offene API auf ISE aktivieren
Die offene API ist auf der ISE standardmäßig deaktiviert. Um diese Funktion zu aktivieren, navigieren Sie zu Administration > System > API Settings > API Service Settings
. Schalten Sie die Open API-Optionen ein und klicken Sie auf Speichern.
Offene API aktivieren
Benutzerdefiniertes Attribut für Profildurchsetzung auf ISE aktivieren
Benutzerdefiniertes Attribut für die Profildurchsetzung ist auf ISE standardmäßig deaktiviert. Um diese Funktion zu aktivieren, navigieren Sie zu Work Centers > Profiler > Settings > Profiler Settings
. Benutzerdefiniertes Attribut für die Profildurchsetzung aktivieren. Klicken Sie auf Speichern.
Benutzerdefiniertes Attribut für Profilerzwingung aktivieren
Hinweis: Das Flag Benutzerdefiniertes Attribut für die Profilerzwingung gibt an, dass eine automatische Neuprofilierung erfolgt, wenn ein benutzerdefiniertes Attribut geändert wird.
Swagger-Benutzeroberfläche
Um auf alle Open API-Definitionen auf der ISE zuzugreifen, navigieren Sie zu Administration > System > Settings > API Settings
und klicke auf "Weitere Informationen zur offenen ISE-API finden Sie unter:".
Die URLs für die in diesem Dokument verwendeten Definitionen sind:
- Benutzerdefiniertes Attribut: https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=CustomAttributes
- Endgerät: https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=Endgeräte
Swagger-Benutzeroberfläche
Benutzerdefinierte Endpunkt-Attribute mit offener API konfigurieren
Benutzerdefiniertes Endgeräteattribut erstellen
Um ein benutzerdefiniertes Endpunktattribut zu erstellen, müssen Sie ihm einen Namen und einen Typ zuweisen.
Folgende Typen können verwendet werden:
- String
- Int
- Boolesch
- Gleitkomma
- Lang
- IP
- Datum
Methode |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint-custom-attribute |
Authentifizierungstyp |
Grundlegend |
Anmeldeinformationen |
Open API-Kontoinformationen verwenden |
Header |
Akzeptieren:Anwendung/JSON Inhaltstyp:Anwendung/json |
Nachrichtentext |
{ "attributeName": "DeviceType", "attributeType": "String" } |
Nachrichtentext:
Benutzerdefiniertes Attribut für Body-Endpunkt
Authentifizierung:
Benutzerdefiniertes Attribut für Authentifizierungsendpunkt
Header:
Benutzerdefiniertes Attribut für Header-Endpunkte
Erwartete Ausgabe:
Benutzerdefiniertes Attribut für Ausgabenendpunkt erwartet
Benutzerdefinierte Attributerstellung überprüfen
Navigieren Sie von der ISE zu Administration > Identity Management > Settings > Endpoint Custom Attributes
. Überprüfen Sie, ob das Attribut erstellt wurde.
Benutzerdefinierte Endpunkt-Attribut-GUI
Hinweis: Benutzerdefinierte Endpunkt-Attribute können manuell hinzugefügt werden. Navigieren Sie von der ISE zu Administration > Identity Management > Settings > Endpoint Custom Attributes
. Klicken Sie auf +, geben Sie den Attributnamen ein, und wählen Sie den Typ aus.
Context-In API für einen Endpunkt
Profilerstellungsrichtlinie für benutzerdefiniertes Attribut
Navigieren Sie von der ISE zu Work Centers > Profiler > Profiling Policies
. Klicken Sie auf Add
.
Eingabe Name
der Profiling-Richtlinie.
Unter Rules
, navigieren Sie zu Attributes > Create New Condition > CUSTOMATTRIBUTE
. Wählen Sie das erstellte benutzerdefinierte Attribut aus, wählen Sie Operator aus, und geben Sie den abzugleichenden Wert ein. Klicken Sie auf Senden.
In diesem Beispiel wird die DevicTypeA-Profilierungsrichtlinie mit CUSTOMATTRIBUTE_DeviceType definiert.
Profiler-Richtlinie
Endpunkt erstellen
In diesem Beispiel ist ein Endpunkt mit der MAC-Adresse 94:DA:5F:96:74:63
und DeviceType auf A festgelegt wird.
Methode |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint |
Authentifizierungstyp |
Grundlegend |
Anmeldeinformationen |
Open API-Kontoinformationen verwenden |
Header |
Akzeptieren:Anwendung/JSON Inhaltstyp:Anwendung/json |
Nachrichtentext |
{ "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 } |
Nachrichtentext:
Body-Endpunkt
Authentifizierung:
Authentifizierungs-Endpunkt
Header:
Header-Endpunkt
Erwartete Ausgabe:
Erwarteter Ausgabeendpunkt
Endpunkterstellung überprüfen
Navigieren Sie von der ISE zu Context Visibility > Endpoints
. Filtern Sie mit dem Namen der Profilerstellungsrichtlinie, die in der Spalte Endpunktprofil erstellt wurde.
Kontextsichtbarkeit GerätetypA
Endpunkt aktualisieren
Um Endpunkte über Open API zu aktualisieren, benötigt der URL-Pfad den Parameterwert. Bei diesem Parameter kann es sich um die ID oder MAC-Adresse des Endpunkts handeln.
In diesem Beispiel wird eine neue Profilierungsrichtlinie DeviceTypeB
definiert wurde, um das benutzerdefinierte Attribut DeviceType auf B und den Wert als MAC-Adresse zu aktualisieren.
Methode |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/{value} |
Authentifizierungstyp |
Grundlegend |
Anmeldeinformationen |
Open API-Kontoinformationen verwenden |
Header |
Akzeptieren:Anwendung/JSON Inhaltstyp:Anwendung/json |
Nachrichtentext |
{ "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 } |
Nachrichtentext:
Endpunkt für Körperaktualisierung
Authentifizierung:
Endpunkt für Authentifizierungsaktualisierung
Header:
Endpunkt für Kopfzeilenaktualisierung
Erwartete Ausgabe:
Erwartetes Endgerät für Ausgabenaktualisierung
Endgeräteaktualisierung überprüfen
Navigieren Sie von der ISE zu Context Visibility > Endpoints
. Filtern Sie mit dem Namen der Profiling-Richtlinie, die unter erstellt wurde Endpoint Profile
Spalte.
Kontextsichtbarkeit GerätetypB
Kontext-API Bulk
Konfiguration der Autorisierungsrichtlinie mit Endpunkt-Identitätsgruppe
Navigieren Sie von der ISE zu Policy > Policy Sets > Select a Policy Set > Authorization Policy
. Klicken Sie in einer der Autorisierungsrichtlinien auf das Zahnrad-Symbol, und wählen Sie Einfügen aus.
Geben Sie der Regel einen Namen, und fügen Sie eine neue Bedingung hinzu, um das Bedingungsstudio zu öffnen.
Fügen Sie ein neues Attribut hinzu, und navigieren Sie zu Identity Group > Name > CONTAINS > Select the Endpoint Profile > USE
.
Wählen Sie das Profil als Ergebnis der Bedingung. Klicken Sie auf Speichern.
In diesem Beispiel ist der DeviceTypeA der Name der Regel.
Policy Sets
Massenaktualisierung des Endpunkts
Um das Attribut für verschiedene Endpunkte zu ändern, ist ein umfangreicher API-Aufruf erforderlich.
In diesem Beispiel hat die Radius-Anforderung von verschiedenen Endpunkten kein benutzerdefiniertes Attribut, und das Endpunktprofil wird als Unbekannt festgelegt.
Kontexttransparenz Unbekanntes Profil
Methode |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/bulk |
Authentifizierungstyp |
Grundlegend |
Anmeldeinformationen |
Open API-Kontoinformationen verwenden |
Header |
Akzeptieren:Anwendung/JSON Inhaltstyp:Anwendung/json |
Nachrichtentext |
[ { "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 },....... ] |
Nachrichtentext:
Massenanteil am Body-Endpunkt
Authentifizierung:
Massen-Authentifizierungs-Endpunkt
Header:
Header Endpunkt-Massen
Erwartete Ausgabe:
Erwartete Massenausgabe von Endpunkten
Massenaktualisierung für Endpunkte überprüfen
Navigieren Sie von der ISE zu Context Visibility > Endpoints
. Filtern Sie mit dem Namen der Profilierungsrichtlinie, die in der Spalte Endpunktprofil erstellt wurde.
Kontextsichtbarkeit GerätetypEndpunktprofil
Damit der Endpunkt den richtigen Gerätetyp für die Autorisierungsrichtlinie A verwenden kann, muss er sich erneut authentifizieren.
Kontexttransparenz GerätTypA Autorisierungsrichtlinie
Fehlerbehebung
In diesem Abschnitt erhalten Sie Informationen zur Fehlerbehebung in Ihrer Konfiguration.
Navigieren Sie von der ISE zu Operation > Troubleshoot > Debug Wizard > Debug Log Configuration
. Wählen Sie Ihren primären Admin-Knoten (PAN) aus, und klicken Sie auf Edit.
Filtern Sie den Component Name by API-Service, und wählen Sie die erforderliche Protokollstufe aus. Klicken Sie auf Speichern.
Offene API für Konfiguration der Debugging-Ebene
- Auf der ISE PAN CLI finden Sie die Protokolle unter:
admin#show logging application api-service.log
- Navigieren Sie auf der ISE-GUI zu
Operations > Troubleshoot > Download Logs > Select ISE PAN > Debug log > Debug Log Type > Application Logs
. Zip-Dateien herunterladen für api-service.log
.
- API-Antwortcodes und ihre möglichen Bedeutungen:
- 200 (OK): Zeigt an, dass die Open API die gewünschte Aktion erfolgreich durchgeführt hat.
- 201 (Erstellt): gibt an, dass die Ressource erstellt wurde und die Anforderung erfolgreich war.
- 400 (Bad Request) (400 (Ungültige Anforderung)): Der Server kann die Anforderung nicht verarbeiten. Erkennen von Client-Fehlern aufgrund einer fehlerhaften Anforderungssyntax, ungültigen Parametern usw. Lesen Sie die Nachrichtendetails, falls verfügbar.
- 401 (Nicht autorisiert): Zeigt an, dass die Aktion mit den falschen Anmeldeinformationen oder ohne Anmeldeinformationen durchgeführt wurde, oder dass das Konto nicht autorisiert ist, diese Aktion auszuführen.
- 403 (Verboten): Zeigt an, dass der Server die Anforderung verstehen kann, aber nicht autorisiert ist.
- 404 (Not Found) (Nicht gefunden): Zeigt an, dass der Server die angeforderte Ressource nicht finden kann.
- 500 (Internal Server Error) (500 (Interner Serverfehler)): Zeigt ein serverseitiges Problem an. Protokolle auf der ISE können helfen, die Ursache zu verstehen.