Tải bản đầy đủ (.docx) (188 trang)

Đồ án tin học nghiên cứu về giao thức LDAP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.36 MB, 188 trang )

Giao thức LDAP GVHD: TS. Lưu Thanh Trà
MỤC LỤC
1 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
TÓM TẮT ĐỀ TÀI:
Đề tài này nghiên cứu về giao thức LDAP (Lightweight Directory Access Protocol)
CHƯA BIẾT GHI GÌ THÊM
Tóm tắt 2 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
GIAO THỨC LDAP
(LIGHTWEIGHT DIRECTORY ACCESS PROTOCOL)
CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN VỀ LDAP
1. Giới thiệu tổng quan về ldap
LDAP (Lightweight Directory Access Protocol):
Là một giao thức tìm, truy nhập các thông tin dạng thư mục trên server.
Là giao thức dạng Client/Server dùng để truy cập dịch vụ thư mục.
LDAP chạy trên TCP/IP hoặc các dịch vụ hướng kết nối khác.
Một mô hình thông tin cho phép xác định cấu trúc và đặc điểm của thông tin trong thư mục.
Trong LDAP các thông tin cần truy cập theo dạng phân cấp từ trên xuống dựa vào các chỉ mục
(Index).
Một cấu trúc thư mục là một tập hợp các đối tượng có các thuộc tính hay đặc điểm tương tự và
được sắp xếp theo lôgic thành nhiều cấp bậc. Ví dụ thường thấy nhất là danh bạ điện thoại. Trong
đó, mỗi cá nhân hay tổ chức được xấp xếp theo thứ tự tên và có các thuộc tính là địa chỉ và số
điện thoại. Vì mẫu cấu trúc một thư mục LDAP tương đối đơn giản nên nó cũng thường được
dùng để xác nhận người sử dụng các hệ thống thông tin.
Vào giữa thập niên 1980, tổ chức CCITT (International Telegraph and Telephone Consultative
Committee), tiền thân của ITU (International Telecommunication Union) và tổ chức tiêu chuẩn
hóa quốc tế (ISO) đã hợp tác với nhau để tạo ra một chuẩn mới cho dịch vụ thư mục (Drectory
Service – DS). Cuối năm 1988, CCITT đã công bố chuẩn dịch vụ thư mục X.500 đầu tiên. Sau


đó, chuẩn này đã được cập nhật vào các năm 1993, 1997, và 2001.
X.500 hoạt động trên nền tảng OSI stack.
Khi mới xuất hiện, X.500 đã mang lại rất nhiều tiện ích cho người dùng. Nhưng sau này, nó bộc
lộ những khiếm khuyết. Một trong những khiếm khuyết đó nằm ở giao thức DAP (Directory
client Access Protocol) của X.500. Giao thức này tương đối phức tạp, không thích hợp và không
có sẵn trên các máy tính thời đó. Bên cạnh đó, DAP cũng khá cồng kềnh và khó hiện thực. Vì
những lý do đó, người ta bắt đầu nghĩ đến một cách tiếp cận mới để tránh việc phải hiện thực
một giao thức phức tạp như vậy.
X.500 khá phức tạp cũng do cấu trúc của nó. Nó đòi hỏi client và server giao tiếp với nhau giao
thức 7 lớp OSI. Đó là điểm yếu của nó khi so sánh bộ giao thức TCP / IP
Vào khoảng năm 1990, 2 giao thức đơn giản hóa của DAP, gọi là DAS (Directory Assistance
Service) và DIXIE (Directory Interface to X.500 Implemented Efficiently) đã được định nghĩa
trong RFC 1202 và RFC 1249.
Sau sự ứng dụng thành công của DIXIE và DAS, các thành viên của OSI-DS quyết định tăng
cường nguồn lực vào việc tạo ra một giao thức truy cập thư mục đơn giản hóa với đầy đủ tính
năng cho X.500. Đó chính là LDAP
Chương 1 3 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
LDAP là khá nhẹ khi vì các gói tin nhắn được map trực tiếp lên các lớp TCP (cổng 389) của giao
thức TCP / IP
.
2. Các model của ldap
Information model: cho biết các loại dữ liệu, thông tin có thể chứa trong LDAP thư mục.
Naming model: cho biết cách sắp xếp, tham chiếu đến dữ liệu trong thư mục.
Function model: cho biết người dùng có thể làm gì với dữ liệu LDAP.
Security model: chứa các thông tin xác thực, phân quyền với dữ liệu LDAP.
LDAP Data Interchange Format (LDIF): định dạng chuẩn dùng để trao đổi dữ liệu LDAP.
Dữ liệu trong LDAP directory được lưu dưới dạng các cây thư mục phân cấp.
Chương 1 4 Lê Tiến Cường – Nguyễn Minh Đức

Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
CHƯƠNG 2: SƠ LƯỢC VỀ LDAPv3
1. LDIF
The LDAP Interchange Format (LDIF), là một chuẩn định dạng file text để lưu trữ thông tin cấu
hình của hệ thống LDAP.định dạng chuẩn dùng để trao đổi dữ liệu LDAP.Thông tin lưu trữ
trong LDIF gồm có:
Các thông tin đăng nhập ( collection of entries)
Bản đồ tên và giá trị các thuộc tính
Các thông tin hướng dẫn xử lý thông tin
Các tập tin LDIF thường được sử dụng để đưa dữ liệu mới vào thư mục hoặc thay đổi dữ liệu
hiện có. Các dữ liệu trong file LDIF cần phải tuân theo các quy tắc cấu trúc của thư mục
LDAP . Chúng ta có thể nghĩ của lược đồ như là một định nghĩa dữ liệu cho thư mục của bạn.
Mỗi mục được thêm vào hoặc thay đổi trong thư mục được kiểm tra để đảm bảo tính chính xác.
Một lược đồ sẽ vi phạm nếu các dữ liệu không tương ứng với các quy định hiện hành.
Cấu trúc cây thông tin thư mục:
cú pháp LDIF:
# LDIF listing for the entry dn: dc=plainjoe,dc=org
dn: dc=plainjoe,dc=org //dn= distinguished name
objectClass: domain
dc: plainjoe
nếu DN (distinguished name) được xem như đường dẫn từ file hệ thống tới file thì RDN
(relative distinguished name) như là tên của file và RDN có thể gồm nhiều thuộc tính
Chúng ta đã thấy rằng một DN được hình thành bởi việc nối lại các RDNs của tất cả các thực
thể .Theo ý nghĩa này, RDN một hoạt động tương tự như tên tập tin một. Tuy nhiên, không
giống như một tên tập tin, một RDN có thể có nhiều thuộc tính.
Chương 2 5 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
Ta có thể xem xét ví dụ sau :

