المقدمة
يصف هذا المستند أساسيات مصادقة Kerberos والخطوات الخاصة باستكشاف أخطاء مصادقة Kerberos وإصلاحها في جهاز ويب الآمن (SWA).
المصطلح
سوا
|
Secure Web Appliance (جهاز حماية الويب)
|
CLI
|
واجهة سطر الأوامر
|
إعلان
|
الدليل النشط
|
دي سي
|
وحدة التحكم بالمجال
|
SPN
|
اسم الخدمة الأساسي
|
كي دي سي
|
مركز توزيع مفتاح Kerberos
|
تي جي تي
|
بطاقة المصادقة (بطاقة منح التذكرة)
|
TGS
|
خدمة منح التذاكر
|
ههه
|
الإتاحة العالية
|
VRRP
|
بروتوكول تكرار جهاز التوجيه الظاهري
|
شبوط
|
بروتوكول تكرار العنوان الشائع
|
SPN
|
اسم الخدمة الأساسي
|
LDAP
|
البروتوكول الخفيف للوصول للدليل
|
المتطلبات الأساسية
المتطلبات
توصي Cisco بأن تكون لديك معرفة بالمواضيع التالية:
- Active Directory ومصادقة Kerberos.
- المصادقة والحلول على SWA.
المكونات المستخدمة
لا يقتصر هذا المستند على إصدارات برامج ومكونات مادية معينة.
تم إنشاء المعلومات الواردة في هذا المستند من الأجهزة الموجودة في بيئة معملية خاصة. بدأت جميع الأجهزة المُستخدمة في هذا المستند بتكوين ممسوح (افتراضي). إذا كانت شبكتك قيد التشغيل، فتأكد من فهمك للتأثير المحتمل لأي أمر.
تدفق شبكة Kerberos
الصورة: نموذج تدفق Kerberos
فيما يلي الخطوات الأساسية للمصادقة في بيئة Kerberized:
- يطلب العميل بطاقة منح تذكرة (TGT) من مركز توزيع المفاتيح (KDC).
- يتحقق KDC من بيانات اعتماد مستخدم جهاز العميل ويرسل مفتاح TGT ومفتاح جلسة عمل مشفرا.
- يتم تشفير TGT باستخدام المفتاح السري لخدمة منح التذكرة (TGS).
- يقوم العميل بتخزين TGT ويطلب تلقائيا اسم جديد عند انتهاء صلاحيته.
للوصول إلى خدمة أو مورد:
1. يرسل العميل TGT إلى TGS بالإضافة إلى اسم الخدمة الأساسي (SPN) للمورد المطلوب.
2. يتحقق مركز التحكم في الشبكة من TGT ويتحقق من حقوق الوصول إلى جهاز عميل المستخدم.
3. يرسل TGS مفتاح جلسة عمل خاص بالخدمة إلى العميل.
4. يوفر العميل مفتاح الجلسة للخدمة لإثبات الوصول، وتتيح الخدمة الوصول.
تدفق مصادقة Kerberos في SWA

