Sử dụng LDAP làm phương thức xác thực cho kho git


15

Tôi muốn thuyết phục sếp rằng chúng ta nên sử dụng git để kiểm soát phiên bản. Ông nói rằng nó hoàn toàn phải xác thực người dùng thông qua máy chủ LDAP trung tâm của chúng tôi.

Tôi đã xem xét các giải pháp khác nhau (gitweb, gitorious ...) và thực sự không thể tìm thấy câu trả lời dứt khoát về việc chúng có hỗ trợ xác thực LDAP hay không.

Giải pháp duy nhất tôi có thể tìm thấy một ít thông tin là cài đặt Apache + mod_ldap. Nhưng điều đó có nghĩa là người dùng xác thực trên LDAP sẽ không nhất thiết phải giống với người dùng git thực tế, phải không? (Không phải đây là một vấn đề lớn, mà chỉ là thứ gì đó sẽ làm phiền tôi.)

Vậy, cách tốt nhất để xác thực người dùng git qua LDAP là gì?


1
Tôi đã thêm một số thông tin về http auth.
recbot

Câu trả lời:


8

Mặc dù các khóa được sử dụng cho hầu hết các dịch vụ git công cộng, nhưng xác thực thực sự xảy ra thông qua ssh. SSH có nhiều khả năng xác thực chống lại ldap. Theo như git có liên quan một khi bạn có quyền truy cập vào các tập tin bạn có thể đi đến thị trấn.

CẬP NHẬT

Git hiện hỗ trợ (tính đến năm nay, ai biết?) Một cơ chế đẩy http thông minh. Cách cũ là sử dụng máy chủ webdav, nhưng cả tìm nạp và đẩy đều rất chậm và không hiệu quả. Bây giờ bạn có thể nhận được khá nhiều tốc độ tương tự như http như bạn sẽ ssh: // hoặc git: //. Điều này có nghĩa là bạn có thể sử dụng apache hoặc nginx và sử dụng bất kỳ lược đồ http auth nào bạn muốn. (Ldap, cơ sở dữ liệu, v.v.)

Thêm thông tin từ pro git và github .


1
Nếu SSH được định cấu hình để sử dụng PAM để xác thực, bạn có thể xác thực đối với máy chủ LDAP của mình mà không gặp sự cố. Ngoại lệ đáng chú ý là Gitosis, thực hiện một số phép thuật bắt buộc bằng phím.
voretaq7

Than ôi, ssh không có khả năng nếu không có các bản vá lỗi vẫn chưa được hợp nhất để nhận các khóa công khai từ LDAP. Nó sẽ thực hiện mật khẩu auth thông qua LDAP bằng pam-ldap, nhưng nó không thể truy vấn LDAP trực tiếp để lấy khóa công khai. Rất bực bội.
Craig Ringer

Bạn có thể viết kịch bản này, tải khóa hàng ngày từ ldap sang hệ thống tập tin kết hợp với cách khởi động nó với tuy nhiên bạn cập nhật khóa có thể thực hiện thủ thuật.
recbot

2

Bạn có thể tìm kiếm / phát triển xác thực phụ trợ git bằng cách sử dụng tập lệnh móc git hook nhận trước. Chúng không nhất thiết phải là một kịch bản shell.

Ví dụ: nếu bạn nhìn vào hook nhận trước , bạn sẽ thấy cách xác thực anh chàng đang cố gắng đẩy vào repo từ xa trong tình huống đó bằng Ruby Script. Nếu bạn muốn và dành một chút thời gian cho nó, bạn có thể làm tương tự bằng ngôn ngữ yêu thích và thư viện ldap của nó :-)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.