المحتويات

المقدمة

المتطلبات الأساسية

المتطلبات

المكونات المستخدمة

معلومات أساسية

الرسم التخطيطي للشبكة

السيناريوهات

الحد الأقصى لجلسات العمل لكل مستخدم

التكوين

مثال

الحد الأقصى لجلسة العمل للمجموعة

التكوين

مثال

الحالات الجانبية

الحد الأقصى لجلسات العمل للمستخدم في المجموعة

التكوين

مثال

الحد الأقصى لجلسة العمل للمجموعة والحد الأقصى لجلسة العمل للمستخدم في تلك المجموعة

التكوين

مثال

حد وقت العداد

التكوين

مثال

الحد الأقصى لميزة جلسة العمل ووصول الضيف

المصادقة المركزية للويب

مصادقة الويب المحلية

استكشاف الأخطاء وإصلاحها

سجلات RADIUS المباشرة

تصحيح أخطاء ISE

المقدمة

يوضح هذا المستند كيفية تكوين ميزة Maximum Session (الحد الأقصى) التي تم إدخالها في Identity Services Engine (ISE) 2.2.

المتطلبات الأساسية

المتطلبات

توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:

- بروتوكول RADIUS

- تكوين 802.1x على وحدة التحكم في الشبكة المحلية اللاسلكية (WLC)

- ISE وشخصياتها (الأدوار)

المكونات المستخدمة

تستند المعلومات الواردة في هذا المستند إلى إصدارات البرامج والمكونات المادية التالية:

- Cisco Identity Service Engine، الإصدار 2.2

- وحدة التحكم في شبكة LAN اللاسلكية 8.0.100.0

- المحول Cisco Catalyst Switch 3750 15.2(3)E2

- جهاز نظام التشغيل Windows 7

- هاتف Android يشغل الإصدار 6.0.1

- هاتف Android يشغل الإصدار 5.0

- نظام التشغيل Apple iPad 9.1

تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.

معلومات أساسية

توفر ميزة الحد الأقصى لجلسات العمل طريقة للتحكم في جلسات العمل المباشرة وإنفاذها لكل مستخدم أو لكل مجموعة هوية. هذا المستند خاص بجلسات عمل RADIUS، ولكن يمكن إستخدامه أيضا لجلسات عمل TACACS.

يمكن أن يكشف الإصدار 2.2 من ISE عن سياسة الإنفاذ ويبنيها استنادا إلى الجلسة المتزامنة ل:

- هوية المستخدم - الحد من عدد جلسات العمل لكل مستخدم معين

- مجموعة الهوية - الحد من عدد الجلسات لكل مجموعة محددة

- مستخدم في مجموعة - الحد من عدد جلسات العمل لكل مستخدم، ينتمي إلى مجموعة معينة

يعد فرض جلسة عمل متزامنة وتعدادها أمرا فريدا وتتم إدارته بواسطة كل عقدة خدمة نهج (PSN). لا توجد مزامنة بين شبكات PSN من حيث عدد جلسات العمل. يتم تنفيذ ميزة "الجلسة المتزامنة" في عملية وقت التشغيل، ويتم تخزين البيانات فقط في الذاكرة. في حالة إعادة تشغيل PSN، تتم إعادة تعيين عدادات MaxSessions.

يعد عدد جلسات عمل المستخدم غير حساس لحالة الأحرف فيما يتعلق بأسماء المستخدمين، ومستقلا عن جهاز الوصول إلى الشبكة المستخدم (طالما أنك تستخدم عقدة PSN نفسها).

الرسم التخطيطي للشبكة

السيناريوهات

الحد الأقصى لجلسات العمل لكل مستخدم

التكوين

انتقل إلى إدارة > نظام > إعدادات > الحد الأقصى للجلسات كما هو موضح في الصورة:

لتمكين الميزة، قم بإلغاء تحديد خانة الاختيار غير محدودة الجلسة لكل مستخدم، والتي يتم تحديدها بشكل افتراضي. في حقل الحد الأقصى لجلسات عمل المستخدم الواحد، قم بتكوين عدد جلسات العمل التي يمكن للمستخدم المحدد عقدها على كل PSN. في هذا المثال، يتم تعيينها على 2.

يتأثر المستخدمون من مصادر الهوية الخارجية (على سبيل المثال، Active Directory) بهذا التكوين أيضا.

مثال

