Thuộc tính thành viên OpenLDAP không được cập nhật sau khi cập nhật nhóm


8

Tôi có một thiết lập OpenLDAP trên Debian 7.1, (OpenLDAP 2.4.31) và tôi đang cố gắng thiết lập lớp phủ thành viên. Cấu hình của tôi giống như tôi đã đọc ở rất nhiều trang web trên internet, tuy nhiên, nó vẫn không hoạt động với tôi.

Vấn đề là các thuộc tính thành viên của các thực thể chỉ được cập nhật khi tôi tạo một nhóm, nhưng không được cập nhật khi tôi sửa đổi hoặc xóa một nhóm. Trên thực tế, vấn đề tương tự này đã từng được hỏi trước đây: Làm cách nào để định cấu hình Bảo trì thành viên nhóm ngược trên máy chủ openldap? (MemberOf) , nhưng ngay cả khi nó được kiểm tra như đã trả lời, tôi không thể tìm thấy bất kỳ thông tin có thể sử dụng nào trong các câu trả lời. (Ngay cả người đăng ban đầu cũng không thể làm gì với câu trả lời theo ý kiến ​​...)

Cấu hình của tôi là như thế này: 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
structuralObjectClass: olcModuleList

Và đối với mô-đun: cn = config / olcDatabase = {1} hdb / olcOverlay = {0} Memberof.ldif

dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf
olcMemberOfRefInt: TRUE

Nhóm tôi thêm:

dn: cn=test,ou=services,dc=x,dc=y
cn: test
objectClass: groupOfNames
objectClass: top
description: test group
member: cn=Almafa Teszt,ou=users,dc=x,dc=y

Truy vấn tôi chạy:

$ ldapsearch -LLL -h localhost -x -D cn=admin,dc=x,dc=y -b u=users,dc=x,dc=y -W  '(memberOf=cn=test,ou=services,dc=x,dc=y)' memberOf

Vì vậy, vấn đề không nằm ở cách truy vấn thuộc tính, mà là sau khi sửa đổi hoặc xóa nhóm, kết quả tìm kiếm không thay đổi ...

Cập nhật : Đối với câu trả lời của Brian, tôi cũng thiết lập lớp phủ tinh chỉnh, với cấu hình sau:

$ ldapsearch -LLL -b cn=module{0},cn=config
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
olcModuleLoad: {2}refint

$ ldapsearch -LLL -b olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
dn: olcOverlay={1}refint,olcDatabase={1}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: {1}refint
olcRefintAttribute: memberof member manager owner

Nhưng nó không cố định lớp phủ thành viên, nó cũng không hoạt động. Khi tôi sửa đổi tên của một thành viên trong nhóm, thuộc tính thành viên của nhóm không được cập nhật. Hai vấn đề này có thể liên quan?


Bạn đã tìm ra vấn đề này? Tôi cũng đang như vậy.
Ethan Xu

@YangXu - không, tôi không thể giải quyết vấn đề này vào thời điểm đó và chỉ đi một con đường khác, không liên quan đến plugin thành viên. Sau đó, một vài tháng trước tôi đã phải thiết lập một cái gì đó tương tự trên một máy chủ khác và lần đầu tiên nó hoạt động. Bây giờ tôi đã so sánh cấu hình của máy chủ mới với cấu hình tôi đặt ở đây và điểm khác biệt duy nhất tôi có thể nhận thấy là trên máy chủ mới, cơ sở dữ liệu phụ trợ là mdb, trong trường hợp cũ này là hdb. Bạn sử dụng cái nào? Nếu hdb, bạn có thể thử chuyển sang mdb không? Nếu điều đó giải quyết được vấn đề, bạn có thể trả lời câu hỏi này không? Cảm ơn!
Peter B

Câu trả lời:


0

Có vẻ như bạn có thể cần phải định cấu hình lớp phủ tinh chỉnh, giúp duy trì tính toàn vẹn tham chiếu của thư mục trong các tình huống như bạn đã mô tả. Có một trang tại http://www.zarafa.com/wiki/index.php/OpenLDAP_Vferential_integrity có thể hữu ích đối với việc thiết lập lớp phủ này.


Trên thực tế tôi đã thử lớp phủ tinh chỉnh trước đây, như tại một số nơi chúng được đề cập cùng nhau. Nhưng nó không giúp được gì. :( Và thực tế, refint cũng không hoạt động, như thể tôi đổi tên người dùng, thuộc tính "thành viên" của nhómOfNames không cập nhật. Có lẽ hai vấn đề này có liên quan?
Peter B

Chỉ cần xác nhận, bạn có đang sử dụng DN của một mục nhập thành viên để chỉ ra rằng đó là thành viên trong nhóm của bạn không?
Brian Showalter

Vâng, thích member: cn=testuser,ou=users,dc=x,dc=y.
Peter B

0

Chúng tôi đã có cùng một vấn đề (triệu chứng giống như bạn mô tả). Hóa ra chúng tôi đã mất tích olcRootDNtrong dn: olcDatabase={1}hdb,cn=configphần Thêm vào (ví dụ) olcRootDN: cn=admin,cn=configở đó.

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.