Introduction
Ce document décrit comment configurer Cisco Identity Service Engine 3.3 pxGrid Context-in à l'aide de l'API ouverte.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Cisco Identity Service Engine (ISE) 3.3
- API REST avancée
Composants utilisés
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
- Cisco ISE 3.3
- Client API REST Insomnia
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Informations générales
Solution Context-In pxGrid via les API REST. Cela est dû au fait que le modèle pubsub Context-In présente certaines limites en ce qui concerne l'utilisation d'attributs personnalisés dans les stratégies de profilage et d'autorisation.
Les attributs personnalisés sont des attributs définis par l'utilisateur qui n'entrent pas en tant que données de point d'extrémité par le biais de sondes réseau normales. Avant ISE 3.3, il y avait principalement deux façons d'entrer des valeurs d'attribut personnalisées en tant que données de terminal.
- pxGrid Context-In Asset topic, où ISE agit en tant que consommateur et consomme des données de terminaux publiées par un produit tiers externe.
- Création/mise à jour des API Endpoint Extensible RESTful Services (ERS).
Ces deux canaux présentent des limitations quant à l'utilisation d'attributs personnalisés dans les stratégies de profilage et d'autorisation.
Étapes initiales
Activer l'API ouverte sur ISE
L'API ouverte est désactivée par défaut sur ISE. Pour l'activer, accédez à Administration > System > API Settings > API Service Settings
. Activez les options de l'API ouverte et cliquez sur Enregistrer.
Activer l'API ouverte
Activer l'attribut personnalisé pour l'application du profilage sur ISE
L'attribut personnalisé pour l'application du profilage est désactivé par défaut sur ISE. Pour l'activer, accédez à Work Centers > Profiler > Settings > Profiler Settings
. Activer l'attribut personnalisé pour l'application du profilage. Cliquez sur Save.
Activer l'attribut personnalisé pour l'application du profilage
Remarque : l'indicateur Attribut personnalisé pour l'application du profilage indique qu'une action de reprofilage automatique a lieu si un attribut personnalisé est modifié.
Interface utilisateur Swagger
Afin d'accéder à toutes les définitions d'API ouvertes sur ISE, accédez à Administration > System > Settings > API Settings
et cliquez sur « Pour plus d'informations sur l'API ouverte ISE, visitez : ».
Les URL des définitions utilisées dans ce document sont les suivantes :
- Attribut personnalisé : https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=CustomAttributes
- Point de terminaison : https://<ISE-PAN-IP>/api/swagger-ui/index.html?urls.primaryName=Terminaux
Interface utilisateur Swagger
Configuration des attributs personnalisés du terminal via l'API ouverte
Créer un attribut personnalisé de terminal
Afin de créer un attribut personnalisé de point de terminaison, il est obligatoire de lui donner un nom et un type.
Les types pouvant être utilisés sont les suivants :
- Chaîne (string)
- Int
- booléen
- Flotteur
- Longue
- IP
- Date
Méthode |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint-custom-attribute |
Type d'authentification |
De Base |
Identifiants |
Utiliser les informations d'identification du compte Open API |
Header (En-tête) |
Accepter:application/json Content-Type:application/json |
Body (Corps) |
{ "attributeName": "DeviceType", "attributeType": "String" } |
Body (Corps) :
Attribut personnalisé de point de terminaison du corps
Authentification:
Attribut personnalisé du point de terminaison d'authentification
Header (En-tête) :
Attribut personnalisé Header Endpoint
Résultats attendus :
Attribut personnalisé de point de terminaison de sortie attendu
Vérifier la création des attributs personnalisés
À partir d'ISE, accédez à Administration > Identity Management > Settings > Endpoint Custom Attributes
. Vérifiez que l'attribut a été créé.
Interface utilisateur graphique des attributs personnalisés
Remarque : les attributs personnalisés du point de terminaison peuvent être ajoutés manuellement. À partir d'ISE, accédez à Administration > Identity Management > Settings > Endpoint Custom Attributes
. Cliquez sur +, puis entrez le Nom d'attribut, et choisissez le Type.
API Context-In pour point de terminaison unique
Stratégie de profilage pour l'attribut personnalisé
À partir d'ISE, accédez à Work Centers > Profiler > Profiling Policies
. Cliquer Add
.
Saisissez Name
de la stratégie de profilage.
Sous Rules
, accédez à Attributes > Create New Condition > CUSTOMATTRIBUTE
. Choisissez l'attribut personnalisé créé, choisissez Opérateur et entrez la valeur à rapprocher. Cliquez sur Submit.
Dans cet exemple, la politique de profilage DeviceTypeA est définie avec CUSTOMATTRIBUTE_DeviceType.
Stratégie du profileur
Créer un terminal
Dans cet exemple, un point de terminaison avec l'adresse MAC 94:DA:5F:96:74:63
et DeviceType défini sur A est créé.
Méthode |
POST |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint |
Type d'authentification |
De Base |
Identifiants |
Utiliser les informations d'identification du compte Open API |
Header (En-tête) |
Accepter:application/json Content-Type:application/json |
Body (Corps) |
{ "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 } |
Body (Corps) :
Extrémité du corps
Authentification:
Point de terminaison d'authentification
Header (En-tête) :
En-têtes Endpoint
Résultats attendus :
Extrémité de sortie attendue
Vérification de la création des terminaux
À partir d'ISE, accédez à Context Visibility > Endpoints
. Filtrez par le nom de la stratégie de profilage créée sous la colonne Profil de point de terminaison.
Visibilité du contexte DeviceTypeA
Mettre à jour le terminal
Afin de mettre à jour les terminaux via l'API ouverte, le chemin d'URL nécessite la valeur du paramètre. Ce paramètre peut être l'ID ou l'adresse MAC du point d'extrémité.
Dans cet exemple, une nouvelle stratégie de profilage DeviceTypeB
a été défini afin de mettre à jour l'attribut personnalisé DeviceType défini sur B et la valeur est définie comme l'adresse MAC.
Méthode |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/{value} |
Type d'authentification |
De Base |
Identifiants |
Utiliser les informations d'identification du compte Open API |
Header (En-tête) |
Accepter:application/json Content-Type:application/json |
Body (Corps) |
{ "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 } |
Body (Corps) :
Point de terminaison Body Update
Authentification:
Authentication Update Endpoint
Header (En-tête) :
En-têtes Update Endpoint
Résultats attendus :
Point de terminaison de mise à jour attendu
Vérifier la mise à jour des terminaux
À partir d'ISE, accédez à Context Visibility > Endpoints
. Filtrer avec le nom de la stratégie de profilage créée sous Endpoint Profile
colonne.
Visibilité du contexte DeviceTypeB
Groupement d'API Context-In
Configuration de la stratégie d'autorisation avec Endpoint Identity Group
À partir d'ISE, accédez à Policy > Policy Sets > Select a Policy Set > Authorization Policy
. Cliquez sur l'icône d'engrenage dans l'une des stratégies d'autorisation et sélectionnezInsérer.
Donnez un nom à la règle et ajoutez une nouvelle condition afin d'ouvrir le Studio de condition.
Ajoutez un nouvel attribut et accédez à Identity Group > Name > CONTAINS > Select the Endpoint Profile > USE
.
Sélectionnez le profil comme résultat de la condition. Cliquer Enregistrer.
Dans cet exemple, le DeviceTypeA est le nom de la règle.
Ensembles de stratégies
Mettre à jour le terminal en masse
Afin de modifier l'attribut pour différents terminaux, l'appel d'API en bloc est nécessaire.
Dans cet exemple, la requête Radius de différents points d'extrémité n'a aucun attribut personnalisé, et le profil de point d'extrémité est défini comme Inconnu.
Profil inconnu de visibilité du contexte
Méthode |
PUT |
URL |
https://<ISE-PAN-IP>:443/api/v1/endpoint/bulk |
Type d'authentification |
De Base |
Identifiants |
Utiliser les informations d'identification du compte Open API |
Header (En-tête) |
Accepter:application/json Content-Type:application/json |
Body (Corps) |
[ { "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 },....... ] |
Body (Corps) :
Ensemble de terminaux corporels
Authentification:
Endpoint d'authentification groupé
Header (En-tête) :
En-têtes Endpoint Bulk
Résultats attendus :
Nombre de terminaux de sortie attendu
Vérifier la mise à jour groupée des terminaux
À partir d'ISE, accédez à Context Visibility > Endpoints
. Filtrez par le nom de la stratégie de profilage créée dans la colonne Profil de point de terminaison.
Visibilité du contexte PériphériqueTypeA Profil de point de terminaison
Pour le point de terminaison, afin d'utiliser le DeviceTypeA de stratégie d'autorisation correct, le point de terminaison doit s'authentifier à nouveau.
Visibilité du contexte PériphériqueTypeA Stratégie d'autorisation
Dépannage
Cette section fournit des renseignements qui vous permettront de régler les problèmes de configuration.
À partir d'ISE, accédez à Operation > Troubleshoot > Debug Wizard > Debug Log Configuration
. Choisissez votre noeud d'administration principal (PAN) et cliquez sur Modifier.
Filtrez le service API Nom du composant et choisissez le niveau de journalisation requis. Cliquez sur Enregistrer.
Debug Level Configuration Open API
- Sur l'interface de ligne de commande ISE PAN, les journaux se trouvent à :
admin#show logging application api-service.log
- Sur l'interface utilisateur graphique ISE, accédez à
Operations > Troubleshoot > Download Logs > Select ISE PAN > Debug log > Debug Log Type > Application Logs
. Télécharger les fichiers zip pour api-service.log
.
- Codes de réponse API et leurs significations possibles :
- 200 (OK) : indique que l'API ouverte a effectué l'action souhaitée.
- 201 (Créé) : indique que la ressource a été créée et que la demande a abouti.
- 400 (Requête incorrecte) : le serveur ne parvient pas à traiter la requête. Reconnaître les erreurs du client dues à une syntaxe de requête incorrecte, à des paramètres non valides, etc. Lisez les détails du message si disponibles.
- 401 (Non autorisé) : indique que l'action a été entreprise avec des informations d'identification incorrectes ou sans informations d'identification, ou que le compte n'est pas autorisé à effectuer cette action.
- 403 (Forbidden) : indique que le serveur est capable de comprendre la requête, mais qu'il n'est pas autorisé.
- 404 (Not Found) : indique que le serveur ne parvient pas à trouver la ressource demandée.
- 500 (Internal Server Error) : indique un problème côté serveur. Les journaux sur ISE peuvent aider à comprendre la cause.