Bob هو اسم مستخدم حساب من مجال Active Directory المتصل والمتصل بخادم ISE. تم تكوين الحد الأقصى لجلسات عمل المستخدم بالقيمة 2، مما يعني أن أي جلسة لنفس المستخدم تتجاوز هذا الرقم غير مسموح بها (لكل PSN).

كما هو موضح في الصورة، يتصل المستخدم Bob مع Android Phone وجهاز Windows باستخدام نفس بيانات الاعتماد:

مسموح بكلتا الجلستين بسبب عدم تجاوز الحد الأقصى لجلسات العمل. راجع سجل Radius Live المفصل، الظاهر في الصورة:

22081 Max Sessions Policy Pass Step يوفر معلومات أن الحد الأقصى لجلسة العمل المتزامنة ناجح.

وبمجرد بدء الاتصال الثالث بجهاز آخر وبنفس بيانات الاعتماد، يتلقى بوب PermitAccess، لكن يتم إرسال Access-Reject إلى المصدق:

غير مسموح بجلسة العمل، حتى وإن كنت ترى في سجل RADIUS المباشر أنها تصل إلى ملف تعريف التخويل الصحيح. in order to فحصت ال live جلسة، انتقل إلى عمليات > Radius > Live جلسة:

في هذه الحالة، تم بدء حالة كل من الجلستين، والتي تشير إلى وصول بدء المحاسبة إلى ISE للجلسة. من الضروري تلقي حساب RADIUS للحد الأقصى من جلسة العمل للعمل بشكل صحيح، الحالة المصادق عليها (مسموح بجلسة العمل، ولكن لا يتم أخذ أي حساب) في الاعتبار أثناء عدد جلسات العمل:

الحد الأقصى لجلسة العمل للمجموعة

التكوين

انتقل إلى إدارة > نظام>إعدادات > الحد الأقصى للجلسات > مجموعة:

يفرض هذا التكوين جلستين كحد أقصى لمجموعة الهوية الداخلية GroupTest2: يمكنك تكوين التنفيذ لكل مجموعة فقط للمجموعات الداخلية.

مثال

أليس وبابلو وبيتر هم المستخدمون من متجر مستخدمي ISE الداخلي. وجميعهم أعضاء في مجموعة تسمى GroupTest2. وفقا للتكوين في هذا المثال، يتم تعيين الحد الأقصى لقيمة الجلسات على 2 استنادا إلى عضوية المجموعة.

اتصل كل من Pablo و Peter بالشبكة باستخدام بيانات الاعتماد الخاصة بهما من المجموعة الداخلية المسماة GroupTest2:

بمجرد أن تحاول أليس الاتصال، يتم فرض حد MaxSessions لكل مجموعة:

غير مسموح لأليس بالاتصال بالشبكة لأن الحد الأقصى لمجموعة جلسات العمل مستخدم من قبل Peter و Pablo:

الحالات الجانبية

في حالة تكوين الحد الأقصى لجلسات عمل المستخدم، فإن كلتا المميزات تعمل بشكل مستقل. في هذا المثال، يتم تعيين الحد الأقصى لجلسات عمل المستخدم على 1 ويتم تعيين الحد الأقصى لجلسة عمل المجموعة على 2.

يسمح لبيتر بناء على الحد الأقصى لجلسة العمل للمجموعة (2 جلسة)، لكن بسبب تشكيل المستخدم الحد الأقصى لجلسات العمل (جلسة واحدة)، يفشل في الاتصال بالشبكة:

إذا كان المستخدم عضوا في أكثر من مجموعة واحدة في نفس الوقت، وتم تكوين الحد الأقصى لجلسات العمل للمجموعة من أجلهم، بمجرد الاتصال، يقوم ISE بزيادة عداد الحد الأقصى لجلسة عمل ذاكرة التخزين المؤقت للمجموعة لكل مجموعة ينتمي إليها المستخدم.

في هذا المثال، أليس وبابلو عضوان في كل من GroupTest1 و GroupTest2. تنتمي Veronica إلى GroupTest1 فقط و Peter إلى GroupTest2

تم تعيين الحد الأقصى لجلسة عمل المجموعة إلى 2 ل GroupTest1 و GroupTest2:

عندما تكون أليس وبابلو متصلتين بالشبكة، فإنهما يتجاوزان حدود الجلسة لكلا المجموعتين. يتعذر على Veronica، الذي ينتمي فقط إلى GroupTest1 و Peter، عضو GroupTest2 الاتصال بسبب وصول Max Session ل Group إلى الحد الأقصى للقيمة المكونة:

