Inhalt

Einleitung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Hintergrundinformationen

Netzwerkdiagramm

Szenarien

Maximale Anzahl von Sitzungen pro Benutzer

Konfiguration

Beispiel

Maximale Sitzung für Gruppe

Konfigurieren

Beispiel

Eckgehäuse

Maximale Anzahl von Sitzungen für Benutzer in Gruppe

Konfigurieren

Beispiel

Maximale Sitzung für Gruppe und Maximale Sitzung für Benutzer in dieser Gruppe

Konfigurieren

Beispiel

Zeitlimit des Zählers

Konfigurieren

Beispiel

Maximale Anzahl an Sitzungsfunktionen und Gastzugriff

Zentrale Webauthentifizierung

Lokale Webauthentifizierung

Fehlerbehebung

Radius Live-Protokolle

ISE-Fehlerbehebung

Einleitung

In diesem Dokument wird beschrieben, wie die in der Identity Services Engine (ISE) 2.2 eingeführte Funktion für maximale Sitzungen konfiguriert wird.

Voraussetzungen

Anforderungen

Cisco empfiehlt, dass Sie über Kenntnisse in folgenden Bereichen verfügen:

- RADIUS-Protokoll

- 802.1x-Konfiguration auf dem Wireless LAN Controller (WLC)

- ISE und ihre Personas (Rollen)

Verwendete Komponenten

Die Informationen in diesem Dokument basierend auf folgenden Software- und Hardware-Versionen:

- Cisco Identity Service Engine Version 2.2

- Wireless LAN-Controller 8.0.100.0

- Cisco Catalyst Switch 3750 15.2(3)E2

- Windows 7 - Computer

- Android-Telefon mit 6.0.1

- Android-Telefon mit 5.0

- Apple iPad iOS 9.1

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

Die Funktion für maximale Sitzungen bietet die Möglichkeit, Live-Sitzungen pro Benutzer oder pro Identitätsgruppe zu steuern und durchzusetzen. Dieses Dokument ist für RADIUS-Sitzungen bestimmt, kann aber auch für TACACS-Sitzungen verwendet werden.

ISE Version 2.2 kann Durchsetzungsrichtlinien auf Basis der gleichzeitigen Sitzung von erkennen und erstellen:

- Benutzeridentität - Beschränkung der Anzahl von Sitzungen pro Benutzer

- Identitätsgruppe: Beschränkung der Anzahl von Sitzungen pro Gruppe

- Benutzer in einer Gruppe - Anzahl der Sitzungen pro Benutzer, die zu einer bestimmten Gruppe gehören, begrenzen

Durchsetzung und Anzahl gleichzeitiger Sitzungen sind eindeutig und werden von jedem Policy Service Node (PSN) verwaltet. Es findet keine Synchronisierung zwischen den PSNs hinsichtlich der Sitzungsanzahl statt. Die Funktion "Concurrent Session" wird im Laufzeitprozess implementiert, und Daten werden nur im Speicher gespeichert. Beim PSN-Neustart werden die MaxSessions-Zähler zurückgesetzt.

Die Anzahl der Benutzersitzungen unterscheidet nicht zwischen Groß- und Kleinschreibung und ist unabhängig vom verwendeten Netzwerkzugriffsgerät (sofern Sie denselben PSN-Knoten verwenden).

Netzwerkdiagramm

Szenarien

Maximale Anzahl von Sitzungen pro Benutzer

Konfiguration

Navigieren Sie zu Administration > System > Settings > Max Sessions, wie in der Abbildung dargestellt:

Um diese Funktion zu aktivieren, deaktivieren Sie das Kontrollkästchen Unbegrenzte Sitzung pro Benutzer, das standardmäßig aktiviert ist. Konfigurieren Sie im Feld Maximum per user Sessions (Maximale Anzahl pro Benutzer-Sitzungen) die Anzahl der Sitzungen, die ein bestimmter Benutzer in jedem PSN durchführen kann. In diesem Beispiel ist er auf 2 festgelegt.

Benutzer von externen Identitätsquellen (z. B. Active Directory) sind ebenfalls von dieser Konfiguration betroffen.

Beispiel

Bob ist der Benutzername eines Kontos aus der Active Directory-Domäne, die mit dem ISE-Server verbunden ist. "User Maximum Sessions" (Maximale Benutzersitzungen) wird mit dem Wert 2 konfiguriert, was bedeutet, dass jede Sitzung für denselben Benutzer, die über diese Anzahl hinausgeht, nicht zulässig ist (pro PSN).

