Tôi hiện đang làm việc để tích hợp xác thực LDAP vào một hệ thống và tôi muốn hạn chế quyền truy cập dựa trên nhóm LDAP. Cách duy nhất để làm điều này là thông qua bộ lọc tìm kiếm và do đó tôi tin rằng tùy chọn duy nhất của tôi là sử dụng thuộc tính "MemberOf" trong bộ lọc tìm kiếm của tôi. Theo hiểu biết của tôi, thuộc tính "MemberOf" là thuộc tính hoạt động có thể được tạo bởi máy chủ cho tôi bất cứ khi nào một thuộc tính "thành viên" mới được tạo cho bất kỳ mục nhập "groupOfNames" nào trên máy chủ. Mục tiêu chính của tôi là có thể thêm thuộc tính "thành viên" vào mục nhập "groupOfNames" hiện có và có thuộc tính "thành viên" phù hợp được thêm vào DN tôi cung cấp.
Những gì tôi đã quản lý để đạt được cho đến nay:
Tôi vẫn còn khá mới đối với quản trị LDAP nhưng dựa trên những gì tôi tìm thấy trong hướng dẫn của quản trị viên openldap , có vẻ như Duy trì thành viên nhóm ngược hay còn gọi là "lớp phủ thành viên" sẽ đạt được chính xác hiệu quả mà tôi đang tìm kiếm.
Máy chủ của tôi hiện đang chạy cài đặt gói (slapd trên ubfox) của openldap 2.4.15, sử dụng cấu hình thời gian chạy kiểu "cn = config". Hầu hết các ví dụ tôi tìm thấy vẫn tham chiếu phương thức cấu hình tĩnh "slapd.conf" cũ hơn và tôi đã cố gắng hết sức để điều chỉnh các cấu hình cho mô hình dựa trên thư mục mới.
Tôi đã thêm các mục sau để kích hoạt mô-đun lớp phủ thành viên:
Kích hoạt mô-đun với olcModuleLoad
cn=config/cn\=module\{0\}.ldif
dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
structuralObjectClass: olcModuleList
entryUUID: a410ce98-3fdf-102e-82cf-59ccb6b4d60d
creatorsName: cn=config
createTimestamp: 20090927183056Z
entryCSN: 20091009174548.503911Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009174548Z
Đã bật lớp phủ cho cơ sở dữ liệu và cho phép nó sử dụng các cài đặt mặc định của nó (groupOfNames, thành viên, thành viên, v.v.)
cn=config/olcDatabase={1}hdb/olcOverlay\=\{0\}memberof
dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
entryUUID: 6d599084-490c-102e-80f6-f1a5d50be388
creatorsName: cn=admin,cn=config
createTimestamp: 20091009104412Z
olcMemberOfRefInt: TRUE
entryCSN: 20091009173500.139380Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009173500Z
Kết quả hiện tại của tôi:
Bằng cách sử dụng cấu hình trên, tôi có thể thêm "groupOfNames" MỚI với bất kỳ số lượng mục "thành viên" nào và có tất cả các DN liên quan được cập nhật với thuộc tính "MemberOf". Đây là một phần của hành vi tôi mong đợi. Mặc dù tôi tin rằng những điều sau đáng lẽ phải được hoàn thành với lớp phủ thành viên, tôi vẫn không biết cách thực hiện như sau và tôi sẵn sàng hoan nghênh mọi lời khuyên:
- Thêm thuộc tính "thành viên" vào "nhómOfNames" EXISTING và có thuộc tính "thành viên" tương ứng được tạo tự động.
- Xóa thuộc tính "thành viên" và có thuộc tính "thành viên" tương ứng được xóa tự động.
slapadd
(vào cơ sở dữ liệu đã dừng) đúng cách để làm điều đó sao?