- يطلب العميل الوصول إلى www.google.com من خلال SWA.
- ترد إدارة قاعدة بيانات المحول (SWA) بحالة HTTP 407، طالبة المصادقة.
- يطلب العميل تذكرة خدمة من خادم AD لخدمة HTTP/SWA.domain.com باستخدام TGT الذي يحصل عليه أثناء انضمام المجال.
- يتحقق خادم AD من صحة العميل ويصدر تذكرة خدمة، وإذا نجح ذلك وتم العثور على SPN (اسم الخدمة الرئيسي) ل SWA، فإنه ينتقل إلى الخطوة التالية.
- يرسل العميل هذه التذكرة إلى SWA.
- تقوم SWA بفك تشفير التذكرة والتحقق من المصادقة.
- إذا نجحت المصادقة، يتحقق SWA من السياسات.
- ترسل SWA إستجابة HTTP 200/OK" إلى العميل إذا تم السماح بالمعاملة.
ما هو الغرض من SPN؟
يحدد اسم الخدمة الأساسي (SPN) بشكل فريد مثيل خدمة في مصادقة Kerberos. وهو يربط مثيل الخدمة بحساب خدمة، مما يسمح للعملاء بطلب المصادقة للخدمة دون الحاجة إلى اسم الحساب. كل حساب في تطبيق مركز توزيع المفاتيح (KDC)، مثل AD أو LDAP المفتوح، وله SPN. في حين أن شبكة SPN تحدد الخدمة بشكل صارم، فإنها تستخدم بشكل خاطئ أحيانا للإشارة إلى اسم العميل (UPN) في السيناريوهات التي تعمل فيها الخدمة أيضا كعميل.
في Kerberos، يحدد اسم الخدمة الأساسي (SPN) بشكل فريد مثيل خدمة داخل شبكة. وهو يسمح للعملاء بطلب المصادقة لخدمة معينة. يربط SPN مثيل الخدمة بحسابه، مما يمكن Kerberos من المصادقة بشكل صحيح وتخويل طلبات الوصول إلى تلك الخدمة.
تكوين خادم Active Directory
- إنشاء حساب مستخدم جديد أو إختيار حساب مستخدم موجود لاستخدامه.
- تسجيل SPN المراد إستخدامه مقابل حساب المستخدم المختار.
- تأكد من عدم تسجيل أي شبكات SPN مكررة.
تلميح: كيف يختلف Kerberos مع SWA خلف موازن التحميل أو مدير حركة المرور/شاغل حركة المرور؟ بدلا من اقتران SPN ل HA Virtual Hostname بحساب مستخدم، قم بإقران SPN لجهاز إعادة توجيه حركة مرور HTTP (على سبيل المثال: موازن التحميل أو مدير حركة المرور) مع حساب مستخدم على الإعلان.
يمكن العثور على أفضل الممارسات لتنفيذ Kerberos:
استكشاف الأخطاء وإصلاحها
أستكشاف أخطاء Kerberos وإصلاحها باستخدام أوامر SPN
فيما يلي قائمة بأوامر setSPN المفيدة لإدارة أسماء الخدمات الأساسية (SPN) في بيئة Kerberos يتم تشغيل هذه الأوامر عادة من واجهة سطر أوامر ذات امتيازات إدارية في بيئة Windows.
سرد SPNs لحساب معين:
|
setSPN -L <User/ComputerAccountName>
يسرد كافة SPNs المسجلة للحساب المحدد.
|
إضافة SPN إلى حساب:
|
setSPN -A <SPN> <User/ComputerAccountName>
إضافة SPN المحدد إلى الحساب المحدد.
|
حذف SPN من حساب:
|
setSPN -D <SPN> <User/ComputerAccountName>
إزالة SPN المحدد من الحساب المحدد.
|
التحقق من تسجيل SPN بالفعل:
|
setSPN -Q <SPN>
التحقق مما إذا كان SPN المحدد مسجلا بالفعل في المجال.
|
سرد كافة SPNs في المجال
|
setSPN -L <User/Computer account>
يسرد جميع شبكات SPN في المجال.
|
تعيين SPN لحساب الكمبيوتر:
|
setSPN -S <SPN> <User/CoumputerAccountName>
إضافة SPN إلى حساب كمبيوتر، مما يضمن عدم تكرار الإدخالات.
|
إعادة تعيين SPNs لحساب محدد:
|
setSPN -R <User/CoumputerAccountName>
إعادة تعيين SPNs للحساب المحدد، مما يساعد في حل مشاكل SPN المكررة.
|
أمثلة على أوامر ومخرجات SPN
الأمثلة المقدمة توضح الاستخدام:
- حساب المستخدم/الكمبيوتر: vrpServiceUser
- SPN: http/WsaHostname.com أو http/proxyha.localdomain
التحقق مما إذا كان SPN مقترنا بالفعل بحساب مستخدم:
setSPN -q <SPN>
setSPN -q http/proxyha.localdomain
السيناريو 1: لم يتم العثور على SPN

السيناريو الثاني: تم العثور على SPN

- إقران SPN بحساب مستخدم/كمبيوتر صالح:
الصيغة: setSPN -s <SPN> <حساب المستخدم/الكمبيوتر>
على سبيل المثال: setSPN -s http/proxyha.localdomain vrpServiceUser