الحد الأقصى لجلسات العمل للمستخدم في المجموعة

التكوين

انتقل إلى إدارة > نظام > إعدادات > الحد الأقصى للجلسات > مجموعة.

يفرض هذا التكوين جلستين كحد أقصى لمجموعة الهوية الداخلية GroupTest2.

مثال

أليس عضو في GroupTest2:

تعمل هذه الميزة بشكل مشابه لجلسة عمل الحد الأقصى للمستخدم - تحدد ISE عدد الجلسات المتزامنة التي يمكن للمستخدم داخل مجموعة داخلية محددة أن يمتلكها. يؤثر هذا التكوين على المستخدم فقط، الذي ينتمي إلى المجموعة التي تم تكوينها.

ويمكن لأليس، بوصفها عضوا في GroupTest2، أن تعقد جلستين متزامنتين. وبمجرد الاتصال بالجهاز الثالث، يقوم ISE بإرجاع PermitAccess و Access-Reject بناء على Maximum Session User في المجموعة:

سجلات Radius-Live التفصيلية:

إذا كان الحد الأقصى لجلسات عمل المستخدم مكنت أيضا، بعد ذلك كل من المميزات تعمل بشكل مستقل. إذا كان المستخدم Alice عضوا في مجموعة GroupTest2 مع الحد الأقصى لجلسة المستخدم في مجموعة تم تكوينها ل 2، وفي نفس الوقت يتم تكوين جلسات عمل الحد الأقصى للمستخدم للسماح بجلسة واحدة فقط لكل مستخدم، تكون لجلسات عمل الحد الأقصى للمستخدم الأولوية:

عندما تحاول Alice الاتصال بالجهاز الثاني، ترجع ISE رفض الوصول بناء على الحد الأقصى لمستخدم جلسة العمل الذي تم تجاوزه:

يمكن التحقق من سبب الرفض ضمن سجل RADIUS المباشر المفصل. الحد الأقصى لجلسات العمل هو سبب الفشل:

الحد الأقصى لجلسة العمل للمجموعة والحد الأقصى لجلسة العمل للمستخدم في تلك المجموعة

التكوين

انتقل إلى إدارة > نظام > إعدادات > الحد الأقصى للجلسات > مجموعة.

يقوم هذا التكوين بفرض الحد الأقصى لجلسة عمل من 3 في مجموعة الهوية الداخلية GroupTest2، و 2 الحد الأقصى لجلسة عمل المستخدم في تلك المجموعة.

مثال

أليس وبابلو عضوان في GroupTest2. حسب التكوين في هذا المثال، يتم السماح ب 3 جلسات كحد أقصى في GroupTest2. يضمن ISE إمكانية حصول المستخدم الواحد على جلستين كحد أقصى داخل هذه المجموعة.

تتصل أليس عبر جهازين. كلتا نقطتي النهاية موصلتان بالشبكة:

عندما تحاول أليس الاتصال عبر جهاز ثالث، يتم رفض الوصول مع تجاوز الحد الأقصى لجلسة عمل المستخدم في المجموعة:

إذا حاول Pablo الوصول إلى الشبكة، فسيتمكن من القيام بذلك لأن Max Session for Group، GroupTest2، غير ممتلئ بعد:

عندما يحاول بابلو الوصول إلى الشبكة من جهاز ثان، يفشل لأنه تجاوز الحد الأقصى لجلسة العمل للمجموعة (على الرغم من أن لديه جلسة عمل واحدة فقط):

كما هو الحال في الأمثلة السابقة، إذا قمت بتمكين جلسات عمل الحد الأقصى للمستخدم، فإنه يعمل بشكل مستقل.

حد وقت العداد

التكوين

انتقل إلى إدارة > نظام > إعدادات > الحد الأقصى للجلسات > حد وقت العداد.

حد وقت العداد هي الميزة التي تحدد الفاصل الزمني الذي يتم خلاله حساب جلسة العمل بمصطلحات الحد الأقصى لذاكرة التخزين المؤقت لجلسة العمل. تسمح لك هذه الميزة بتعيين الوقت الذي يقوم PSN بعده بحذف الجلسة من العداد، وتسمح بالجلسات الجديدة.

لتمكين الميزة، تحتاج إلى إلغاء تحديد غير محدود - بلا وقت مربع التحديد الذي يتم تحديده بشكل افتراضي. في الحقل القابل للتحرير، يمكنك تعيين الوقت للمدة التي يتم خلالها أخذ الجلسة في الاعتبار في عدادات MaxSession.

