เรามีปัญหาแปลก ๆ เกี่ยวกับการพิสูจน์ตัวตน Kerberos กับ Apache mod_auth_kerb เราใช้ krb5.conf ที่ง่ายมาก โดยกำหนดค่าเซิร์ฟเวอร์ AD (หลัก) เดียวเท่านั้น มีหลายโดเมนในฟอเรสต์ และดูเหมือนว่า SSO จะทำงานสำหรับโดเมนส่วนใหญ่ ยกเว้นเพียงโดเมนเดียว

ฉันไม่รู้ว่าโดเมนนั้นมีความพิเศษอย่างไร ข้อความแสดงข้อผิดพลาดที่ฉันเห็นในบันทึกของ Apache คือ "ไม่พบเซิร์ฟเวอร์ในฐานข้อมูล Kerberos":

[Wed Aug 31 14:56:02 2011] [debug] src/mod_auth_kerb.c(1025): [client xx.xxx.xxx.xxx] Using HTTP/[email protected] as server principal for password verification
[Wed Aug 31 14:56:02 2011] [debug] src/mod_auth_kerb.c(714): [client xx.xxx.xxx.xxx] Trying to get TGT for user [email protected]
[Wed Aug 31 14:56:02 2011] [debug] src/mod_auth_kerb.c(625): [client xx.xxx.xxx.xxx] Trying to verify authenticity of KDC using principal HTTP/[email protected]
[Wed Aug 31 14:56:02 2011] [debug] src/mod_auth_kerb.c(640): [client xx.xxx.xxx.xxx] krb5_get_credentials() failed when verifying KDC
[Wed Aug 31 14:56:02 2011] [error] [client xx.xxx.xxx.xxx] failed to verify krb5 credentials: Server not found in Kerberos database
[Wed Aug 31 14:56:02 2011] [debug] src/mod_auth_kerb.c(1110): [client xx.xxx.xxx.xxx] kerb_authenticate_user_krb5pwd ret=401 user=(NULL) authtype=(NULL)

เมื่อฉันพยายาม kinit ผู้ใช้รายนั้นในเครื่องที่ Apache ทำงานอยู่ มันใช้งานได้ ฉันยังตรวจสอบด้วยว่าการค้นหา DNS ทำงาน รวมถึงการค้นหาแบบย้อนกลับ

ใครสามารถบอกฉันได้ว่าเกิดอะไรขึ้น?

answer

อาจเป็นโดเมนที่ไม่ได้อยู่ใน AD forrest ของคุณ แต่เพิ่งเชื่อมโยงกับ NTML Trust หรือไม่ คุณจะต้องมีระดับ Win2k3 Forrest Functional เพื่อเปิดใช้งาน forrest trust มากกว่า (ความน่าเชื่อถือภายนอกเป็นเพียง NTLM)