OpenLDAP Proxy -- rwm-map vs map

  sonic0002        2018-02-02 20:36:02       9,494        0          English  简体中文  繁体中文  ภาษาไทย  Tiếng Việt 

Proxy OpenLDAP được sử dụng để proxy yêu cầu và phản hồi ldap giữa các máy khách và máy chủ, các máy chủ khác nhau có thể có các biểu diễn/thuộc tính khác nhau để biểu thị cùng một điều. Ví dụ: trong một máy chủ LDAP, firstName có thể được biểu diễn bằng firstName, nó có thể được biểu diễn bằng givenName trong một máy chủ khác. Tuy nhiên, từ quan điểm của máy khách, nó chỉ muốn lấy firstName, nó không quan tâm đến các thuộc tính phía sau.

Trong trường hợp này, ánh xạ thuộc tính có thể giúp cung cấp một chế độ xem ảo của dữ liệu phía sau. Trong một bài đăng khác OpenLDAP Proxy -- Mẹo và thủ thuật, chúng tôi đã giới thiệu cách ánh xạ thuộc tính hoạt động bằng cách sử dụng overlay rwm. Phương pháp này hoạt động rất tốt khi chúng ta chỉ có một máy chủ LDAP phía sau cần được proxy.

Tuy nhiên, điều gì sẽ xảy ra nếu chúng ta đã cấu hình hai máy chủ LDAP trở lên cho phía sau meta cơ sở dữ liệu? Vì rwm-map sẽ áp dụng ánh xạ trên toàn cầu chứ không phải dựa trên máy chủ, nên việc ánh xạ thuộc tính có thể không hoạt động đối với một số máy chủ sẽ là một vấn đề. Hãy xem điều này sẽ xảy ra như thế nào.

Giả sử hai máy chủ LDAP đã được cấu hình trong meta phía sau của proxy OpenLDAP và các thuộc tính trong hai máy chủ này là:

Máy chủ 1

firtsName: myFirstName
sn: myLastName

Máy chủ 2

givenName: myFirstName
lastName: myLastName

Trong proxy OpenLDAP, givenName được ánh xạ thành firstName.

overlay rwm
rwm-map attribute firstName givenName

Khi chạy ldapsearch để lấy thuộc tính firstName, firstName sẽ trước tiên được ánh xạ thành givenName và proxy OpenLDAP sẽ gửi thuộc tính givenName đến máy chủ 1 nhưng rõ ràng máy chủ 1 không có thuộc tính givenName, do đó nó sẽ không trả về gì. Trong máy chủ 2, vì nó có givenName, nên giá trị tên sẽ được trả về. Hành vi này không được mong đợi, rõ ràng chúng ta sẽ mong đợi cả hai máy chủ đều trả về firstName. 

Có vẻ như rwm-map không thể giải quyết vấn đề này. May mắn thay, nếu bạn đọc kỹ trang hướng dẫn slapd-meta , bạn sẽ thấy nó cung cấp một tùy chọn map có thể cung cấp ánh xạ thuộc tính ở mức cơ sở máy chủ.

map {attribute|objectclass} [<local name>|*] {<foreign name>|*}
  Điều này ánh xạ các lớp đối tượng và thuộc tính như trong phía sau LDAP.

Điều này có nghĩa là bạn có thể ánh xạ các tên thuộc tính khác nhau thành cùng một tên thuộc tính cục bộ cho các máy chủ khác nhau. Đối với firstName, nếu cấu hình bên dưới được thực hiện.

uri  "server1"
suffixmassage "local" "target"
map attribute firstName firstName    #Cũng có thể bỏ qua

uri "server2"
suffixmassage "local" "target"
map attribute firstName givenName

Đối với máy chủ 1, firstName sẽ được ánh xạ thành firstName và đối với máy chủ 2, givenName sẽ được ánh xạ thành firstName và máy khách sẽ thấy các giá trị được trả về từ cả hai máy chủ khi yêu cầu ldapsearch được thực hiện. Đây chính xác là điều được mong đợi.

Chỉ cần lưu ý, phía sau ldap không còn hỗ trợ map nữa, thay vào đó bạn nên sử dụng rwm-map. Điều này hoạt động kể từ khi cơ sở dữ liệu ldap được thiết kế để proxy đến một máy chủ LDAP khi bất kỳ yêu cầu nào được thực hiện.

Hy vọng điều này hữu ích.

MAP  OPENLDAP  OPENLDAP PROXY  LDAP  RWM-MAP 

       

  RELATED


  0 COMMENT


No comment for this article.



  RANDOM FUN

Tragedy of Programmer