gss_acquire_cred يُرجع خطأ لم يتم العثور على إدخال جدول المفاتيح

StackOverflow https://stackoverflow.com/questions/127324

  •  02-07-2019
  •  | 
  •  

سؤال

لقد كنت أحاول اتباع الإرشادات الواردة في هذه المقالة مايكروسوفت للمصادقة ضد أباتشي مع Kerberos و AD.لقد نجحت في اختبار الاتصال بين خادم Apache وخادم AD باستخدام kinit.ومع ذلك، عندما أحاول الوصول إلى صفحة مقيدة على الخادم باستخدام IE، أحصل على خطأ داخلي في الخادم ويظهر ما يلي في سجل أخطاء Apache.

[Wed Sep 24 14:18:15 2008] [debug] src/mod_auth_kerb.c(1483): [client 172.31.37.38] kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
[Wed Sep 24 14:18:15 2008] [debug] src/mod_auth_kerb.c(1174): [client 172.31.37.38] Acquiring creds for HTTP/srvnfssol1.dev.local@DEV.LOCAL
[Wed Sep 24 14:18:15 2008] [error] [client 172.31.37.38] gss_acquire_cred() failed: Miscellaneous failure (see text) (Key table entry not found)

لقد قمت بتشغيل الجمالون على عملية أباتشي وأكدت أنه في الواقع يقوم بتحميل ملف لوحة المفاتيح بشكل جيد.أتساءل عما إذا كان هناك خطأ ما في تنسيق ملف keytab ...

HTTP/srvnfssol1.dev.local@DEV.LOCAL

لست متأكدًا مما أفتقده بالرغم من ذلك.أو ما هي الأشياء الأخرى للتحقق.

أي اقتراحات؟

شكرًا

نفذ

هل كانت مفيدة؟

المحلول

نعم.من المفترض أن تحتوي علامات التبويب على الاسم الأساسي للخدمة، وهو في هذه الحالة "HTTP/srvnfssol1.dev.local@DEV.LOCAL" ومفتاح التشفير.أرى أن مستندات MS تقول فقط لتكرار ذلك في ملف، لكنني لا أعتقد أن هذا صحيح.

ستحتاج إلى استخدام الأداة المساعدة ktpass لإنشاء علامة تبويب المفاتيح.مستندات MS هي هنا.

على وجه الخصوص، سوف تحتاج إلى تحديد KRB5_NT_SRV_HST, ، ومعظم الخيارات المتبقية يمكن أن تكون افتراضية.

عينة منه على جهازي:

C:\>ktpass /out test.keytab /princ HTTP/srvnfssol1.dev.local@DEV.LOCAL 
           /ptype KRB5_NT_SRV_HST /pass *
Type the password for HTTP/srvnfssol1.dev.local:
Key created.

Output keytab to test.keytab:

Keytab version: 0x502
keysize 62 HTTP/srvnfssol1.dev.local@DEV.LOCAL 
ptype 3 (KRB5_NT_SRV_HST) vno 1 etype 0x1 (DES-CBC-CRC) 
keylength 8 (0xa7f1fb38041c199e)

إذا كان خادم الدليل النشط هو KDC، فستحتاج إلى استخدام /map <name> حجة، حيث <name> هو حساب الكمبيوتر في الدليل النشط الذي يمثل الخادم.

بعض التفاصيل حول كيفية عمل كل هذا.عندما تتصفح موقع الويب، يجب أن يستجيب باستخدام WWW-Authenticate:تفاوض على العنوان، وسيرسل متصفحك طلبًا إلى KDC (خادم الدليل النشط) للحصول على تذكرة kerberos للخدمة.سيبحث خادم AD عن مفتاح التشفير للتذكرة باستخدام الاسم الرئيسي للخدمة، ويرسل تذكرة خدمة مشفرة مرة أخرى إلى المتصفح.بمجرد حصول المتصفح على تذكرة الخدمة، سيعيد إصدار طلب HTTP برأس مصادقة يحتوي على التذكرة.سيبحث خادم Apache عن مفتاحه في علامة التبويب، ويفك تشفير التذكرة، ويمنح حق الوصول.

يحدث الخطأ "لم يتم العثور على إدخال جدول المفاتيح" لأن Apache لا يجد نفسه في علامة تبويب المفاتيح.يمكن أن يحدث أيضًا إذا لم يتم إعداد دقة/نطاقات الاسم بشكل صحيح.

يجب أن تكون قادرًا على رؤية جميع طلبات kerberos AP-REQ/AP-REP/TGS-REQ/TGS-REP باستخدام wireshark على العميل أو منفذ tcp أو udp 88.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top