ฉันมีสถานการณ์นี้: โดเมน windows 2008 R2 และเซิร์ฟเวอร์ linux (CentOs) ที่มี Apache

ฉันต้องกำหนดค่า SSO โดยใช้ kerberos เพื่ออนุญาตให้ไคลเอนต์ภายในของเราที่ใช้ IE หรือ Chrome ตรวจสอบสิทธิ์บนเว็บไซต์โดยไม่ต้องขอรหัสผ่าน

เพื่อที่จะทำนี้ผมทำตามนี้กวดวิชาhttps://wiki.gentoo.org/wiki/Kerberos_Windows_Interoperability

ไฟล์ Apache conf ของฉันสำหรับไซต์คือ:

AuthType Kerberos
AuthName "Kerberos Login"
KrbAuthRealms <MYREALM>
KrbServiceName HTTP/[email protected]<MYREALM>
Krb5Keytab /etc/krb5.keytab
KrbMethodNegotiate On
KrbMethodK5Passwd Off
KrbSaveCredentials Off
KrbVerifyKDC Off
Require valid-user

ตอนนี้เมื่อฉันพยายามเชื่อมต่อกับไซต์ ฉันได้รับรหัส 401

ใน error.log ฉันพบ:

kerb_authenticate_user entered with user (NULL) and auth_type Kerberos
Acquiring creds for HTTP/[email protected]<MYREALM>
Verifying client data using KRB5 GSS-API  
Client didn't delegate us their credential

บน journalctl:

GSSAPI Error: Unspecified GSS failure.  Minor code may provide more information (Server not found in Kerberos database)

ฉันไม่รู้เลยเกี่ยวกับเรื่องนี้

คุณสามารถช่วยฉันได้ไหม? ขอแสดงความนับถือ Francesco

answer

ฉันพบปัญหาแล้ว 1) ฉันได้เปิดใช้งานการเข้าสู่ระบบ kerberos บน DC https://support.microsoft.com/en-us/kb/262177

2) หลังจากตรวจสอบการเข้าสู่ระบบอีกครั้ง ฉันพบข้อผิดพลาดนี้ภายใต้บันทึกความปลอดภัย: KDC พบชื่อที่ซ้ำกันขณะประมวลผลคำขอตรวจสอบสิทธิ์ Kerberos ชื่อที่ซ้ำกันคือ HTTP/ (ประเภท DS_SERVICE_PRINCIPAL_NAME) ซึ่งอาจส่งผลให้การรับรองความถูกต้องล้มเหลวหรือดาวน์เกรดเป็น NTLM เพื่อป้องกันไม่ให้เกิดเหตุการณ์นี้ ให้ลบรายการที่ซ้ำกันสำหรับ HTTP/ ใน Active Directory 3) ฉันใช้ขั้นตอนนี้เพื่อค้นหารายการที่ซ้ำกัน https://support.microsoft.com/en-us/kb/321044

4) ฉันใช้ผู้ใช้ Active Directory และคอมพิวเตอร์เพื่อลบรายการที่ซ้ำกัน: a) เปิด ADUAC b) ดู -> คุณสมบัติขั้นสูง c) เปิดวัตถุที่มีรายการที่ซ้ำกัน d) เปิดตัวแก้ไขแอตทริบิวต์ e) เลือก servicePrincipalName และลบรายการ f) ปิดใช้งานการบันทึก kerberso อีกครั้ง

ลาก่อน ฟรานเชสโก้