Dans le cadre de la documentation associée à ce produit, nous nous efforçons d’utiliser un langage exempt de préjugés. Dans cet ensemble de documents, le langage exempt de discrimination renvoie à une langue qui exclut la discrimination en fonction de l’âge, des handicaps, du genre, de l’appartenance raciale de l’identité ethnique, de l’orientation sexuelle, de la situation socio-économique et de l’intersectionnalité. Des exceptions peuvent s’appliquer dans les documents si le langage est codé en dur dans les interfaces utilisateurs du produit logiciel, si le langage utilisé est basé sur la documentation RFP ou si le langage utilisé provient d’un produit tiers référencé. Découvrez comment Cisco utilise le langage inclusif.
Cisco a traduit ce document en traduction automatisée vérifiée par une personne dans le cadre d’un service mondial permettant à nos utilisateurs d’obtenir le contenu d’assistance dans leur propre langue. Il convient cependant de noter que même la meilleure traduction automatisée ne sera pas aussi précise que celle fournie par un traducteur professionnel.
Ce document décrit comment configurer la fonctionnalité Maximum Sessions introduite dans Identity Services Engine (ISE) 2.2. La fonctionnalité Nombre maximal de sessions permet de contrôler et d'appliquer des sessions en direct par utilisateur ou par groupe d'identités. Ce document concerne les sessions RADIUS, mais il peut également être utilisé pour les sessions TACACS.
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :
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. If your network is live, make sure that you understand the potential impact of any command.
ISE version 2.2 peut détecter et créer une stratégie d'application en fonction de la session simultanée de :
L'application et le nombre d'une session simultanée sont uniques et gérés par chaque noeud de service de stratégie (PSN). Il n'y a pas de synchronisation entre les PSN en termes de nombre de sessions. La fonctionnalité de session simultanée est implémentée dans le processus d'exécution et les données sont stockées uniquement en mémoire. En cas de redémarrage de PSN, les compteurs MaxSessions sont réinitialisés.
Le nombre de sessions utilisateur est insensible à la casse en ce qui concerne les noms d'utilisateurs et indépendant du périphérique d'accès au réseau utilisé (tant que vous utilisez le même noeud PSN).
Accédez à Administration > System > Settings > Max Sessions, comme illustré dans l'image :
Pour activer la fonctionnalité, décochez la case Session illimitée par utilisateur, qui est cochée par défaut. Dans le champ Maximum per user Sessions, configurez le nombre de sessions que chaque utilisateur peut avoir sur chaque PSN. Dans cet exemple, il est défini sur 2.
Les utilisateurs des sources d'identité externes (par exemple Active Directory) sont également affectés par cette configuration.
Bob est le nom d'utilisateur d'un compte du domaine Active Directory qui est connecté et joint au serveur ISE. Le nombre maximal de sessions utilisateur est configuré avec la valeur 2, ce qui signifie que toute session pour un même utilisateur au-delà de ce nombre n'est pas autorisée (par PSN).
Comme l'illustre l'image, l'utilisateur Bob se connecte avec le téléphone Android et l'ordinateur Windows avec les mêmes informations d'identification :
Les deux sessions sont autorisées car la limite maximale de sessions n'est pas dépassée. Selon le journal Radius Live détaillé, illustré sur l'image :
2081 L'étape Max sessions policy passée fournit des informations sur la réussite de la vérification Maximum Concurrent Session.
Une fois la troisième connexion avec un autre périphérique et les mêmes informations d'identification initiées, Bob reçoit PermitAccess, mais Access-Reject est envoyé à l'authentificateur :
La session n'est pas autorisée, même si dans le journal en direct Radius, vous pouvez voir qu'elle touche le profil d'autorisation correct. Afin de vérifier les sessions en direct, accédez à Operations > Radius > Live Sessions :
Dans ce cas, les deux sessions ont le statut Démarré, ce qui indique que le début de la comptabilité est arrivé sur ISE pour la session. Il est nécessaire de recevoir Radius Accounting for Max Session pour fonctionner correctement, l'état Authenticated (Session autorisée, mais pas de comptabilité) n'est pas pris en compte lors du comptage de session :
Accédez à Administration > System > Settings > Max Sessions > Group :
Cette configuration applique 2 sessions maximum pour le groupe d'identités interne GroupTest2 : Vous pouvez configurer l'application par groupe uniquement pour les groupes internes.
Alice, Pablo et Peter sont les utilisateurs du magasin d'utilisateurs ISE interne, tous membres du groupe GroupTest2. Selon la configuration de cet exemple, la valeur maximale des sessions est définie sur 2 en fonction de l'appartenance au groupe.
Pablo et Peter se connectent au réseau avec leurs informations d'identification du groupe interne nommé GroupTest2 :
Une fois qu'Alice tente de se connecter, la limite MaxSessions par groupe est appliquée :
Alice n'est pas autorisée à se connecter au réseau car la limite de groupe Max Session est utilisée par Peter et Pablo :
Si le nombre maximal de sessions utilisateur est configuré, les deux fonctionnalités fonctionnent indépendamment. Dans cet exemple, la valeur 1 est attribuée à la valeur Nombre maximal de sessions utilisateur et la valeur 2 à la valeur 2 à la valeur 2 à la valeur 2 à la valeur 1.
Peter doit être autorisé en fonction de la session maximale du groupe (2 sessions), mais en raison de la configuration de la session maximale de l'utilisateur (une session), il ne parvient pas à se connecter au réseau :
Si l'utilisateur est membre de plusieurs groupes à la fois et que le nombre maximal de sessions pour le groupe est configuré pour eux, une fois l'ISE connectée augmente le compteur de la mémoire cache Max Session pour le groupe pour chaque groupe auquel l'utilisateur appartient.
Dans cet exemple, Alice et Pablo sont membres de GroupTest1 et GroupTest2. Veronica appartient uniquement à GroupTest1 et Peter à GroupTest2
La session maximale du groupe est définie sur 2 pour GroupTest1 et GroupTest2 :
Lorsque Alice et Pablo sont connectés au réseau, ils dépassent les limites de session des deux groupes. Veronica, qui appartient uniquement à GroupTest1 et Peter, membre de GroupTest2, ne peuvent pas se connecter en raison de la valeur maximale configurée de la session Max pour le groupe :
Accédez à Administration > System > Settings > Max Sessions > Group.
Cette configuration applique un maximum de 2 sessions pour le groupe d'identités internes GroupTest2.
Alice est membre de GroupTest2 :
Cette fonctionnalité fonctionne de la même manière que la session maximale de l'utilisateur : ISE limite le nombre de sessions simultanées que l'utilisateur peut avoir au sein d'un groupe interne spécifié. Cette configuration n'affecte que l'utilisateur, qui appartient au groupe configuré.
Alice, en tant que membre du GroupTest2 peut avoir deux sessions simultanées, une fois connecté au troisième périphérique, ISE renvoie PermitAccess et Access-Reject en fonction de la session maximale dépassée pour l'utilisateur dans le groupe :
Journaux Radius-Live détaillés :
Si le nombre maximal de sessions utilisateur est également activé, les deux fonctions fonctionnent indépendamment. Si un utilisateur Alice est membre du groupe GroupTest2 avec une session maximale pour l'utilisateur dans le groupe configuré pour 2 et que dans le même temps, le nombre maximal de sessions utilisateur est configuré pour autoriser une seule session par utilisateur, le nombre maximal de sessions utilisateur est prioritaire :
Lorsque Alice tente de se connecter au deuxième périphérique, ISE renvoie Access-Reject en fonction de la limite maximale d'utilisateurs de session dépassée :
La raison du refus peut être vérifiée dans le journal en direct Radius détaillé. La limite maximale d'utilisateurs de sessions est la cause de l'échec :
Accédez à Administration > System > Settings > Max Sessions > Group.
Cette configuration applique une session maximale de 3 dans le groupe d'identités internes GroupTest2 et de 2 sessions maximales pour l'utilisateur de ce groupe.
Alice et Pablo sont membres de GroupTest2. Selon la configuration de cet exemple, un maximum de 3 sessions est autorisé dans GroupTest2. ISE garantit qu'un seul utilisateur peut avoir jusqu'à 2 sessions au sein de ce groupe.
Alice se connecte via deux périphériques, les deux terminaux sont connectés au réseau :
Lorsque Alice tente de se connecter via un troisième périphérique, l'accès est refusé avec une limite maximale de session pour l'utilisateur dans le groupe dépassée :
ISi Pablo tente d'accéder au réseau, il est en mesure de le faire, car Max Session for Group GroupTest2 n'est pas encore complet :
Lorsque Pablo tente d'accéder au réseau à partir du deuxième périphérique, il échoue car il a dépassé la limite de session maximale pour le groupe (même s'il n'a qu'une session) :
Comme dans les exemples précédents, si vous activez le nombre maximal de sessions utilisateur, il fonctionne indépendamment.
Accédez à Administration > System > Settings > Max Sessions > Counter Time Limit.
La limite de temps de compteur est la fonction qui spécifie l'intervalle de temps pendant lequel la session est comptée en termes de cache de session maximale. Cette fonctionnalité vous permet de spécifier l'heure après laquelle PSN supprimera la session du compteur et autorisera de nouvelles sessions.
Pour activer la fonctionnalité, vous devez décocher la case Illimité - pas de limite de temps qui est cochée par défaut. Dans le champ modifiable, vous pouvez définir l'heure à laquelle la session doit être prise en compte dans les compteurs de MaxSession.
N'oubliez pas que les sessions après l'heure configurée ne sont pas déconnectées ou supprimées de la base de données des sessions. Il n'y a pas de modification de fin d'autorisation (CoA) après l'heure configurée.
La session maximale de l'utilisateur est définie pour autoriser une seule session pour l'utilisateur :
Alice se connecte au réseau à l'aide de l'IPad à 11:00:34, la deuxième authentification se produit à 11:07 et même la valeur de session maximale de l'utilisateur est dépassée l'accès est autorisé. Les deux authentifications ont réussi en raison de la limite de compteur.
Alice tente de se connecter à un autre périphérique, avant 5 minutes après la dernière connexion réussie, ISE rejette l'authentification :
Après 5 minutes de la dernière authentification, Alice peut se connecter au réseau avec un périphérique supplémentaire.
Sur les sessions en direct, vous pouvez voir les trois sessions dans l'état Démarré :
Avec une session configurée sous la fonction Session maximale de l'utilisateur, vous pouvez toujours vous connecter au compte Guest1 pour les deux sessions :
Afin de limiter l'accès invité, vous pouvez spécifier le nombre maximal de connexions simultanées dans la configuration Type d'invité.
Accédez à Centres de travail > Accès invité > Portail et composants > Types d'invités et modifiez l'option Nombre maximal de connexions simultanées, comme illustré dans l'image :
Avec une session configurée sous Session maximale utilisateur, vous ne pouvez pas vous connecter :
Selon les journaux en direct Radius, l'invité 1 est toujours correctement authentifié en termes d'authentification du portail, une fois que le WLC envoie la requête RADIUS avec la deuxième session pour l'invité 1, ISE refuse l'accès en raison d'une limite utilisateur supérieure :
Le rapport Radius détaillé est le premier outil de dépannage de la fonctionnalité MaxSession.
Cette raison d'échec indique que la limite maximale globale de session utilisateur est dépassée pour cette session/cet utilisateur, comme l'illustre l'image :
Cette raison d'échec indique que la limite de sessions max. du groupe est dépassée pour cette session/cet utilisateur, comme l'illustre l'image :
Cette raison d'échec indique que la limite maximale de sessions utilisateur de groupe est dépassée pour cette session/cet utilisateur.
La vérification du cache MaxSession se produit après la sélection du profil d'autorisation :
Réussite :
Échec:
Le nombre maximal de journaux de session se trouve dans le fichier prrt-server.log. Pour les collecter, définissez le composant runtime-AAA au niveau DEBUG ( accédez à Administration > System > Logging > Debug Log Configuration > PSN), comme indiqué dans l'image :
Afin d'obtenir File prrt-server.log accédez à Operations > Troubleshoot > Download Logs > PSN > Debug Logs. Le nombre maximal de journaux de session est également collecté dans les débogages de point de terminaison (Opérations > Dépannage > Outils de diagnostic > Outils généraux > Débogage de point de terminaison).
La vérification de la session maximale de l'utilisateur a réussi :
2017-01-29 08:33:11,310 INFO [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::onMaxSessionsAznEvent: current global configuration data: auditSessionTtl=[3600], maxUserSessions=[2],SessionCache.cpp:283 2017-01-29 08:33:11,311 INFO [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::checkMaxSessions: user=[Bob] not found in cache due to first time authorization,SessionCache.cpp:1025 2017-01-29 08:33:11,311 DEBUG [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::onMaxSessionsAznEvent: sessionID=[0a3e944f00000e7d588da8a0]; user=[Bob] - checkMaxSessions passed,SessionCache.cpp:360 2017-01-29 08:33:11,311 INFO [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858867700,cntx=0000001335,sesn=pgruszczise22/275051099/8,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,SessionCache::onMaxSessionsAznEvent: create a new session object sessionID=[0a3e944f00000e7d588da8a0]; user=[Bob],SessionCache.cpp:375
ISE incrémente le compteur de sessions uniquement après avoir reçu le début de la comptabilisation pour la session :
2017-01-29 08:33:11,619 DEBUG [Thread-90][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- Radius,DEBUG,0x7fe858766700,cntx=0000001503,sesn=pgruszczise22/275051099/9,CPMSessionID=0a3e944f00000e7d588da8a0,CallingStationID=c0-4a-00-14-56-f4,FramedIPAddress=10.62.148.141,RADIUS PACKET:: Code=4(AccountingRequest) Identifier=0 Length=279 [1] User-Name - value: [Bob] [4] NAS-IP-Address - value: [10.62.148.79] [5] NAS-Port - value: [1] [8] Framed-IP-Address - value: [10.62.148.141] [25] Class - value: [****] [30] Called-Station-ID - value: [80-e0-1d-8b-72-00] [31] Calling-Station-ID - value: [c0-4a-00-14-56-f4] [32] NAS-Identifier - value: [WLC7] [40] Acct-Status-Type - value: [Start] [44] Acct-Session-Id - value: [588da8a0/c0:4a:00:14:56:f4/3789] [45] Acct-Authentic - value: [RADIUS] [55] Event-Timestamp - value: [1485678753] [61] NAS-Port-Type - value: [Wireless - IEEE 802.11] [64] Tunnel-Type - value: [(tag=0) VLAN] [65] Tunnel-Medium-Type - value: [(tag=0) 802] [81] Tunnel-Private-Group-ID - value: [(tag=0) 481] [26] cisco-av-pair - value: [audit-session-id=0a3e944f00000e7d588da8a0] [26] Airespace-Wlan-Id - value: [4] ,RADIUSHandler.cpp:2003 (...) 2017-01-29 08:33:11,654 DEBUG [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858867700,cntx=0000001503,sesn=pgruszczise22/275051099/9,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,FramedIPAddress=10.62.148.141,SessionCache::onAccountingStart: user=[Bob]; sessionID=[0a3e944f00000e7d588da8a0],SessionCache.cpp:537 2017-01-29 08:33:11,655 DEBUG [Thread-83][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858867700,cntx=0000001503,sesn=pgruszczise22/275051099/9,CPMSessionID=0a3e944f00000e7d588da8a0,user=Bob,CallingStationID=c0-4a-00-14-56-f4,FramedIPAddress=10.62.148.141,SessionCache::incrementSessionCounters: user=[Bob] current user session count=[1],SessionCache.cpp:862
Échec de la vérification de la session maximale de l'utilisateur :
2017-01-29 08:37:00,534 INFO [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,SessionCache::onMaxSessionsAznEvent: current global configuration data: auditSessionTtl=[3600], maxUserSessions=[2],SessionCache.cpp:283 2017-01-29 08:37:00,535 INFO [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,INFO ,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,SessionCache::checkMaxSessions: user=[Bob] is not authorized because current active user sessions=[2] >= max-user-sessions=[2],SessionCache.cpp:1010 2017-01-29 08:37:00,535 DEBUG [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- SessionCache,DEBUG,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,SessionCache::onMaxSessionsAznEvent: sessionID=[0a3e944f00000e7f588da966]; user=[Bob] - checkMaxSessions failed,SessionCache.cpp:341 2017-01-29 08:37:00,535 DEBUG [Thread-75][] cisco.cpm.prrt.impl.PrRTLoggerImpl -:::::- RadiusAuthorization,DEBUG,0x7fe858a69700,cntx=0000005011,sesn=pgruszczise22/275051099/15,CPMSessionID=0a3e944f00000e7f588da966,user=Bob,CallingStationID=34-ab-37-60-63-88,RadiusAuthorization::onResponseMaxSessionsAznEvent return from SessionCache,RadiusAuthorization.cpp:371
Révision | Date de publication | Commentaires |
---|---|---|
1.0 |
23-Mar-2017 |
Première publication |