Giả sử rằng có hai nhân viên tên là Jane Smith trong công ty : một người ở Kinh doanh và một ở
khu Kỹ thuật. Bây giờ giả sử các mục cho các nhân viên có cùng một mục gốc. Tên gọi chung
(cn)và tên đơn vị tổ chức (ou) không phải là thuộc tính là duy nhất. Tuy nhiên, cả hai có thể
được sử dụng kết hợp để tạo ra một RDN duy nhất
# Example of two entries with a multivalued RDN
dn: cn=Jane Smith+ou=Sales,dc=plainjoe,dc=org //RDN co nhieu thuoc tinh:cn,ou
cn: Jane Smith //cn: common name
ou: Sales //ou: organizational unit

dn: cn=Jane Smith+ou=Engineering,dc=plainjoe,dc=org
cn: Jane Smith
ou: Engineering
Đối với cả những mục này, thành phần đầu tiên của DN là một RDN bao gồm hai giá trị: cn = Jane Smith
+ ou = Sales và cn = Jane Smith + ou = Engineering.
khi đó ta có cây thư mục với common name là Jane Smith duy nhất và giá tri RDN đa trị như
sau:
2. Thuộc tính trong ldap
Các khái niệm của các loại thuộc tính và cú pháp thuộc tính đã được đề cập trong các chương
trước. Các loại thuộc tính và quy tắc cú pháp liên quan tương tự như khai báo kiểu biến và kiểu
dữ liệu như trong nhiều ngôn ngữ lập trình. Các thuộc tính được sử dụng để giữ giá trị. Các biến
trong các chương trình thực hiện một nhiệm vụ tương tự-lưu trữ thông tin.
Không giống như các biến, các thuộc tính của LDAP có thể có nhiều giá trị. Khi gán một giá trị
mới cho một thuộc tính , nó sẽ thêm vào giá trị mới cùng với các giá trị khác đã có. Ta có thể
xem xét ví dụ sau:
# LDIF listing for dn: ou=devices,dc=plainjoe,dc=org
dn: ou=devices,dc=plainjoe,dc=org
objectclass: organizationalUnit
ou: devices
telephoneNumber: +1 256 555-5446
telephoneNumber: +1 256 555-5447

description: Container for all network enabled
devices existing within the plainjoe.org domain
Chương 2 6 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
Ta thấy tập tin LDIF có lưu hai giá trị cho thuộc tính telephoneNumber.Một số thuộc tính chỉ có
thể mang một giá trị duy nhất .Việc một thuộc tính đơn trị hoặc đa trị phụ thuộc vào định nghĩa
trong các server máy chủ. Các thuộc tính đơn trị bao thường gặp như tên quốc gia gia (c), tên
hiển thị (DisplayName), hoặc ID của user (uidNumber).
ý nghĩa giá trị các thuộc tính của objectClass
Tất cả các mục trong một thư mục LDAP luôn có một thuộc tính objectClass, và thuộc tính này
phải có ít nhất một giá trị. Mỗi giá trị objectClass có tác dụng như một khuôn mẫu để các dữ liệu
được lưu trữ trong mục. Nó định nghĩa một tập hợp các thuộc tính phải có mặt trong mục và các
thuộc tính tùy chọn có thể có hoặc không
Ta có thể xem theo ví dụ trên, giá trị của objectClass là organizationalUnit được quy định như sau:
Từ khóa MUST: các thuộc tính bắt buộc
Từ khóa MAY:các thuộc tính tùy chọn cho các đối tượng
Từ khóa SUP: chỉ ra đối tượng cha.Đối tượng con có đầy đủ các thuộc tính ,cú pháp của đối
tượng cha
3. Sự xác thực
Tại sao sự xác thực lại cần thiết trong một thư mục LDAP? Hãy nhớ rằng LDAP là một giao
thức dựa trên hướng kết nối. Quá trình xác thực được sử dụng để thiết lập các đặc quyền của user
cho mỗi phiên. Tất cả các việc như tìm kiếm, truy vấn, được thay đổi tùy theo mức độ được
cấp cho của người sử dụng
Chương 2 7 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
dn: cn=gerald carter,ou=people,dc=plainjoe,dc=org
objectClass: person
cn: gerald carter

