Các nhóm người dùng mod_auth_kerb và LDAP của Apache


12

Tôi đã xem xét việc triển khai mod_auth_kerbtrên các máy chủ web nội bộ của chúng tôi để kích hoạt SSO. Một vấn đề rõ ràng tôi có thể thấy là đó là một cách tiếp cận toàn diện hoặc không có gì, tất cả người dùng tên miền của bạn có thể truy cập một trang web hay không.

Có thể kết hợp mod_auth_kerbvới một cái gì đó như mod_authnz_ldapđể kiểm tra tư cách thành viên nhóm trong một nhóm cụ thể trong LDAP không? Tôi đoán KrbAuthoritativetùy chọn sẽ có cái gì đó để làm với điều này?

Ngoài ra, theo tôi hiểu, mô-đun đặt tên người dùng là username@REALMsau khi xác thực, nhưng tất nhiên trong thư mục người dùng chỉ được lưu trữ dưới dạng tên người dùng. Hơn nữa, một số trang web nội bộ chúng tôi chạy như trac đã có hồ sơ người dùng được liên kết với mỗi tên người dùng. Có cách nào để giải quyết vấn đề này, có lẽ bằng cách tước bỏ cõi bit sau khi xác thực bằng cách nào đó?


Chỉ là một câu hỏi liên quan đến việc triển khai, bạn đang sử dụng Windows ADS cho vương quốc kerberos hay một số triển khai khác?
Jeremy Bouse

OpenDirectory của Apple đi kèm với MIT Kerberos v5
Kamil Kisiel

Được rồi ... Chưa từng làm việc với OpenDirectory của Apple trước đây. Tôi đã có thể khiến Apache xác thực bằng cách sử dụng NTLM với Windows ADS bằng thông tin đăng nhập máy trạm của họ và sau đó giới hạn trong các nhóm cụ thể.
Jeremy Bouse

Nếu không tước địa hạt khỏi tên người dùng, bạn có thể sử dụng một thuộc tính thay thế trong truy vấn LDAP để tìm kiếm thực thể người dùng, ví dụ như thuộc tính "userPrincipalName" trong Ms ActiveDirectory.
Yves Martin

Câu trả lời:


13

Bây giờ có thể có trong mod_auth_kerb 5.4 để loại bỏ vương quốc khỏi REMOTE_USER với chỉ thị cấu hình sau:

KrbLocalUserMapping On


Wow, có vẻ như điều này đã được phát hành vào năm 2008, nhưng không đề cập đến nó (phiên bản hoặc tham số) trên trang web của họ.
Kamil Kisiel

7

Đó là toàn bộ điểm của phân tách authn / authz trong 2.2 mà bạn có thể xác thực bằng một cơ chế và ủy quyền với một cơ chế khác. Xác thực cung cấp cho bạn một cài đặt REMOTE_USER, sau đó bạn có thể sử dụng authz_ldap để chống lại. Ngoài ra, sau đó tìm kiếm authn_ldap cho người dùng (chuyển đổi REMOTE_USER thành DN nếu tìm thấy, sử dụng tiêu chí tìm kiếm bạn phải chỉ định - ví dụ: tìm kiếm CN). Sau đó, khi tìm thấy một DN, bạn có thể chỉ định các yêu cầu trên đối tượng LDAP. Ví dụ: nếu tất cả người dùng truy cập tài nguyên phải ở cùng một OU, bạn chỉ định

yêu cầu ldap-dn ou = Người quản lý, o = Công ty


Có thể sửa đổi biến REMOTE_USER trước khi nó được chuyển sang giai đoạn ủy quyền không? Ví dụ: để loại bỏ phần REALM của tên người dùng Kerberos để tra cứu trong cơ sở dữ liệu LDAP?
Kamil Kisiel

Không phải bằng phương tiện cấu hình. Tuy nhiên, tương đối dễ thực hiện trong mã nguồn của mô-đun Apache. Tìm các bài tập để yêu cầu-> người dùng và điều chỉnh chúng; sau đó xây dựng lại mô-đun với apxs2 -c. OTOH, việc đặt tên Kerberos vào LDAP có thể dễ dàng hơn, dưới một thuộc tính riêng biệt và có mô-đun ldap tìm kiếm người dùng theo thuộc tính đó.
Martin v. Löwis

2

Debian ổn định hiện có phiên bản 5.4 của mod_auth_kerb .

Nếu bạn bị mắc kẹt với phiên bản cũ hơn, trang này giải thích cách sử dụng mod_map_user kết hợp với mod_auth_kerb và mod_authnz_ldap.

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.