Wie im Bild gezeigt, verbindet sich Benutzer Bob mit Android-Telefon und Windows-Maschine mit den gleichen Anmeldeinformationen:

Beide Sitzungen sind zulässig, da das Limit für die maximale Sitzung nicht überschritten wird. Siehe detailliertes Radius Live-Protokoll, im Bild abgebildet:

22081 Der übergebene Schritt der Richtlinie für max. Sitzungen enthält Informationen darüber, dass die Prüfung der maximalen gleichzeitigen Sitzung erfolgreich war.

Sobald die dritte Verbindung mit einem anderen Gerät und den gleichen Anmeldeinformationen initiiert wurde, erhält Bob PermitAccess, aber Access-Reject wird an den Authentifizierer gesendet:

Eine Sitzung ist nicht zulässig, obwohl Sie im Radius-Live-Protokoll sehen können, dass es das richtige Autorisierungsprofil trifft. Um die Live-Sitzungen zu überprüfen, navigieren Sie zu Operations > Radius > Live Sessions:

In diesem Fall haben beide Sitzungen den Status "Gestartet", was bedeutet, dass der Accounting-Start auf der ISE für die Sitzung angekommen ist. Es ist erforderlich, das Radius-Accounting für die maximale Sitzung zu erhalten, um ordnungsgemäß zu funktionieren. Der Status "Authenticated" (Sitzung zulässig, aber kein Accounting) wird bei der Sitzungszählung nicht berücksichtigt:

Maximale Sitzung für Gruppe

Konfigurieren

Navigieren Sie zu Administration > System > Settings > Max Sessions > Group:

Diese Konfiguration erzwingt maximal 2 Sitzungen für die interne Identitätsgruppe GroupTest2: Sie können die Erzwingung pro Gruppe nur für die internen Gruppen konfigurieren.

Beispiel

Alice, Pablo und Peter sind die Nutzer des internen ISE User Store. Alle sind Mitglieder der Gruppe mit dem Namen GroupTest2. Gemäß der Konfiguration in diesem Beispiel wird der Höchstwert für Sitzungen auf 2 festgelegt, basierend auf der Gruppenmitgliedschaft.

Pablo und Peter stellen mit ihren Anmeldeinformationen aus der internen Gruppe mit dem Namen GroupTest2 eine Verbindung zum Netzwerk her:

Sobald Alice versucht, eine Verbindung herzustellen, wird das MaxSessions-Limit pro Gruppe durchgesetzt:

Alice darf keine Verbindung mit dem Netzwerk herstellen, da Peter und Pablo die maximale Gruppenbeschränkung für Sitzungen ausgeschöpft haben:

Eckgehäuse

Wenn Maximum für Benutzersitzungen konfiguriert ist, funktionieren beide Funktionen unabhängig voneinander. In diesem Beispiel ist die maximale Benutzersitzung auf 1 und die maximale Sitzung für die Gruppe auf 2 festgelegt.

Peter ist gemäß der Maximalen Sitzung für Gruppen (2 Sitzungen) zulässig, kann sich jedoch aufgrund der Konfiguration der maximalen Benutzersitzungen (eine Sitzung) nicht mit dem Netzwerk verbinden:

Wenn der Benutzer gleichzeitig Mitglied mehrerer Gruppen ist und die maximale Anzahl von Sitzungen für Gruppen für diese Gruppen konfiguriert ist, erhöht die ISE nach dem Verbinden den Zähler für die maximale Anzahl von Sitzungen für den Gruppencache für jede Gruppe, zu der der Benutzer gehört.

In diesem Beispiel sind Alice und Pablo Mitglieder von GroupTest1 und GroupTest2. Veronica gehört nur zu GroupTest1 und Peter zu GroupTest2

Die maximale Sitzung für Gruppe ist für GruppeTest1 und GruppeTest2 auf 2 festgelegt:

Wenn Alice und Pablo mit dem Netzwerk verbunden sind, überschreiten sie die Sitzungsgrenzwerte für beide Gruppen. Veronica, die nur zu GroupTest1 und Peter gehört, ein Mitglied von GroupTest2, kann keine Verbindung herstellen, da Max Session for Group den konfigurierten Höchstwert erreicht hat:

Maximale Anzahl von Sitzungen für Benutzer in Gruppe

Konfigurieren