sn: carter
telephoneNumber: 555-1234
userPassword: {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ= =
Ta đã thêm một thuộc tính có tên là UserPassword. Thuộc tính này lưu trữ một thông tin đại diện cần thiết
để xác thực user. Tiền tố (trong trường hợp này, {MD5}) mô tả cách các thông tin được mã hóa. RFC
2307 định nghĩa các thuật toán mã hóa như {CRYPT},{MD5},{SHA},{SSHA}.
Mỗi user được cấp username và password.Trong trường hợp trên username là DN(cn=gerald
carter,ou=people,dc=plainjoe,dc=org) và password sử dụng là giá trị trong userPassword
Trong LDAP còn định nghĩa một vài phương thức xác nhận khách như:
Anonymous Authentication: Xác định nặc danh
Simple Authentication: xác thực đơn giản
Simple Authentication over SSL/TLS:xác thực đơn giản thông qua SSL/TLS
Simple Authentication and Security Layer (SASL):xác thực đơn giản và lớp bảo vệ
Anonymous Authentication:cho phép truy nhập với DN và password trống
Simple Authentication:tên đăng nhập DN và password sẽ được gửi đến LDAP server.Server sẽ so
sánh với giá trị có trong hệ thống (server sẽ thực hiện các chuyển đổi nếu cần thiết).Tuy nhiên
phương thức này có điểm yếu là thông tin gửi đến cho server ở dạng clear text.
Simple Authentication over SSL/TLS:mã hóa các thông tin gửi đi đến server.Có 2 cách sử dụng
phương thức này:
LDAP over SSL(LDAPS-tcp/636): được hỗ trợ bởi nhiều server LDAP.
LDAP over TLS(tcp/port389):cho phép server mã hóa hoặc không mã hóa các phiên.
Simple Authentication and Security Layer (SASL):
Một phương thức mở rộng được định nghĩa trong RFC 2222,được dùng để thêm các thông tin
xác thực trong việc kết nối định hướng.
RFC 2222 định nghĩa một vài phương thức xác thực cho SASL
• Kerberos v4 (KERBEROS_V4)
• The Generic Security Service Application Program Interface, Version 2 (GSSAPI), được định
nghĩa trong RFC 2078
• The S/Key mechanism (SKEY)
Chương 2 8 Lê Tiến Cường – Nguyễn Minh Đức

Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
• The External (EXTERNAL) mechanism

4. Phân phối thư mục
Trong phân phối thư mục,các host khác nhau chứa các phần khác nhau của cây thư mục
Hình trên lớp people ou được lưu trong lớp riêng lẻ. Lý do để thực hiện phân phối thư mục:
a.Hiệu suất
Khi một phần của cây thư mục được sử dụng nhiều thì ta nên đặt phần này trên máy chủ của
chính nó, điều này cho phép client truy cập vào subtrees còn lại nhanh hơn.
b .Vị trí địa lý
Thường thì các client không truy cập vào một nhánh đặc biệt của thư mục trong một vị trí do ta
nên đặt phần này của thư mục gần hơn với các client yêu cầu sử dụng.
c.Ranh giới hành chính
Đôi khi dễ dàng hơn khi ủy quyền kiểm soát một nhánh thư mục bằng cách đặt các nhánh trên
một máy chủ điều khiển bởi nhóm chịu trách nhiệm cho các thông tin trong đó. Bằng cách này,
người điều khiển máy chủ có thể có quyền truy cập đầy đủ , sao chép và sao lưu mà không can
thiệp với một máy chủ công cộng.
Để chia cây thư mục giữa 2 server,ta phải cấu hình link giữa server chính và server giữ cây thư
mục people ou.Ta cần thiết lập superior knowledge reference link và subordinate knowledge
reference link
Subordinate( cấp dưới) knowledge link( hay reference) :kết nối 1 node trong cây thư mục đến
naming context của server khác.Thông thường naming context của server thứ 2 là sự tiếp tục của
thư mục.
Chương 2 9 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
Trong ví dụ trên, people ou trong cây thư mục chính không có thư mục con do query of entry
ou=people,dc=plainjoe,dc=org nằm trong server 2.Lúc này entry (lối vào)ou=people,dc=plainjoe,dc=org
trên server thư mục chính chứa thông tin tham khảo tới server thư mục thực sự chứa nó.

Hình ảnh thể hiện định nghĩa của lớp đối tượng referral trong RFC 3296
Lớp trên chỉ chứa 1 thuộc tính đó là ref.Thuộc tính này chứa file URI chỉ ra host chứa cây.Định
dạng của URI như sau:
ldap://[host:port]/[/dn[?attribute][?scope][?filter][?extensions]]
khi đó entry mới của people ou như sau :
# LDIF listing for the entry ou=people,dc=plainjoe,dc=org
dn: ou=people,dc=plainjoe,dc=org
objectClass: referral
ref: ldap://server2.plainjoe.org/ou=people,dc=plainjoe,dc=org
cấu hình superior knowledge reference :từ server 2 trở về thư mục chính ,hoạt động này phụ
thuộc vào vendor
Chương 2 10 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
CHƯƠNG 3. OPENLDAP
Chương này giới thiệu về OpenLDAP, một server phổ biến, mã nguồn mở theo tiêu chuẩn LDAPv3. Có
một số những sản phẩm thương mại khác tương tự, bao gồm Sun Microsystem's SunOne directory server,
Novell's eDirectory và Microsoft's Active Directory, mặc dù những Directory này không đơn thuần chỉ là
LDAP.
Vậy, tại sao chúng ta sử dụng OpenLDAP server thay vì một trong những sản phẩm khác ? Có khá nhiều
lí do khiến OpenLDAP trở nên thu hút:
• OpenLDAP là sản phẩm mã nguồn mở, mã nguồn của nó có thể được tải về từ
. Mã nguồn giúp cung cấp khá nhiều sự trợ giúp cho người sử dụng.
• OpenLDAP 2 được làm theo chuẩn LDAPv3.
• OpenLDAP có trên nhiều nền khác nhau, bao gồm Linux, Solaris, Mac OS 10.2, và Windows
(hầu hết các phiên bản).
• Dự án OpenLDAP là sự tiếp nối từ LDAP server của Đại học Michigan. Quan hệ giữa LDAP
server của Michi gan và các sản phẩm LDAP server hiện đại khác có thể được so sánh như là mối
quan hệ của trình duyệt Web hiện đại và NCSA code base.
Những ví dụ trong chương này giới thiệu OpenLDAP trên nền 1 Unix server, vì vậy, họ sử dụng những

dòng lênh chuẩn của Unix chẳng hạn như tar, gzip và make.
1. Openldap distribution :
Phiên bản mới nhất của OpenLDAP có thể tải về từ
OpenLDAP có hai phiên bản chính, bản 1.2 chỉ nâng cao và sửa một số bug nhỏ từ bản gốc LDAP server
của Đại học Michigan và chỉ hỗ trợ LDAPv2, còn bản OpenLDAP 2 là một sản phẩm hoàn thiện theo
chuẩn LDAPv3.
Có khá nhiều ưu điểm của LDAPv3 so với các phiên bản trước, chẳng hạn :
• Khả năng hỗ trợ refferal: LDAPv2 không có sự chuẩn bị về việc trả lại một refferal cho client.
Trong khi LDAP server của Đại học Michigan có thí nghiệm hỗ trợ cho việc thực thi referral,
khái niệm này vẫn chưa được chuẩn hóa cho khi LDAPv3 xuất hiện. Việc chuẩn hóa này tạo nên
khả năng tương tác giữa server và clients từ các sản phẩm LDAP server khác nhau, điều mà
LDAPv2 chưa làm được.
• Khả năng cung cấp server’s schema qua các hoạt động của LDAP, làm cho việc client học schema
của server trước khi thực hiện các tìm kiếm trở nên dễ dàng hơn. Các duy nhất để xác định
schema trong LDAPv2 là kiểm tra các file configuration của server. Cung cấp server’s schema
như là các mục trong directory cho phép những dịch vụ real-time cập nhật qua các hoạt động của
LDAP. (lưu rằng LDAPv3 không yêu cầu cập nhật động).
• Hỗ trợ sử dụng kí tự UTF-8 trong các chuỗi (RFC 2253) và language tags cho việc mô tả các
thuộc tính (RFC 2596).
• Cải thiện bảo mật và tính linh hoạt cho authentication credentials và data qua SASL và SSL/TLS,
trong khi LDAPv2 chỉ hỗ trợ simple binds hoặc Kerberos 4 cho authentication
• Hỗ trợ protocol extensions như là một cơ chế để tăng cường những hoạt động có sẵn hoặc tạo
những lệnh mới mà không cần phải sửa lại những LDAP protocol đã định nghĩa.
Chương 3 11 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
2. Software requirements
Những ví dụ trong sách này sử dụng phiên bản OpenLDAP version 2.1.8. Giống như các phần mềm khác,
software requirement thay đổi theo từng phiên bản, vì vậy, hãy kiểm tra kĩ thông tin của các bản đó trước
khi sử dụng.

OpenLDAP server sẽ cần một số gói phần mềm mở rộng như sau:
• Hỗ trợ cho POSIX threads, kể cả hệ điều hành hay thư viện ngoài
• Thư viện SSL/TLS (chẳng hạn OpenSSL package có ở )
• Một thư viện quản lí dữ liệu có hỗ trợ lữu trữ DBM type một cách dễ dàng. Có thể chọn Berkeley
DB 4.1 package từ Sleepycat Software ( />• Thư viện SASL phiên bản 2.1 từ Đại học Carnegie Mellon ( />library.html).
2.1 Threads
Nếu hệ điều hành server của bạn hỗ trợ threads, OpenLDAP 2 hoạt động hiệu quả hơn với thứ này. Sự
hỗ trợ này có ở hầy hết các hệ điều hành Linux, Solaris và nhiều hệ khác.
Nếu bạn gặp vấn đề với hỗ trợ POSIX thread, lựa chọn đầu tiên là kiểm tra lại các ghi chú về cài đặt
ứng với hệ điều hành của bạn trên web site OpenLDAP.org, hoặc bạn có thể vào
nơi có một danh sách những thư viện POSIX
thread cho hệ điều hành Unix. Có thể tắt hỗ trợ thread bằng lệnh –disble-threads trong configuration
script để compile. Tuy nhiên, replcation helper daemon (sẽ được nhắc đến trong chương 5) cần đến
thread support này.
2.2 Thư viện SSL/TLS
RFC 2246 mô tả TLS 1.0, tương ứng với SSL 3.0. Những họat động mở rộng của StartTLS định
nghĩa trong RFC 2830 cho phép LDAP clients và servers negotiate một TLS sesion tại bất kỳ điểm
nào trong một conversation (ngay cả khi đang authenticate client). Để bật việc hỗ trợ này, bạn cần
phải cài đặt phiên bản mới nhất của thư viện OpenSSL tại />Xây dựng và cài đặc OpenSSL khá đơn giản. Chỉ cần nhớ rằng, với bản 0.9.6, thư viện chia sẻ không
được xây dựng một cách mặc định. Để tạo các thư viện chia sẻ, trong build script của OpenSSL, mở
tùy chọn shared lên.
Tùy chọn –opensldir để định nghĩa thư mục cài đặt
$ ./configuration shared openssldir=/usr/local
Theo sau đó là phần bắt buộc để cài đặt thư viện phát triển và các công cụ ở /usr/local :
$ make
$ /bin/su -c "make install"
Chương 3 12 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
2.3 Database Backend Modules

Để xây dựng một OpenLDAP server độc lập, cần phải cung cấp một thư viện cho một vài loại
database manager (DBM). OpenLDAP hỗ trợ hai loại lưu trữ local DB. Loại thứ nhất là ldbm, có thể
sử dụng GNU Database manâger từ Free Software Foundation () hoặc BerkeleyDB
package từ Sleepyal Software(). Loại thứ 2 được giới thiệu ở OpenLDAP
2.1 gọi là bdb, được chỉnh sửa để sử dụng mỗi thư viện Berkeley DB 4 .
Tải thư viện Berkeley DB 4.1 từ Sau đó extract ra
một thư mục nào đó, ví dụ :
$ cd /usr/local/src/
$ gzip -dc {path-to-download-directory}/db-4.1.24.tar.gz | tar xvf –
Rồi cài đặt :
$ cd db-version/build_unix
$ /dist/configure prefix=/usr/local/
$ make
$ /bin/su -c "make install"
2.4 SASL Libraries
Cài đặt SASL chỉ cần một số bước quen thuộc :
$ gzip -dc cyrus-sasl-2.1.9.tar.gz | tar xf -
$ cd cyrus-sasl-2.1.9
$ ./configure
$ make
$ /bin/su -c "make install && \
ln -s /usr/local/lib/sasl2 /usr/lib/sasl2"
3. Compiling OpenLDAP 2:
Giải nén source file :
$ gzip -dc openldap-2.1.8.tar.gz | tar xvf –
Đến thư mục mới tạo ra, chạy ./configure script, chỉnh lại các tùy chọn mà bạn muốn mở hoặc tắt, ví dụ :
$ cd openldap-2.1.8/
$ ./configure enable-wrappers
Kiểm tra đầu ra của các lệnh này xem có đúng với các vị trí các DBM và các tùy chọn của bạn. Cài đặt
với các lệnh :

$ make depend
$ make
$ make test
$ /bin/su -c "make install"
Chương 3 13 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
4. OpenLDAP Clients and Servers :
OpenLDAP package chứa những thư viện client, server và development. Bảng 3.1 cho ta một cái nhìn
tổng quan về các tiện ích đi kèm với package.
Table 3-1. Installed components included with OpenLDAP
Name Description
libexec/slapd The LDAP server.
libexec/slurpd The LDAP replication helper.
bin/ldapadd
bin/ldapmodify
bin/ldapdelete
bin/ldapmodrdn
Command-line tools for adding, modifying, and deleting entries on an LDAP server.
These commands support both LDAPv2 and LDAPv3.
bin/ldapsearch
bin/ldapcompare
Command-line utilities for searching for an LDAP directory or testing a compare
operation on a specific attribute held by an entry.
bin/ldappasswd
A tool for changing the password attribute in LDAP entries. This tool is the LDAP
equivalent of / bin/passwd.
sbin/slapadd
sbin/slapcat
sbin/slapindex

Tools for manipulating the local backend data store used by the slapd daemon.
sbin/slappasswd A simple utility to generate password hashes suitable for use in slapd.conf.
lib/libldap*
lib/liblber*
include/ldap*.h
include/lber*.h
The OpenLDAP client SDK.
5. Slapd.conf Configuration file
File slapd.conf là nơi chứa các thông tin cấu hình chính cho một OpenLDAP server độc lập, replication
helper daemon slurpd, và các công cụ liên quan như slapcat và slapadd. Tương tự, OpenLDAP client tool
sửa dụng ldap.conf cho các tùy chỉnh mặc định.
File slapd.conf chia làm 2 phần chính. Phần đầu chứa các thông số ảnh hưởng tới hoạt động tổng thể cho
OpenLDAP server (ví dụ như : lượng thông tin gửi đến log file). Phần thứ hai là những thông số liên quan
tới các database backend sử dụng bởi slapd daemon. Chúng ta có thể định nghĩa những cài đặt mặc định
cho phần đầu trong slapd.conf. Tuy nhiên, trong phần thứ hai, các giá trị được chỉnh sẽ đè lên giá trị mặc
định.
Hai phần trong spld.conf :
# /usr/local/etc/openldap/slapd.conf

# Global section
Chương 3 14 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà

## Global parameters removed for brevity's sake, for now . . .

#######################################################
# Database #1 - Berkeley DB
database bdb


## Database parameters and directives would go here.

#######################################################
# Database #2 - Berkeley DB
database bdb

## Database parameters and directives would go here.

## And so on . . .
5.1 Schema files
Bước đầu tiên để configure LDAP server của bạn là quyết định xem nên chọn schema nào để
directory hỗ trợ.
OpenLDAP 2 chứa khá nhiều schema thông dụng, các định nghĩa attributeType và objectClass cần
thiết trong core.schema.
Mặc định, tập tin trên ở /usr/local/etc/openldap/schema/ sau khi cài đặt. Trong file config, thông số
include chỉ ra schema sẽ được sử dụng bởi server :
# /usr/local/etc/openldap/slapd.conf

# Global section

## Include the minimum schema required.
include /usr/local/etc/openldap/schema/core.schema

#######################################################
## Database sections omitted
Có rất nhiều loại schema trong mặc định của OpenLDAP 2.1 :
corba.schema
A schema for storing Corba objects in an LDAP directory, as described in RFC 2714.
core.schema
OpenLDAP's required core schema. This schema defines basic LDAPv3 attributes and objects

described in RFCs 2251-2256.
cosine.schema
A schema for supporting the COSINE and X.500 directory pilots. Based on RFC 1274.
inetorgperson.schema
Chương 3 15 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
The schema that defines the inetOrgPerson object class and its associated attributes defined in
RFC 2798. This object is frequently used to store contact information for people.
java.schema
A schema defined in RFC 2713 for storing a Java serialized object, a Java marshalled object, a
remote Java object, or a JDNI reference in an LDAP directory.
misc.schema
A schema that defines a small group of miscellaneous objects and attributes. Currently, this file
contains the schema necessary to implement LDAP-based mail routing in Sendmail 8.10+.
nis.schema
A schema that defines attributes and objects necessary for using LDAP with the Network
Information Service (NIS) as described in RFC 2307.
openldap.schema
Miscellaneous objects used by the OpenLDAP project. Provided for information purposes only.
5.2 Logging
Thông tin kế tiếp trong slapd.conf là slapd logs :
# /usr/local/etc/openldap/slapd.conf

# Global section

## Include the minimum schema required.
include /usr/local/etc/openldap/schema/core.schema

## Added logging parameters

loglevel 296
pidfile /usr/local/var/slapd.pid
argsfile /usr/local/var/slapd.args

#######################################################
## Database sections omitted
Thông số đầu tiên cần chú ý là loglevel, dùng để chỉ loại thông tin cần được ghi lại trong system
logs. Có thể coi loglevel như một chuỗi các bit flag có thể cộng với nhau.
Bảng dưới đây cho biết 1 số giá trị của loglevel và ý nghĩa của chúng :
Table 3-2. OpenLDAP logging levels
Level Information recorded
-1 All logging information
Chương 3 16 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
0 No Logging information
1 Trace function calls
2 Packet-handling debugging information
4 Heavy trace debugging
8 Connection management
16 Packets sent and received
32 Search filter processing
64 Configuration file processing
128 Access control list processing
256 Statistics for connection, operations, and results
512 Statistics for results returned to clients
1024 Communication with shell backends
2048 Print entry parsing debug information
Mọi thông tin debug sẽ được ghi lại nhờ LOG-LEVEL4 syslogs. Vì vậy, để hướng dẫn slapd ghi log vào
các file riêng biệt, thêm dòng sau đây vào /etc/syslog.conf và hướng dẫn syslogd daemon đọc lại cấu hình

của nó bằng cách gửi lại 1 kill-HUP signal
local4.debug /var/log/slapd.log
Hai thông số còn lại được đề cập trong phần này là :
pidfile filename
This parameter specifies the absolute location of a file that will contain the process ID of the
currently running master slapd process.
argsfile filename
This parameter specifies the absolute path to a file containing the command-line parameters used
by the currently running master slapd. This parameter is processed only if slapd is started without
the debug command-line argument.
5.3 SASL Option
slapd.conf có 3 tùy chọn global liên quan tới SASL là :
sasl-host hostname
sasl-realm string
sasl-secprops properties
Chương 3 17 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
sasl-host dùng để đánh giá domain name cho các host sử dụng SASL authentication. Với cơ chế
local authentication như DIGEST-MD5, đây sẽ là host và domain name của slapd server.
sasl-realm là SASL domain sử dụng cho authentication.
Thông số thứ 3, sasl-secprops, cho phép bạn xác định những điều kiện khác nhau ảnh hưởng tới
bảo mật của SASL. Bảng dưới đây sẽ cho biết các giá trị và ý nghĩa của chúng :
Table 3-3. sasl-secprops parameter values and descriptions
Flag Description
None Clears the default security properties (noplain, noanonymous).
noplain
Disables mechanisms vulnerable to passive attacks, such as viewing network packets to
examine passwords.
noactive Disables mechanisms vulnerable to active attacks.

nodict Disables mechanisms that are vulnerable to dictionary-based password attacks.
noanonymous Disables mechanisms that support anonymous login.
forwardsec Requires forward secrecy between sessions.
passcred Requires mechanisms that pass client credentials.
minssf=factor
Defines the minimum security strength enforced. Possible values include: 0 (no
protection), 1 (integrity protection only), 56 (allow DES encryption), 112 (allow 3DES
or other string encryption methods), and 128 (allow RC4, Blowfish, or other encryption
algorithms of this class).
maxssf=factor
Defines the maximum security strength setting. The possible values are identical to
those of minssf.
maxbufsize=size
Defines the maximum size of the security layer receive buffer. A value of 0 disables the
security layer. The default value is the maximum of INT_MAX (i.e., 65536).
Để hiểu thêm về sasl-secprops, bạn nên tìm hiểu về hoạt động của các plugin của sasl :
Table 3-4. SASL authentication mechanism security properties
SASL
mechanism
Security property
flags
maxssf
ANONYMOUS NOPLAIN 0
CRAM-MD5
NOPLAIN
NOANONYMOUS
0
DIGEST-MD5
NOPLAIN
NOANONYMOUS

128 if compiled with RC4; 112 if compiled with DES; 0 if
compiled with neither RC4 nor DES
Chương 3 18 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
GSSAPI
NOPLAIN
NOACTIVE
NOANONYMOUS
56
KERBEROS_V4
NOPLAIN
NOACTIVE
NOANONYMOUS
56
LOGIN NOANONYMOUS 0
PLAIN NOANONYMOUS 0
SCRAM-MD5 NONE 0
SRP NOPLAIN 0
Ví dụ :
Giả sử trong file slapd.conf của bạn có các dòng sau :
## No PLAIN or ANONYMOUS mechanisms; use DES encrpytion
sasl-secprops noplain,noanonymous,minssf=56
So sánh với các giá trị trong hai bảng trên, bạn sẽ thấy được server của bạn chỉ cho phép các cơ chế
sau : DIGEST-MD5, GSSAPI, KERBEROS_4 cho việc authentication
5.4 SSL/TLS Options
Tương tự SASL, slapd.conf có nhiều tùy chỉnh để cấu hình những thứ liên qua tới SSL và TLS, bao
gồm :
TLSCipherSuite cipher-suite-specification
TLSCertificateFile filename

TLSCertificateKeyFile filename
Thông số TLSCipherSuite cho phép bạn chỉ ra cipher nào sẽ được server chấp nhận, ngoài ra nó còn
chỉ ra thứ tự cho các ciphers. Dưới đây là tùy chỉnh thường thấy:
RC4:DES:EXPORT40
HIGH:MEDIUM
3DES:SHA1:+SSL2
Hai thông số còn lại cho slapd biết vị trí của server’s certificate và private key tương ứng.
5.4.1 Tạo server’s certificate
Chúng ta sẽ dùng CA.pl script để tạo các certificates. Để tạo mới 1 certificate, ta dùng lệnh –
newcert và trả lời các câu hỏi cần thiết.
Chương 3 19 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
$ /usr/local/misc/CA.pl -newcert
Enter PEM pass phrase:test
Verifying password - Enter PEM pass phrase:test

You are about to be asked to enter information that will be incorporated into your
certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.

Country Name (2 letter code) [GB]:US
State or Province Name (full name) [Berkshire]:Alabama
Locality Name (eg, city) [Newbury]:Somewhere
Organization Name (eg, company) [My Company Ltd]:PlaineJoe Dot Org
Organizational Unit Name (eg, section) [ ]:IT
Common Name (eg, your name or your server's hostname) [ ]:pogo.plainjoe.org

Email Address [ ]:
Certificate (and private key) is in newreq.pem
Lệnh trên sẽ tạo ra 1 file tên là newreq.pem chứa private key được bảo vệ bởi passworf và tự đăng
kí certificate. Đây là nội dung của newreq.pem
BEGIN RSA PRIVATE KEY
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,D8851189E7EA85CE

ImZpOfzqhNhNa6MRQBtYxjPbWmHw+3XxVAowO1FJyFQRQhuRDqrUia1IW7Tikb4d
rvjbv8T1+SN9vRGWBpz3nAERnS6uEnzPu201b9X413uXaF80TYYId7OUalG5mjqr
GG0oHaYwbmvAIRyhq3zhqCnBgscZ0l5DCXGTw0T1TeqaTfD8BpRE4ES+F0dlKjRf
yXuXmLrTg0C9ITokzRj4Xtu0nJfQ5LKouooeI43FHqFBFV4Jw5IIKOuAg/tkinez
VqVesaV707PLqdlYNAVx26z/nPwbbAT2JY4fqemBzjBJPDN6Tr/QncYgbMcG+H5/
7z7mBmOWq7nCpgFSwV1KgvtDIOjqZmGSpTLbZ/pY+JUT3iPsRAaL5XHDZDM6pF0l
R70ePd3Z5sUcg1TJlnuPYejyTi1OM/hoKrNnjM+4bTY8St14zAaMV15G/3GGJue0
jeJkBZba8UpQ539yPfuPINueJFG+QipDUnHWVHSWIGhqiKVZxPTZWCZrgHx7UbYw
fQVORGQ6ddu6vYNiODYXUnN3YtvD02OkbiGVl53OXlYv5hOydqdWRhA1hfR8SKAG
fnt1OV9yjC/0K2mj+nMNOu5kHMfA+Q6hw7mvWAsR/2ldX+/QTA8n1oRi7U4zySUL
iaAycSQl/yFHeHBhjOqFzKhvJU9Ux1A/lDzmFZ/vPGsSCvyv3GD1IzK1wvbUgxKE
3DzA1OuuUCl36HYTEgeFG2DqHPxzjhtqPyGgTG4xmB3dOndMys4VxeWB3Y+3vy3I
B6faH3/UKv1S6Fhj6xzxODjlLLt2zV0obi3F67QBXEvD08FCYtLIww= =
END RSA PRIVATE KEY
BEGIN CERTIFICATE
MIIDsDCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBnTELMAkGA1UEBhMCVV
Mx
EDAOBgNVBAgTB0FsYWJhbWExEjAQBgNVBAcTCVNvbWV3aGVyZTEaMBgGA1UECh
MR
UGxhaW5lSm9lIERvdCBPcmcxCzAJBgNVBAsTAklUMRwwGgYDVQQDExNnYXJpb24u
cGxhaW5qb2Uub3JnMSEwHwYJKoZIhvcNAQkBFhJqZXJyeUBwbGFpbmpvZS5vcmcw
HhcNMDIxMTE2MjI0MzA5WhcNMDMxMTE2MjI0MzA5WjCBnTELMAkGA1UEBhMCVV

Mx
Chương 3 20 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
EDAOBgNVBAgTB0FsYWJhbWExEjAQBgNVBAcTCVNvbWV3aGVyZTEaMBgGA1UECh
MR
UGxhaW5lSm9lIERvdCBPcmcxCzAJBgNVBAsTAklUMRwwGgYDVQQDExNnYXJpb24u
cGxhaW5qb2Uub3JnMSEwHwYJKoZIhvcNAQkBFhJqZXJyeUBwbGFpbmpvZS5vcmcw
gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALV0pZLKCwqioakJtgKr0+DScZ9h
C/nLcOxw9t6RUHlWSD9aGC9rMaMGrxG5YqI+dEuhbGWhnVo37IsMlHC+oJsXwY/2
r/RQT5dk1jyC4qt+2r4mGGC/QbCX0GRjT0gn3obB570XZ19qBCfYwIXOtYncIX0P
0fUwFVRG5frBL5QDAgMBAAGjgf0wgfowHQYDVR0OBBYEFPVRTbSjVJ4v4pOb0N0k
oJk8YZIGMIHKBgNVHSMEgcIwgb+AFPVRTbSjVJ4v4pOb0N0koJk8YZIGoYGjpIGg
MIGdMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHQWxhYmFtYTESMBAGA1UEBxM
JU29t
ZXdoZXJlMRowGAYDVQQKExFQbGFpbmVKb2UgRG90IE9yZzELMAkGA1UECxMCSVQ
x
HDAaBgNVBAMTE2dhcmlvbi5wbGFpbmpvZS5vcmcxITAfBgkqhkiG9w0BCQEWEmpl
cnJ5QHBsYWluam9lLm9yZ4IBADAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBAU
A
A4GBAIM+ySiITRXb/d1qcO/XUQSKdU3IXqPgS8jY3U12Bll/kCZFcZxjksg6xBib
91Y/bonSEisJG74zn/0ts3sjsr3QKZp5xFcYCyK3IYjaqnFeAOh+eUp54vLpmQZX
e4QaeTkg/8MnS3vFvWoxfo4Z1Zu/wWhp9WMRRwIVAR99Ppps
END CERTIFICATE
Lưu lại key vào file mới newkey.pem
$ openssl rsa -in newreq.pem -out newkey.pem
read RSA key
Enter PEM pass phrase:test
writing RSA key
Đổi tên file newkey.pem lại tùy theo lựa chọn của bạn, như slapd-key.pem chẳng hạn.

Cuối cùng, sử dụng text editor, xóa private key cũ trong newreq.pem, đổi tên lại (chẳng hạn:
slapd-cert.pem). Bây giờ ta đã có 2 file :
slapd-key.pem
LDAP server's private key
slapd-cert.pem
LDAP server's public certificate
Dưới đây là các thông số TLS configuration :
# /usr/local/etc/openldap/slapd.conf

# Global section

## Include the minimum schema required.
include /usr/local/etc/openldap/schema/core.schema

## Added logging parameters
loglevel 296
pidfile /usr/local/var/slapd.pid
Chương 3 21 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
argsfile /usr/local/var/slapd.args

## TLS options for slapd
TLSCipherSuite HIGH
TLSCertificateFile /etc/local/slapd-cert.pem
TLSCertificateKeyFile /etc/local/slapd-key.pem

#######################################################
## Database sections omitted
5.5 Các thông số liên quan tới bảo mật khác :

Ngoài các thông số trên, còn 5 tùy chỉnh khác liên quan tới bảo mật :
security
require
allow
disallow
password-hash
Thông số security chỉ ra hệ số cường độ bảo vệ. Bảng dưới đây cho các tùy chỉnh và giá trị cho
thông số trên :
Table 3-5. Possible values for the slapd.conf security parameter
Value Description
sasl Defines the SASL security strength factor.
ssf Defines the overall security strength factor.
tls Defines the security strength factor to the SSL/TLS security layer.
transport
Defines the security strength provided by the underlying transport layer. Eventually, this
option will be used to choose between multiple secure transport layer protocols, such as
TLS and IPSEC.
update_sasl
update_ssf
update_tls
update_transport
Define the security strength of the various layers when performing update operations on
the directory.
Các hệ số lấy giá trị sử dụng cho minssf và maxssf trong bảng 3.3
Tham số require phân biệt với tham số security bởi việc cho phép administrator định nghĩa nhữn
điều kiện để cung cấp quyền truy cập vào directory.
Chương 3 22 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
Table 3-6. Values for the require parameter

Value Description
none Clears all requirements.
authc Requires client authentication prior to directory access (i.e., no anonymous access).
bind
Requires the client to issue a bind request, possibly an anonymous bind, prior to directory
operations.
LDAPv3
Requires the client to use Version 3 of the LDAP protocol for directory access. By default,
OpenLDAP supports both LDAPv2 and v3 clients.
SASL
strong
Require the client to use strong (SASL) authentication in order to be granted access to the
directory. Currently, these two options are identical.
Tham số allow cung cấp một cách thức khác để mở hoặc tắt những tính năng nhất định. Hiện tại,
allow chỉ hỗ trợ hai tùy chỉnh :
none
This is the default setting.
tls_2_anon
Allows TLS to force the current session to anonymous status.
Tham số disallow cho nhiều tùy chỉnh hơn :
bind_v2
Disables LDAPv2 bind requests
bind_anon
Disables anonymous binds
bind_anon_cred
Disables anonymous credentials when the DN is empty
bind_anon_dn
Disables anonymous binds when the DN is nonempty
bind_simple
Disables simple binds

Chương 3 23 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
bind_krbv4
Disables Kerberos 4 bind requests
tls_authc
Disables StartTLS if the client is authenticated
Cuối cùng, tham số password-hash xác định default password encrytion cheme để lưu lại các giá
trị trong thuộc tính userPassword. Mặc định scheme là {SSHA}, các scheme khác :
{SHA}
{SMD5}
{MD5}
{CRYPT}
{CLEARTEXT}
Sau khi chỉnh các tham số trên, ta có file slapd.conf như sau :
# /usr/local/etc/openldap/slapd.conf

# Global section

## Include the minimum schema required.
include /usr/local/etc/openldap/schema/core.schema

## Added logging parameters
loglevel 296
pidfile /usr/local/var/slapd.pid
argsfile /usr/local/var/slapd.args

## TLS options for slapd
TLSCipherSuite HIGH
TLSCertificateFile /etc/local/slapd-cert.pem

TLSCertificateKeyFile /etc/local/slapd-key.pem

## Misc security settings
password-hash {SSHA}

#######################################################
## Database sections omitted
5.6 Serving up data :
Tham số database :
bdb
Chương 3 24 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng
Giao thức LDAP GVHD: TS. Lưu Thanh Trà
This backend has been specifically written to take advantage of the Berkley DB 4 database
manager. This backend makes extensive use of indexing and caching to speed up performance; it
is the recommended backend used on an OpenLDAP server.
ldbm
An ldbm database is implemented via either the GNU Database Manager or the Sleepycat
Berkeley DB software package. This backend is the older implementation of the bdb backend.
The details of this backend are described in the slapd-ldbm(5) manpage.
passwd
The passwd backend is a quick and dirty means of providing a directory interface to the system
passwd(5) file. It has only one configuration parameter: the file directive, which defines the
location of the password file (if different from /etc/passwd) used to respond to directory queries.
The details of this backend are described in the slapd-passwd(5) manpage.
shell
The shell backend directive allows the use of alternative (and external) databases. This directive
lets you specify external programs that are called for each of the LDAPv3 core operations. The
details of this backend are described in the slapd-shell(5) manpage.
Tham số tiếp theo là suffix :

## Define the beginning of example database.
database bdb

## Define the root suffix you serve.
suffix "dc=plainjoe,dc=org"
Ngoài ra còn có rootdn. Mỗi LDAP directory đều có thể có một root DN, tương tự với superuser
account trên Unix. Root DN luôn cần 1 password tương ứng với root password (rootpw).
## Define a root DN for superuser privileges.
rootdn "cn=Manager,dc=plainjoe,dc=org"

## Define the password used with rootdn. This is a salted secure hash of the phrase
## "secret."
rootpw {SSHA}2aksIaicAvwc+DhCrXUFlhgWsbBJPLxy
6. Access control lists (ACLs)
Directory ACLs cung cấp bởi OpenLDAP khá đơn giản trong cú pháp nhưng lại cực kỳ linh hoạt và mạnh
mẽ trong thực thi. Ý tưởng cơ bản là xác định Who has Access to What ? “Who” bao gồm :
*
Tất cả các user
Chương 3 25 Lê Tiến Cường – Nguyễn Minh Đức
Lê Thạch Giang- Hoàng Ngọc Hưng

×