تذكر أنه لا يتم قطع اتصال جلسات العمل بعد الوقت الذي تم تكوينه أو إزالتها من قاعدة بيانات جلسة العمل. لا توجد سلسلة إنهاء التخويل (CoA) بعد الوقت الذي تم تكوينه.

مثال

تم تعيين الحد الأقصى لجلسة عمل المستخدم للسماح بجلسة واحدة فقط للمستخدم:

تتصل Alice بالشبكة باستخدام IPad في 11:00:34، والمصادقة الثانية تحدث في 11:07، وعلى الرغم من تجاوز الحد الأقصى لجلسة المستخدم، إلا أن الوصول مسموح به. نجح كلا المصدقين بسبب حد وقت العداد.

تحاول Alice الاتصال بجهاز آخر قبل مرور 5 دقائق من آخر اتصال ناجح، يرفض ISE المصادقة:

بعد مرور 5 دقائق من آخر مصادقة، يمكن أن تتصل أليس بالشبكة باستخدام جهاز إضافي.

على ال live جلسة، أنت يستطيع رأيت all the ثلاثة جلسة في الدولة يبدأ:

الحد الأقصى لميزة جلسة العمل ووصول الضيف

المصادقة المركزية للويب

مع وجود جلسة عمل واحدة مكونة ضمن ميزة User Maximum Session، لا يزال بإمكانك الاتصال بحساب Guest1 لكل من جلستي العمل:

لتحديد "وصول الضيف"، يمكنك تحديد الحد الأقصى لعمليات تسجيل الدخول المتزامنة في تكوين نوع الضيف.

انتقل إلى مراكز العمل > Guest Access (وصول الضيف) > البوابة والمكونات > أنواع الضيوف وقم بتغيير خيار الحد الأقصى للتسجيلات المتزامنة، كما هو موضح في الصورة:

مصادقة الويب المحلية

مع وجود جلسة عمل واحدة مكونة ضمن جلسة عمل الحد الأقصى للمستخدم، لا يمكنك الاتصال:

طبقا لسجلات RADIUS المباشرة، تتم مصادقة Guest1 بشكل صحيح دائما فيما يتعلق بمصادقة المدخل. ما إن WLC يرسل طلب RADIUS مع الثاني جلسة ل Guest1، ISE يرفض الوصول بسبب تجاوز حد المستعمل:

استكشاف الأخطاء وإصلاحها

سجلات RADIUS المباشرة

يعد تقرير RADIUS المفصل المكان الأول لاستكشاف أخطاء ميزة MaxSession وإصلاحها.

يشير سبب الفشل هذا إلى تجاوز الحد الأقصى العالمي لجلسة عمل المستخدم لجلسة العمل هذه/المستخدم، كما هو موضح في الصورة:

يشير سبب الفشل هذا إلى تجاوز الحد الأقصى لجلسات عمل المجموعة لجلسة العمل/المستخدم هذه، كما هو موضح في الصورة:

يشير سبب الفشل هذا إلى تجاوز الحد الأقصى لجلسات عمل مستخدم المجموعة لجلسة العمل/المستخدم هذه.

يتم التحقق من ذاكرة التخزين المؤقت ل MaxSession بعد تحديد ملف تعريف التخويل:

النجاح:

فشل:

تصحيح أخطاء ISE

يتم تحديد الحد الأقصى لسجلات جلسة العمل في prrt-server.log. ولتجميع هذه المكونات، قم بتعيين مكون وقت التشغيل AAA إلى مستوى تصحيح الأخطاء (انتقل إلى الإدارة > النظام > التسجيل > تكوين سجل الأخطاء > PSN)، كما هو موضح في الصورة:

للحصول على file prrt-server.log، انتقل إلى العمليات > أستكشاف الأخطاء وإصلاحها > سجلات التنزيل > PSN > سجلات تصحيح الأخطاء. يتم تجميع الحد الأقصى لسجلات جلسة العمل في عمليات تصحيح أخطاء نقطة النهاية أيضا (العمليات > أستكشاف الأخطاء وإصلاحها > أدوات التشخيص > الأدوات العامة > تصحيح أخطاء EndPoint).

تم تمرير التحقق من الحد الأقصى لجلسة عمل المستخدم بشكل صحيح:

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 SessionCounter فقط بعد أن يستلم بداية المحاسبة للجلسة:

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

فشل التحقق من الحد الأقصى لجلسة عمل المستخدم:

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