ใช้ LDAP เป็นวิธีตรวจสอบสิทธิ์สำหรับที่เก็บ git


15

ฉันต้องการโน้มน้าวเจ้านายของฉันว่าเราควรใช้ git เพื่อควบคุมเวอร์ชัน เขากล่าวว่าจะต้องตรวจสอบผู้ใช้อย่างแน่นอนผ่านเซิร์ฟเวอร์ LDAP กลางของเรา

ฉันดูโซลูชันที่หลากหลาย (gitweb, gitorious ... ) และไม่พบคำตอบที่ชัดเจนว่าพวกเขาสนับสนุนการตรวจสอบสิทธิ์ LDAP หรือไม่

ทางออกเดียวที่ฉันสามารถหาข้อมูลได้เล็กน้อยคือการตั้งค่า Apache + mod_ldap แต่นั่นหมายความว่าผู้ใช้ที่ตรวจสอบความถูกต้องของ LDAP ไม่จำเป็นต้องเหมือนกับผู้ใช้ git จริงใช่ไหม (ไม่ใช่ว่านี่เป็นปัญหาใหญ่ แต่เป็นเพียงบางสิ่งที่จะบั๊กฉัน)

ดังนั้นวิธีที่ดีที่สุดในการรับรองความถูกต้องของผู้ใช้ git ผ่าน LDAP คืออะไร


1
ฉันเพิ่มข้อมูลเพิ่มเติมเกี่ยวกับ http auth
reconbot

คำตอบ:


8

ในขณะที่ใช้คีย์สำหรับบริการสาธารณะส่วนใหญ่การพิสูจน์ตัวจริงจะเกิดขึ้นผ่าน ssh SSH นั้นสามารถตรวจสอบ ldap ได้มากกว่า เท่าที่คอมไพล์กังวลเมื่อคุณเข้าถึงไฟล์ที่คุณสามารถไปที่เมือง

UPDATE

ตอนนี้ Git สนับสนุน (ในปีนี้ใครจะรู้?) กลไกการผลัก http อัจฉริยะ วิธีเก่าคือการใช้เซิร์ฟเวอร์ webdav แต่การดึงข้อมูลและการพุชนั้นช้าและไม่มีประสิทธิภาพมาก ตอนนี้คุณสามารถรับความเร็วที่เหมือนกันผ่าน http ได้มากเช่นเดียวกับ ssh: // หรือ git: // ซึ่งหมายความว่าคุณสามารถใช้ apache หรือ nginx และใช้รูปแบบ http auth ใด ๆ ที่คุณต้องการ (Ldap ฐานข้อมูล ฯลฯ )

ข้อมูลเพิ่มเติมจากคอมไพล์และโปร GitHub


1
หาก SSH ได้รับการกำหนดค่าให้ใช้ PAM สำหรับการตรวจสอบสิทธิ์คุณสามารถรับรองความถูกต้องกับเซิร์ฟเวอร์ LDAP ของคุณได้โดยไม่มีปัญหา ข้อยกเว้นที่น่าสังเกตคือ Gitosis ซึ่งใช้เวทมนตร์ควบคุมการใช้กุญแจ
voretaq7

อนิจจา ssh ไม่สามารถทำได้หากไม่มีแพตช์ที่ยังไม่ได้ผสานในการรับกุญแจสาธารณะจาก LDAP มันจะทำการตรวจสอบรหัสผ่านผ่าน LDAP โดยใช้ pam-ldap แต่ไม่สามารถสอบถาม LDAP โดยตรงเพื่อรับกุญแจสาธารณะ น่าผิดหวังมาก
Craig Ringer

คุณสามารถสคริปต์สิ่งนี้การโหลดคีย์รายวันจาก ldap ไปยังระบบไฟล์รวมกับวิธีในการเริ่มใช้งานอย่างไรก็ตามคุณอัปเดตคีย์สามารถทำเคล็ดลับได้
reconbot

2

คุณสามารถค้นหา / พัฒนาการพิสูจน์ตัวตนแบ็กเอนด์ git โดยใช้สคริปต์ git hooks ก่อนรับ ไม่จำเป็นต้องเป็นเชลล์สคริปต์

ตัวอย่างเช่นหากคุณมองหาเบ็ดรับก่อน gitoriousคุณจะเห็นวิธีในการรับรองความถูกต้องของคนที่พยายามที่จะผลักดันเข้าไปใน repo ระยะไกลในสถานการณ์นั้นโดยใช้ Ruby Script หากคุณต้องการและใช้เวลากับมันสักหน่อยคุณสามารถทำได้โดยใช้ภาษาที่คุณโปรดปรานและห้องสมุด ldap :-)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.