- حذف/إزالة SPN مقترن بالفعل بمستخدم أو حساب كمبيوتر:
الصيغة: setSPN -d <SPN> <User/Computer account>
على سبيل المثال: setSPN -d http/proxyha.localdomain pod1234-wsa0

تأكد من عدم وجود شبكات SPN مكررة لاسم المضيف الظاهري HA، حيث يمكن أن تحدث حالات الفشل لاحقا.
ونتيجة لذلك، لا يتم توفير تذكرة خدمة Kerberos للعميل، وتفشل مصادقة Kerberos.

تحذير: إذا تم العثور على تكرارات، الرجاء إزالة التكرارات باستخدام الأمر setSPN -d.
- سرد كافة SPNs المقترنة بحساب:
الصيغة: setSPN -l <User/Computer account>
على سبيل المثال: setSPN -l vrpServiceUser

أستكشاف أخطاء Kerberos وإصلاحها على SWA
يلزم الحصول على معلومات دعم Cisco عند أستكشاف أخطاء مصادقة Kerberos وإصلاحها:
- تفاصيل التكوين الحالي.
- سجلات المصادقة (يفضل أن تكون في وضع تصحيح الأخطاء أو التتبع).
- التقاط الحزم التي تم تنفيذها (مع عوامل التصفية المناسبة):
(أ) جهاز العميل
(ب) النهج القطاعية الشاملة
- الوصول إلى السجلات مع تمكين محدد التنسيق المخصص ٪m. يجب أن يعرض هذا آلية المصادقة التي تم إستخدامها لمعاملة معينة.
- للحصول على تفاصيل المصادقة التفصيلية، أضف هذه الحقول المخصصة إلى سجلات الوصول الموجودة على الوكلاء العاملين/غير العاملين للحصول على مزيد من المعلومات أو ارجع إلى الارتباط التشعبي الذي يضيف المعلمة في سجلات Access.
- في واجهة المستخدم الرسومية SWA، انتقل إلى إدارة النظام > تسجيل الاشتراك > سجلات الوصول > حقول مخصصة > إضافة هذه السلسلة لمشاكل المصادقة:
server IP address = %k, Client IP address= %a, Auth-Mech = %m, Auth_Type= %m, Auth_group= %g, Authenticated_Username= %A, Date= %L, Transaction_ID= %I Auth response = %:a;
- سجل وصول SWA لتفاصيل مصادقة المستخدم.
- سجلات SWA من Cisco بأسماء المستخدمين التي تمت مصادقتها في تنسيق المجال\username@authentication_realm:

- قم بتشغيل إعدادات مجال مصادقة الاختبار من واجهة المستخدم الرسومية (GUI). انتقل إلى الشبكة > المصادقة، ثم انقر على اسم المجال الخاص بك في قسم إختبار الإعدادات الحالية. انقر على بدء الاختبار.
لم يتم العثور على الخادم في قاعدة بيانات Kerberos
إحدى حالات الخطأ الشائعة هي فشل طلبات الويب مع "لم يتم العثور على الخادم في قاعدة بيانات Kerberos":
curl -vx proxyha.local:3128 --proxy-negotiate -u: http://www.cisco.com/
* About to connect() to proxy proxyha.localdomain port 3128 (#0)
* Connected to proxyha.local (10.8.96.30) port 3128 (#0)
< HTTP/1.1 407 Proxy Authentication Required
< Via: 1.1 pod1234-wsa02.local:80 (Cisco-SWA/10.1.2-003)
< Content-Type: text/html
gss_init_sec_context() failed: : Server not found in Kerberos database
< Proxy-Authenticate: Negotiate
< Connection: close
* HTTP/1.1 proxy connection set close!
في هذه الحالة، يشير الخطأ إلى أن اسم الخدمة الأساسي المقابل لقيمة عنوان الوكيل proxy proxy.local غير مسجل على خادم Active Directory. لحل المشكلة، من الضروري التأكد من تسجيل SPN http/proxyha.local على AD DC وإضافته إلى حساب خدمة مناسب.
معلومات ومراجع إضافية