Navigieren Sie zu Administration > System > Settings > Max Sessions > Group.

Diese Konfiguration erzwingt maximal 2 Sitzungen für die interne Identitätsgruppe GroupTest2.

Beispiel

Alice ist Mitglied von GroupTest2:

Diese Funktion funktioniert ähnlich wie die maximale Benutzersitzung: Die ISE begrenzt die Anzahl der gleichzeitigen Sitzungen, die Benutzer innerhalb der angegebenen internen Gruppe haben können. Diese Konfiguration betrifft nur den Benutzer, der zur konfigurierten Gruppe gehört.

Alice kann als Mitglied von GroupTest2 zwei Sitzungen gleichzeitig durchführen. Nachdem die ISE mit dem dritten Gerät verbunden wurde, gibt sie "PermitAccess" und "Access-Reject" zurück, wenn die maximale Sitzung für Benutzer in der Gruppe überschritten wurde:

Detaillierte Radius-Live-Protokolle:

Wenn auch die Option Maximale Benutzersitzungen aktiviert ist, funktionieren beide Funktionen unabhängig voneinander. Wenn ein Benutzer Alice Mitglied der Gruppe GroupTest2 ist, für den die Option Maximum Session for User in Group (Maximale Sitzung für Benutzer in Gruppe) für 2 konfiguriert ist, und für die Option User Max Sessions (Maximale Sitzungen für Benutzer in Gruppe) gleichzeitig konfiguriert ist, sodass nur eine Sitzung pro Benutzer zulässig ist, haben die maximalen Sitzungen für Benutzer Vorrang:

Wenn Alice versucht, eine Verbindung mit dem zweiten Gerät herzustellen, gibt die ISE "Access-Reject" (Zugriff ablehnen) zurück, wenn der maximale Grenzwert für Sitzungsbenutzer überschritten wurde:

Der Grund für die Ablehnung kann unter dem detaillierten Radius Live-Log überprüft werden. Der Grund für den Fehler ist die maximale Anzahl von Sitzungsbenutzern:

Maximale Sitzung für Gruppe und Maximale Sitzung für Benutzer in dieser Gruppe

Konfigurieren

Navigieren Sie zu Administration > System > Settings > Max Sessions > Group.

Diese Konfiguration erzwingt eine maximale Sitzung von 3 in der internen Identitätsgruppe "GroupTest2" und 2 maximale Sitzungen für den Benutzer in dieser Gruppe.

Beispiel

Alice und Pablo sind Mitglieder von GroupTest2. Entsprechend der Konfiguration in diesem Beispiel sind in GroupTest2 maximal 3 Sitzungen zulässig. Die ISE stellt sicher, dass ein Benutzer maximal zwei Sitzungen in dieser Gruppe haben kann.

Alice verbindet sich über zwei Geräte. Beide Endgeräte sind mit dem Netzwerk verbunden:

Wenn Alice versucht, eine Verbindung über ein drittes Gerät herzustellen, wird der Zugriff verweigert, wobei das Limit für die maximale Sitzung des Benutzers in der Gruppe überschritten wurde:

Wenn Pablo versucht, auf das Netzwerk zuzugreifen, kann er dies tun, da Max Session for Group, GroupTest2, noch nicht voll ist:

Wenn Pablo versucht, über das zweite Gerät auf das Netzwerk zuzugreifen, schlägt er fehl, weil er die maximale Sitzungsgrenze für die Gruppe überschritten hat (obwohl er nur eine Sitzung hat):

Wie in den vorherigen Beispielen funktioniert die Option Maximale Benutzersitzungen unabhängig voneinander.

Zeitlimit des Zählers

Konfigurieren

Navigieren Sie zu Administration > System > Settings > Max Sessions > Counter Time Limit.

Die Zeitbegrenzung für den Zähler ist die Funktion, die das Zeitintervall angibt, während dessen eine Sitzung im Hinblick auf den Cache für maximale Sitzungen gezählt wird. Mit dieser Funktion können Sie die Zeit angeben, nach der PSN die Sitzung vom Leistungsindikator löscht, und neue Sitzungen zulassen.

Um diese Funktion zu aktivieren, müssen Sie das Kontrollkästchen Unbegrenzt - keine Zeitbeschränkung deaktivieren, das standardmäßig aktiviert ist. Im bearbeitbaren Feld können Sie festlegen, wie lange die Sitzung in den Zählern von MaxSession berücksichtigt wird.

Beachten Sie, dass Sitzungen nach der konfigurierten Zeit nicht getrennt oder aus der Sitzungsdatenbank entfernt werden. Nach der konfigurierten Zeit gibt es keine Terminate Chain of Authorization (CoA) mehr.

Beispiel

Die maximale Sitzung für Benutzer ist so festgelegt, dass nur eine Sitzung für den Benutzer zugelassen wird:

Alice stellt über den IPad um 11:00:34 eine Verbindung zum Netzwerk her, die zweite Authentifizierung erfolgt um 11:07, und obwohl der Wert für die maximale Benutzersitzung überschritten wird, ist der Zugriff zulässig. Beide Authentifizierungen sind aufgrund des Zeitlimits für den Leistungsindikator erfolgreich.

Alice versucht, vor Ablauf von 5 Minuten nach dem letzten erfolgreichen Verbindungsversuch eine Verbindung mit einem anderen Gerät herzustellen. Die ISE lehnt die Authentifizierung ab:

Nach 5 Minuten ab der letzten Authentifizierung konnte Alice sich mit einem zusätzlichen Gerät mit dem Netzwerk verbinden.

In den Live-Sitzungen können Sie alle drei Sitzungen mit dem Status Gestartet:

Maximale Anzahl an Sitzungsfunktionen und Gastzugriff

Zentrale Webauthentifizierung

Wenn Sie eine Sitzung mit der Funktion "Maximale Benutzersitzung" konfigurieren, können Sie für beide Sitzungen weiterhin eine Verbindung mit dem Konto Guest1 herstellen:

Um den Gastzugriff einzuschränken, können Sie die maximale Anzahl gleichzeitiger Anmeldungen in der Konfiguration für den Gasttyp angeben.

Navigieren Sie zu Work Centers > Guest Access > Portal & Components > Guest Types, und ändern Sie die Option Maximum Simultaneous Logins (Maximale gleichzeitige Anmeldung), wie im Bild gezeigt:

Lokale Webauthentifizierung

Wenn eine Sitzung unter "Maximale Benutzersitzung" konfiguriert wurde, können Sie keine Verbindung herstellen mit:

Entsprechend der Radius Live-Protokolle wird Guest1 hinsichtlich der Portal-Authentifizierung immer korrekt authentifiziert. Sobald der WLC die RADIUS-Anforderung mit der zweiten Sitzung für Guest1 sendet, verweigert die ISE den Zugriff, da das Benutzerlimit überschritten wurde:

Fehlerbehebung

Radius Live-Protokolle

Der detaillierte Radius-Bericht ist der erste Ort für die Fehlerbehebung der MaxSession-Funktion.

Dieser Fehlergrund weist darauf hin, dass der globale maximale Benutzersitzungsgrenzwert für diese Sitzung/diesen Benutzer überschritten wird, wie im Bild gezeigt:

Dieser Fehlergrund zeigt an, dass der Grenzwert für maximale Gruppensitzungen für diese Sitzung/diesen Benutzer überschritten wird, wie im Bild gezeigt:

Dieser Fehlergrund gibt an, dass der Grenzwert für die maximale Anzahl von Gruppenbenutzersitzungen für diese Sitzung/diesen Benutzer überschritten wird.

Die Überprüfung des MaxSession-Cache erfolgt nach der Auswahl des Autorisierungsprofils:

Erfolg:

Fehler:

ISE-Fehlerbehebung

Die max. Anzahl an Sitzungsprotokollen befindet sich in der Datei prrt-server.log. Um diese zu sammeln, setzen Sie die Laufzeit-AAA-Komponente auf die DEBUG-Ebene ( navigieren Sie zu Administration > System > Logging > Debug Log Configuration > PSN), wie in der Abbildung dargestellt:

Um die Datei prrt-server.log abzurufen, navigieren Sie zu Operations > Troubleshoot > Download Logs > PSN > Debug Logs. Die maximalen Sitzungsprotokolle werden auch in den Endpunktdebugs erfasst (Vorgänge > Problembehandlung > Diagnosetools > Allgemeine Tools > Endpunktdebugging).

Überprüfung der maximalen Benutzersitzung ordnungsgemäß bestanden:

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

Die ISE erhöht den SessionCounter erst, nachdem sie den Accounting-Start für die Sitzung erhalten hat:

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

Fehler bei der Überprüfung der maximalen Benutzersitzung:

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