Đề tài Quản lý xác thực tập trung với dịch vụ Ldap Linux

Tập trung quản lý người dùng: Toàn bộ người dùng sẽ được quản lý tại một hệ dữ liệu thống nhất. Các thao tác từ cấp phát, loại bỏ, phân quy ền đến sao lưu dự phòng, khôi phục dữ liệu sẽ chỉ thực hiện tại một hệ dữ liệu này. Tiện lợi cho người sử dụng: Người dùng không cần phải nhớ quá nhiều tên đăng nhập và mật khẩu khi sử dụng hệ thống. Tiết kiệm chi phí đầu tư: Các ứng dụng sẽ không cần phải quan tâm đến việc cấp phát và quản lý người dùng.

pdf121 trang | Chia sẻ: lylyngoc | Lượt xem: 4465 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Quản lý xác thực tập trung với dịch vụ Ldap Linux, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ợc viết bởi Wietse Venema khi ông đang làm việc ở trung tâm nghiên cứu T. J. Watson của IBM. Đặc điểm của Postfix: TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 81/176 dễ quản lý, nhanh, an toàn. Chỉ cần một server với hardware thông thường, Postfix có thể chuyển giao hàng triệu email một ngày. Ngày nay postfix là một trong nhưng MTA khá phổ biến trên các mail server. File cấu hình: /etc/postfix/main.cf Khi cấu hình Mail Server với postfix, ta cần quan tâm đến một vài tham số quan trong sau: myhostname: Tên Mail Server mydomain: Tên Domain (ví dụ: thanhlong.com) myorigin: Tên tổ chức (có thể lấy từ biến mydomain, ví dụ = $mydomain). inet_interfaces: Chỉ định Interfaces mydestination: Chỉ định destination mynetworks: Chỉ định network. Cấu hình POP và IMAP Server: Cài đặt gói dovecot-1.0.7-7.el5.i386.rpm từ CDROM , sau đó ta mở file cấu hình /etc/dovecot.conf để thay đổi các thông số sau: protocols = imap imaps pop3 pop3s ;chỉ định các protocol sử dụng imap_listen = * ;chỉ định trạng thái listen trên card mạng cho IMAP pop3_listen = * ;chỉ định trạng thái listen trên card mạng cho POP3 Sau đó thực thi lệnh: # chkconfig dovecot on # service dovecot restar 6. Phần mềm webmail: Cài đặt gói: php-mbstring-5.1.6-23.2.el5_3.i386.rpm. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 82/176 squirrelmail-1.4.8-5.el5.centos.7.noarch.rpm. Cấu hình: file /etc/squirrelmail/config.php $domain = ‘thanhlong.com’; Sau đó thực hiện lệnh: # chkconfig httpd on # service httpd start Mở trình duyệt nhập vào: VI. Dịch vụ Samba: 1. Giới thiệu: Samba là chương trình tiện ích hỗ trợ việc chia sẻ tài nguyên cho những máy khác như Linux, Windows. Phần mềm Samba gồm nhiều thành phần. Daemon mang tên smbd cung cấp dịch vụ in ấn và tập tin. Tập tin cấu hình của Daemon này là smb.conf, còn daemon nmbd thì hỗ trợ dịch vụ tên NETBIOS. 2. Cài đặt: Chúng ta có thể cài đặt Samba trong quá trình cài CentOS hoặc cài sau bằng tiện ích RPM. Các tập tin cài đặt bao gồm: Samba-3.0.33-3.14.el5.i386.rpm Samba-client-3.0.33-3.14.el5.i386.rpm Samba-common-3.0.33-3.14.el5.i386.rpm System-config-samba Samba-swat TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 83/176 Khởi tạo dịch vụ: Khởi tạo dịch vụ tại thời điểm hệ thống khởi động # chkconfig smb on Khởi tạo dịch vụ thông qua lệnh # service smb start|stop|restart Kiểm tra hoạt động của dịch vụ Samba # pgrep smb Cấu hình samba: /etc/samba/smb.conf: là tập tin cấu hình chính của Samba. Tập tin này có nhiều phần, mỗi phần bắt đầu bằng dấu […] và tiếp tục đến bắt đầu của phần mới. Cú pháp của mỗi dòng: Paramater = value. Các thành phần trong tập tin cấu hình chính Thành phần Giải thích [global] Chứa các tham số cấu hình chung của Samba server [printers] Chứa các tham số sử dụng cho việc cấu hình máy in. [home] Chỉ định SMB chia sẻ thư mục home directory của user. [netlogon] Chia sẻ logon script. [profile] Chia sẻ profile Đoạn [global] workgroup = MYGROUP; chỉ ra nhóm mà máy sẽ tham gia. server string = Samba Server; chỉ tên dịch vụ hosts allow = 172.31.0.1 173.31.0.3; chỉ định các địa chỉ được phép truy cập đến samba server. guest account = pcguest; cung cấp username cho 1 account khách trên server. Account này nhận diện những user được dùng dịch vụ samba dành cho khách. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 84/176 log file = /var/log/samba/smb.%m; xác định vị trí tập tin log của từng client truy cập samba. max log size = 50; kích thước tối đa của tập tin log (KB). encrypt password = yes; mã hóa mật khẩu. smb passwd file = /etc/samba/smbpasswd; tập tin lưu trữ những user được phép truy cập đến server smb. Đoạn [homes] comment = Home Directory; chỉ định dòng chú thích. path = %H; chỉ định thư mục gốc cho user. read only = no; chỉ được quyền đọc trong thư mục path. valid users = %S; chỉ định tên user được phép truy xuất. Nếu ta cho phép group ta dùng cú pháp @group_name hoặc + group_name browseable = no; hiển thị trên danh sách duyệt mạng. writeable = yes; chỉ định quyền ghi. create mask = 0750; kiểm tra xem trong số những tập tin tạo ra trong thư mục chia sẻ, thì tập tin nào được phép làm gì. Đoạn [printers] comment = All Printer path = /var/spool/samba browseable = no public = yes guest ok = no writable = no printable = yes ; cho phép in. create mask = 0700 Chia sẻ thư mục [dirshare] [soft] comment = “chia sẻ thư mục” path = /usr/local/share TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 85/176 valid users = tuandq browseable = yes public = no writable = yes Đoạn trên đã tạo ra một thư mục chia sẻ mang tên soft, ánh xạ đến thư mục /usr/local/share. Samba SWAT: Samba SWAT là công cụ cho phép cấu hình Samba qua giao diện Web. Tập tin cấu hình Samba SWAT: Thiết lập một số thông số trong tập tin /etc/xinetd.d/swat service swat { disable = no port = 901 socket_type = stream wait = no only_from = 172.31.0.0/24 user = root server = /usr/sbin/swat log_on_failure += USERID } Truy xuất SWAT từ Internet Explorer: - Từ trình duyệt Web, truy xuất SMB SWAT thông qua địa chỉ http://<IP- Samba-Server>: - Ví dụ: TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 86/176 Hình 27: Truy xuất samba swat Hình 28: Đăng nhập samba thành công Cấu hình samba swat: Thành phần Giải thích TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 87/176 Sử dụng samba client: Từ dấu nhắc lệnh, sử dụng smbclient để truy xuất thư mục chia sẻ trên SMB Server theo cú pháp sau: $smbclient Ví dụ: #smbclient //samba-svr/data -U tuandq Password: smb: \> Từ dấu nhắc smb: \>, có thể ra bất kỳ lệnh nào để truy xuất tài nguyên. Mount tài nguyên: Ta có thể ánh xạ một thư mục chia sẻ trên Samba Server vào ổ đĩa cục thông qua lệnh smbmount. Cú pháp : #mount –t smbfs -o username=,password= Cung cấp các tài liệu tham khảo về Samba. Quản lý thông tin cấu hình. Quản lý tài nguyên chia sẻ. Quản lý việc chia sẻ máy in. Quản lý Server Type, Wins và các tham số khác. Quản lý trạng thái SAMBA, theo dõi connection. Xem các thông tin cấu hình trong file smb.conf Quản lý mật khẩu. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 88/176 Ví dụ : #mount –t smbfs //smb_server/data /mnt/smb -o username=tuandq,password=123456 Mount tự động: Để tự động mount một tài nguyên chia sẻ ta thực hiện các bước sau: Bước 1: tạo thư mục mount_point (Ví dụ: /mnt/smb) Bước 2: mô tả dòng lệnh trong tập tin /etc/fstab //SMB_Server/ShareName /mnt/smb smbfs credential=/etc/cred 0 0 Bước 3: tạo tập tin /etc/cred để lưu thông tin username và mật khẩu usermane = password = Bước 4: dùng lệnh mount –a để update tập tin /etc/fstab và kiểm tra. Mã hóa mật khẩu: Tạo ra mật khẩu của người dùng riêng cho samba server quản lý. Các bước tạo mật khẩu Bước 1: Tạo một tập tin mật khẩu riêng cho Samba #cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd Bước 2: Cấp quyền đọc ghi cho root và cấp mật khẩu cho user #chmod 600 /etc/samba/smbpasswd #smbpasswd Bước 3: Chỉnh tập tin smb.conf encrypt passwd = yes smb passwd file = /etc/samba/smbpasswd Bước 4: Khởi động lại samba server #/etc/init.d/smb restar TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 89/176 CHƯƠNG IV: CƠ SỞ LÝ THUYẾT LDAP I. Giới thiệu về LDAP: 1. Khái niệm cơ bản: Thư mục (Directory): là nơi dùng để chứa và cho phép thực hiện các thao tác truy xuất thông tin. Nghi thức truy cập thư mục (LDAP): LDAP (Lightweight Directory Access Protocol) là một chuẩn mở rộng cho nghi thức truy cập thư mục, hay là một ngôn ngữ để LDAP client và severs sử dụng để giao tiếp với nhau. LDAP là một nghi thức “lightweight ” có nghĩa là đây là một giao thức có tính hiệu quả, đơn giản và dể dàng để cài đặt. trong khi chúng sử dụng các hàm ở mức cao. Điều này trái ngược với nghi thức “heavyweight” như là nghi thức truy cập thư mục X.500 (DAP). Nghi thức này sử dụng các phương thức mã hoá quá phức tạp. LDAP sử dụng các tập các phương thức đơn giản và là một nghi thức thuộc tầng ứng dụng. LDAP đã phát triển với phiên bản LDAP v2 được định nghĩa trong chuẩn RFC 1777 và 1778, LDAP v3 là một phần trong chuẩn Internet, được định nghĩa trong RFC 2251 cho đến RFC 2256, do chúng quá mới nên không phải tất cả mọi thứ các nhà cung cấp hổ trợ hoàn toàn cho LDAP v3. Ngoài vai trò như là một thủ tục mạng, LDAP còn định nghĩa ra bốn mô hình, các mô hình này cho phép linh động trong việc sắp đặt các thư mục: Mô hình LDAP information - định nghĩa ra các loại dữ liệu mà bạn cần đặt vào thư mục. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 90/176 Mô hình LDAP Naming - định nghĩa ra cách bạn sắp xếp và tham chiếu đến thư mục. Mô hình LDAP Functional - định nghĩa cách mà bạn truy cập và cập nhật thông tin trong thư mục của bạn. Mô hình LDAP Security - định nghĩa ra cách thông tin trong trong thư mục của bạn được bảo vệ tránh các truy cập không được phép. Ngoài các mô hình ra LDAP còn định nghĩa ra khuôn dạng để trao đổi dữ liệu LDIF (LDAP Data Interchange Format), ở dạng thức văn bản dùng để mô tả thông tin về thư mục. LDIF còn có thể mô tả một tập hợp các thư mục hay các cập nhật có thể được áp dụng trên thư mục. II. Phương thức hoạt động của LDAP: 1. Một nghi thức client/sever: Là một mô hình giao thức giữa một chương trình client chạy trên một máy tính gởi một yêu cầu qua mạng đến cho một máy tính khác đang chạy một chương trình sever (phục vụ), chương trình này nhận lấy yêu cầu và thực hiện sau đó nó trả lại kết quả cho chương trình client. Ví dụ những nghi thức client/server khác là nghi thức truyền siêu văn bản (Hypertext transfer protocol ) viết tắt là HTTP, nghi thức này có những ứng dụng rộng rãi phục vụ những trang web và nghi thức Internet Message Access Protocol (IMAP), là một nghi thức sử dụng để truy cập đến các thư thông báo điện tử. Ý tưởng cơ bản của nghi thức client/server là công việc được gán cho những máy tính đã được tối ưu hoá để làm thực hiện công việc đó. Ví dụ tiêu biểu cho một máy server LDAP có rất nhiều RAM(bô nhớ) dùng để lưu trữ nội dung các thư mục cho các thao tác thực thi nhanh và máy này cũng cần đĩa cứng và các bộ vi sử lý ở tốc độ cao. 2. LDAP Là một nghi thức hướng thông điệp: TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 91/176 Do client và sever giao tiếp thông qua các thông điệp, Client tạo một thông điệp (LDAP message) chứa yêu cầu và gởi nó đến cho server. Server nhận được thông điệp và sử lý yêu cầu của client sau đó gởi trả cho client cũng bằng một thông điệp LDAP. Ví dụ: khi LDAP client muốn tìm kiếm trên thư mục, client tạo LDAP tìm kiếm và gởi thông điệp cho server. Sever tìm trong cơ sở dữ liệu và gởi kết quả cho client trong một thông điệp LDAP. Hình 29: Thao tác tìm kiếm cơ bản Nếu client tìm kiếm thư mục và nhiều kết quả được tìm thấy, thì các kết quả này được gởi đến client bằng nhiều thông điệp. Hình 30: Những thông điệp Client gửi cho Server Do nghi thức LDAP là nghi thức thông điệp nên, client được phép phát ra nhiều thông điệp yêu cầu đồng thời cùng một lúc. Trong LDAP, message ID dùng để phân biệt các yêu cầu của client và kết quả trả về của server. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 92/176 Hình 31: Nhiều kết quả tìm kiếm được trả về Việc cho phép nhiều thông điệp cùng xử lý đồng thời làm cho LDAP linh động hơn các nghi thức khác ví dụ như HTTP, với mỗi yêu cầu từ client phải được trả lời trước khi một yêu cầu khác được gởi đi, một HTTP client program như là Web browser muốn tải xuống cùng lúc nhiều file thì Web browser phải thực hiện mở từng kết nối cho từng file, LDAP thực hiện theo cách hoàn toàn khác, quản lý tất cả thao tác trên một kết nối. 3. Các thao tác của nghi thức LDAP: LDAP có 9 thao tác cơ bản, chia thành 3 nhóm thao tác chính: Thao tác thẩm tra (interrogation) : search, compare. Hai thao tác này cho phép chúng ta thực hiện thẩm tra trên thư mục. Thao tác cập nhật (update): add, delete, modify, modify DN ( rename ). Những thao tác này cho phép chúng ta thực hiện cập nhật thông tin trên thư mục. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 93/176 Thao tác xác thực và điều kiển(authentiaction and control) : bind, unbind, abandon. Thao tác bind cho phép client tự xác định được mình với thư mục, thao tác này cung cấp sự xác nhận và xác thực chứng thư; unbind cho phép client huỷ bỏ phân đoạn làm việc hiện hành; và cuối cùng là thao tác abandon cho phép client chỉ ra các thao tác mà kết quả client không còn quan tâm đến nữa. 4. Các thao tác mở rộng: Ngoài 9 thao tác cơ bản. LDAP version 3 được thiết kế mở rộng thông qua 3 thao tác. Thao tác mở rộng LDAP(LDAP extended operations) – đây là một nghi thức thao tác mới. Trong tương lai nếu cần một thao tác mới, thì thao tác này có thể định nghĩa và trở thành chuẩn mà không yêu cầu ta phải xây dựng lại các thành phần cốt lõi của LDAP. Ví dụ một thao tác mở rộng là StarTLS, nghĩa là báo cho sever rằng client muốn sử dụng transport layer security(TLS) để mã hoá và tuỳ chọn cách xác thực khi kết nối. LDAP control - Những phần của thông tin kèm theo cùng với các thao tác LDAP, thay đổi hành vi của thao tác trên cùng một đối tượng. Xác thực đơn giản và tầng bảo mật (Simple Authentication and Security Layer SASL) là một mô hình hổ trợ cho nhiều phương thức xác thực. Bằng cách sử dụng mô hình SASL để thực hiện chứng thực. LDAP có thể dễ dàng thích nghi với các phương thức xác thực mới khác, SASL còn hổ trợ một mô hình cho client và server có thể đàm phán trên hệ thống bảo mật diển ra ở các tầng thấp(dẫn đến độ an toàn cao). Mặt dù như vậy nhưng các mô hình này của SASL đều thích nghi với các nghi thức của internet. 5. Mô hình kết nối Client – Server: Sau đây là một là một tiến trình hoạt động trao đổi giữa LDAP client/server: TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 94/176 Hình 32: Mô hình kết nối giữa client và server LDAP client và server thực hiện theo các bước sau: Client mở một kết nối TCP đến LDAP server và thực hiện một thao tác bind. Thao tác bind bao gồm tên của một directory entry ,và uỷ nhiệm thư sẽ được sử dụng trong quá trình xác thực, uỷ nhiệm thư thông thường là pasword nhưng cũng có thể là chứng chỉ điện tử dùng để xác thực client. Sau khi thư mục có được sự xác định của thao tác bind, kết quả của hao tác bind được trả về cho client. Client phát ra các yêu cầu tìm kiếm. Server thực hiện sử lý và trả về kết quả cho client. Server thực hiện sử lý và trả về kết quả cho client. Server gởi thông điệp kết thúc việc tìm kiếm. Client phát ra yêu cầu unbind, với yêu cầu này server biết rằng client muốn huỷ bỏ kết nối. Server đóng kết nối. III. Các mô hình LDAP: LDAP định nghĩa ra 4 mô hình gồm có LDAP informmation, LDAP Naming, LDAP Functional, LDAP Security. 1. LDAP Information Model: TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 95/176 Mô hình LDAP Information định nghĩa ra các kiểu của dữ liệu và các thành phần cơ bản của thông tin mà bạn có thể chứa trong thư mục. Hay chúng ta có thể nói rằng LDAP Information mô tả cách xây dựng ra các khối dữ liệu mà chúng ta có thể sử dụng để tạo ra thư mục. Thành phần cơ bản của thông tin trong một thư mục gọi là entry đây là một tập hợp chứa các thông tin về đối tượng (Object). Thường thì các thông tin trong một entry mô tả một đối tượng thật như là thông tin về người, nhưng đây không phải là qui định bắt buộc với mô hình. Ví dụ như trên thư mục dưới đây. Hình 33: Cây thư mục với các entry là các thành phần cơ bản TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 96/176 Một entry là tập hợp của các thuộc tính, từng thuộc tính này mô tả một nét đặt trưng tiêu biểu của một đối tượng. Mỗi thuộc tính có kiểu một hay nhiều giá trị, kiểu của thuộc tính mô tả loại thông tin được chứa, giá trị là dữ liệu thực sự. Ví dụ một entry mô tả một người với các thuộc tính: tên họ, tên, số điện thoại, và địa chỉ email. Atrribute type Atrribute values cn : Barbara jensen Bads jensen sn : jensen telephone number : +1 408 555 1212 mail : bads@arius.com LDAP Data Interchange Format (LDIF): LDAP định nghĩa ra LDIF là dạng văn bản để mô tả thông tin thư mục. LDIF có thể mô tả một tập hợp các entry thư mục hay là tập hợp các cập nhật lên thư mục dữ liệu của các thư mục có thể trao đổi cho nhau bằng cách dùng LDIF Ví dụ thông tin thư mục ở dạng văn bản LDIF, đây là dạng chuẩn dành cho việc nhập và xuất thông tin trên thư mục, và các tập tin LDIF đều ở dạng ASCII điều này làm cho chúng dễ dàng chuyền tải trên hệ thống email. Một entry thư mục ở dang LDIF: dn:uid=bjensen,dc=airius,dc=com objectClass: top objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson cn: Barbara Jensen cn: Babs Jensen sn: Jensen mail:bjensen@airius.com telephoneNumber:+14085551212 description: A big sailing fan. Dạng một entry LDIF bao gồm nhiều dòng, đầu tiên là distinguished name (dn) là tên của entry thư mục tất cả được viết trên một dòng, sau đó lần lượt là các TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 97/176 thuộc tính của entry, mỗi thuộc tính trên một dòng theo thứ tự là: kiểu thuộc tính : giá trị thuộc tính. Thứ tự các thuộc tính không quan trọng tuy nhiên để dễ đọc được thông tin chúng ta nên đặt các giá trị objectclass trước tiên và nên làm sao cho các giá trị của các thuộc tính cùng kiểu ở gần nhau. KiểuThuộc tính dữ liệu qui định, mô tả dữ liệu được đặt vào và cách thư mục so sánh giá trị khi dò tìm. Ví dụ như cú pháp caseIgnoreString: qui định trong trong một ngữ cảnh nào đó thì chúng ta xem như nhau và không cần thực hiện so sánh như là Tom và tom như nhau không phân biệt chữ hoa và thườngcaseExactString : trái ngược lại với cú pháp trên phân biệt rõ ràng chữ hoa và chữ thường do đó Tom và tom là không tương đương nhau. LDAP sever không hổ trợ các kiểu dữ liệu trù tượng chỉ hổ trợ duy nhất cho các kiểu chuẩn. Không như những nghi thức khác chẳng hạn là X.500 ngoài một số liểu dữ liệu chuẩn (chuỗi, số, kiểu bool) và một số kiểu dữ liệu phức tạp xây dựng từ các kiểu dữ liệu trên. Tuy nhiên những giao diện plug-in cho phép định nghĩa các cú pháp mới. Các thuộc tính cũng phân thành 2 loại: thuộc tính người dùng, thuộc tính thao tác Thuộc tính người dùng (user attributes) là các thuộc tính bình thường của một entry thư mục, các thuộc tính này có thể được điều chỉnh bởi user của thư mục(tất nhiên là các thao tác sữa chữa được phép). Thuộc tính thao tác (operational attributes) đây là các thuộc tính đặc biệt và chỉ có thể được điều chỉnh bởi directory server hay là các thuộc tính cho biết trạng thái của thư mục, ví dụ một thuộc tính thao tác là một thuộc tính modifytimestamp, những thuộc tính này được bảo trì bởi thư mục và nó cho biết thời điểm cuối cùng mà entry này được cập nhật. Khi entry được gởi đến cho client, các operational attributes sẽ không được gởi đi cùng trừ khi client yêu cầu. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 98/176 Có một số ràng buộc trên giá trị của thuộc tính. Một số server software cho phép nhà quản trị khai báo rằng một thuộc tính có thể giữ một hay nhiều giá trị. Ví dụ như thuộc tính givenName có thể chứa nhiều giá trị, khi một người muốn thêm vào nhiều tên (ví dụ như là Jim và James chẳng hạn) và cũng có một số thuộc tính chỉ chứa duy nhất một giá trị. những nhà quản trị hệ thống đặt ra phạm vi giới hạn của dữ liệu để ngăn chặn các user sử dụng vượt qua giới hạn cho phép. Bảo trì các hệ thống thư mục: Bất kì một entry trong thư mục có tập các kiểu thuộc tính đây là các kiểu được yêu cầu và được cho phép, ví dụ như một entry mô tả một người thì thuộc tính yêu cầu cho entry đó là phải có cn(common name) và sn(surname). Một số thuộc tính cho phép nhưng phải là cần thiết cho entry mô tả một người, các thuộc tính khác không được yêu cầu hay không được phép sẽ không có mặt trong entry. Những tập hợp các tập thuộc tính yêu cầu và thuộc tính được phép được gọi là mô hình thư mục(directory schemas). Directory schemas có thể được thiết kế cho phép chúng ta có quyền điều kiển và bảo trì các thông tin chứa trong entry. Chúng ta đã có một khối thông tin cơ bản đó là entry, nhưng làm sao để có thể sắp xếp xây dựng một cây thông tin thư mục (directory information tree) DIT. Chúng ta sẽ nghiên cứu các qui tắc xây dựng trong phần LDAP Naming Model. 2. LDAP Naming Model: Mô hình LDAP Naming định nghĩa ra cách để chúng ta có thể sắp xếp và tham chiếu đến dữ liệu của mình. Hay chúng ta có thể nói rằng mô hình này mô tả cách sắp xếp các entry của chúng vào một cấu trúc có logical, và mô hình LDAP Naming chỉ ra cách để chúng ta có thể tham chiếu đến bất kỳ một entry thư mục nào nằm trong cấu trúc đó. Mô hình LDAP Naming cho phép chúng ta có thể đặt dữ liệu vào thư mục theo cách mà chúng ta có thể dễ dàng quản lý nhất. Ví dụ như chúng ta có thể tạo ra một container(khái niệm vật thể chứa đựng) chứa tất cả các entry mô tả người trong một TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 99/176 tổ chức, và một container chứa tất cả các group của bạn, hoặc bạn có thể thiết kế entry theo mô hình phân cấp theo cấu trúc tổ chức của bạn. Việc thiết kế tốt cần phải có những nghiên cứu thoả đáng. Hình 34: Cây thư mục LDAP Chúng ta đưa ra hệ thống tập tin UNIX để thấy được những điểm khác biệt với hệ thống thư mục LDAP, sau đó phân tích mô hình cây thư mục LDAP. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 100/176 Hình 35: Hệ thống tập tin của UNIX Có ba điểm khác biệt quan trọng : Điểm khác biệt đầu tiên giữa hai mô hình là trong mô hình LDAP không thực sự có một entry gốc(root). Root là nơi mà chúng ta có thể đặt các entry vào. Trên hệ thống LDAP có một entry đặc biệt được gọi là root DES chứa các thông tin về server, nhưng đây không phải là một entry thư mục bình thường. Khác biệt thứ hai là thư mục LDAP mỗi một node chứa dữ liệu, và cũng có thể là một container chứa các entry khác. Đây là một khác biệt với hệ thống tập tin do ở hệ thống tập tin chỉ có thư mục có thể chứa thư mục con và chỉ có tập tin mới chứa dữ liệu. Ta có thể thấy rằng entry trong thư mục có thể đồng thời là tập tin và thư mục. Hình 33 minh hoạ khái niệm trên các entry dc=airius, dc=com, ou=People và ou=devices tất cả đều chứa dữ liệu nhưng tất cả đều có node con cấp dưới. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 101/176 Hình 36: Một phần thư mục LDAP với các entry chứa thông tin. Khác biệt cuối cùng là hệ thống tập tin phân cấp và hệ thống LDAP: Trong một hệ thống tập tin khi ta đi từ trái sang phải tên tập tin là cách ta thực hiện đi từ gốc(/) đến tập tin. Ví dụ như hình 35 hệ thống file Unix tên file của node đậm màu là : /user/bin/grep. Với hệ thống thư mục LDAP tại node đậm màu có tên là uid=bjensen, ou=people, dc=airius, dc=com nếu chúng ta đi từ trái sang phải thì chúng ta có thể quay ngược lại đỉnh của cây. Ta thấy rằng hệ thống thư mục LDAP sắp đặt có trật tự các entry của thư mục, tuy nhiên LDAP không quy định bất kỳ sự phân cấp đặt biệt nào, chúng ta có thể tự do sắp xếp hệ thống tập tin của bạn một cách có ý nghĩa nhất với bạn. Ngoài việc chỉ cho bạn cách sắp xếp dữ liệu vào trong các cấu trúc phân cấp, mô hình LDAP Naming còn chỉ ra cách để tham chiếu đến từ entry trong thư. Distinguished names & Relative Distingguished name: Distinguished names (DNs) trong LDAP đây là tên của một entry chỉ ra cách bạn có thể tham chiếu đến các entry trên thư mục, hai entry khác nhau trên thư mục hai DNs cũng khác nhau. Giống như đường dẫn của hệ thống tập tin, tên của một entry LDAP được hình thành bằng cách nối tất cả các tên của từng entry cấp trên (cha) cho đến khi trở lên root, như hình trên ta thấy node có màu đậm sẽ có tên là uid=bjensen, ou=people, dc=airius, dc=com nếu chúng ta đi từ trái sang phải thì chúng ta có TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 102/176 thể quay ngược lại đỉnh của cây, chúng ta thấy rằng các thành phần riêng lẽ của cây được phân cách bởi dấu phẩy khoảng trắng sau dấu phẩy là tuỳ ý, do đó hai DNs sau là tương đương: uid=bjensen, ou=people, dc=airius, dc=com uid=bjensen,ou=people,dc=airius,dc=com Với bất kỳ một DN, thành phần trái nhất được gọi là relative distingguished name (RDN), như đã nói DN là tên duy nhất cho mỗi entry trên thư mục, do đó các entry có chùng cha thì RDN cũng phải phân biệt, ví dụ hình dưới đây ta thấy trên thư mục. Hình 37: Ví dụ về relative distingguished name (RDN) Mặc dù cho có hai entry có cùng RDN cn=Joohn Smith như hai entry ở hai nhánh khác nhau. Bí danh (Aliases): Những entry bí danh (Aliases entry)trong thư mục LDAP cho phép một entry chỉ đến một entry khác, do đó chúng ta có thể xây dựng ra cấu trúc mà thứ bật không cón chính xác nữa, khái niệm Aliases entry giống như khái niệm symbolic links trong UNIX hay shortcuts trên Windows9x/NT. Hình dưới đây cho ta thấy được một aliases entry trỏ đến một entry thật sự. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 103/176 Để tạo ra một alias entry trong thư mục trước tiên bạn phải tạo ra một entry với tên thuộc tính là aliasedOjecctName với giá trị thuộc tính là DN của entry mà chúng ta muốn alias entry này chỉ đến. Hình 38: LDAP với alias entry Nhưng không phải tất cả các LDAP Directory Server đều hổ trợ Aliases. Bởi vì một alias entry có thể chỉ đến bất kỳ một entry nào, kể cả các entry LDAP server khác. Do việc tìm kiếm khi gặp phải một bí danh có thể phải thực hiện tìm kiếm trên một cây thư mục khác nằm trên các server khác, do đó làm tăng chi phi cho việc tìm kiếm và đây cũng là lý do chính mà các phần mềm không hổ trợ alias. 3. Mô hình LDAP Function: Phần trên chúng ta đã nói đến mô hình LDAP Information và LDAP Naming, bây giờ chúng ta sẽ xem xét mô hình LDAP Functional, đây là mô hình mô tả các thao tác cho phép chúng ta có thể thao tác trên thư mục. Chúng ta nhắc lại khái quát về mô hình LDAP Functional. Mô hình LDAP Functional chứa một tập các thao tác chia thành 3 nhóm. Thao tác thẩm tra (interrogation) cho phép bạn có thể search trên thư mục và nhận dữ liệu từ thư mục. Thao tác cập nhật (update): add, delete, rename và thay đổi các entry thư mục. Thao tác xác thực và điều kiển(authentiaction and control) cho phép client xác TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 104/176 định mình đến cho thư mục và điều kiển các hoạt động của phiên kết nối. Với version 3 nghi thức LDAP ngoài 3 nhóm thao tác trên, còn có thao tác LDAP extended, thao tác này cho phép nghi thức LDAP sau này có thể mở rộng một cách có tổ chức và không làm thay đổi đến nghi thức. Bây giờ chúng sẽ phân tích kĩ các thao tác theo từng nhóm và đầu tiên là các thao tác LDAP interrogation. Các thao tác thẩm tra (LDAP Interrogation): Hai thao tác thẩm tra (LDAP Interrogation) cho phép client có thể tìm và nhận lại thông tin từ thư mục nhưng nghi thức LDAP không có thao tác đọc một entry thư mục, do đó khi đó chúng ta muốn đọc một entry thì ta phải thực hiện tìm kiếm và dừng tìm kiếm ngay khi nhận được kết quả đầu tiên. Thao tác tìm kiếm (LDAP search operation) yêu cầu 8 tham số: Tham số đầu tiên là đối tượng cơ sở mà các thao tác tìm kiếm thực hiện trên đây, tham số này là DN chỉ đến đỉnh của cây mà chúng ta muốn tìm. Tham số thứ hai là phạm vi cho việc tìm kiếm, chúng ta có 3 phạm vi thực hiện tìm kiếm: - Phạm vi “base” chỉ ra rằng bạn muốn tìm ngay tại đối tượng cơ sở - Phạm vi “onelevel” thao tác tìm kiếm diễn ra tại cấp dưới (con trực tiếp của đối tượng cơ sở) - Phạm vi “subtree” thao tác này thực hiện tìm hết trên cây mà đối tượng cơ sở là đỉnh. - Sau đây là các hình minh hoạ các trường hợp tìm kiếm tương ứng với các phạm vi trên: TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 105/176 Hình 39: Thao tác tìm kiếm với phạm vi base Hình 40: Thao tác tìm kiếm với phạm vi onelevel Hình 41: Thao tác tìm kiếm với phạm vi subtree TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 106/176 Tham số thứ ba derefAliases , cho server biết rằng liệu bí danh aliases có bị bỏ qua hay không tham khảo đến khi thực hiện tìm kiếm, có 4 giá trị mà derefAliases có thể nhận được: - nerverDerefAliases - nghĩa là thực hiện tìm kiếm và không bỏ qua bí danh (aliases) trong lúc thực hiện tìm kiếm và áp dụng với cả đối tượng cơ sở. - derefInsearching - bỏ qua các aliases trong trong các entry cấp dưới của đối tượng cơ sở, và không quan tâm đến thuộc tính của đối tượng cơ sở. - derefFindingBaseObject - ngược lại với giá trị thuộc tính trên với giá trị này thì việc tìm kiếm sẽ bỏ qua các aliases của đối tượng cơ sở, và không quan tâm đến thuộc tính của các entry thấp hơn đối tượng cơ sở. - derfAlways - bỏ qua cả hai nếu việc tìm kiếm thấy đối tượng cơ sở hay là các entry cấp thấp là các entry aliases. Tham số thứ bốn cho server biết có tối đa bao nhiêu entry kết quả được trả về, ví dụ như nếu client cho biết tham số này là 100, nhưng server lại tìm được 500 entry thoả mãn, nhưng lúc này server sẽ gởi 100 entry cho cilent, nếu client đặt tham số này là zero thì client nhận được tất cả các kết quả của việc dò tìm(chú ý tham số này có thể được áp đặt bởi server và những người dùng bình thường không thể thay đổi được). Tham số thứ năm qui định thời gian tối đa cho việc thực hiện tìm kiếm, khi thời gian tìm kiếm đã vượt quá thời gian tối đa thì server sẽ gởi cho client LDAP_TIMELIMIT_EXCEEDED, nếu tham số này được thiết lập là zero thì nghĩa là không có giới hạn thới gian cho việc tìm kiếm, cũng như tham số thứ bốn tham số này có thể do server thiết lập một giới hạn và chỉ có những người dùng có đặc quyền mới có thể thay đổi được. Tham số thứ sáu attrOnly – là một tham số kiểu bool, nếu được thiết lập là true, thì server chỉ gởi các kiểu thuộc tính của entry cho client, nhưng TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 107/176 sever không gởi giá trị của các thuộc tính đi, điều này là cần thiết nếu như client chỉ quan tâm đến các kiểu thuộc tính chứa trong ldap. Tham số thứ bảy là bộ lọc tìm kiếm(search filter) đây là một biểu thức mô tả các loại entry sẽ được giữ lại. Trong LDAP chức năng tìm kiếm với biểu thức lọc như vậy là rất linh động, tham khảo chi tiết các loại bộ lọc với phần tiếp theo. Tham số thứ tám và đây là tham số cuối cùng đây là một danh sách các thuộc tính được giữ lại với mỗi entry. Bạn có thể chỉ định các thuộc tính được giữ lại. Các kiểu bộ lọc áp dụng cho việc tìm kiếm. Filter Type Format Example Matches Equality (attr=value) sn=jensen Tìm kiếm các entry có surname là jensen Substring (attr=[leading] *[any]*[trailin g]) (sn=*jensen*) (sn=jensen*) (sn=*jensen) (sn=je*nse*n) Surname chứa chuổi con “jensen” Surname bắt đầu là chuổi jensen Surname kết thúc với chuổi “jensen” Surname bắt đầu với chuổi “je” chứa chuổi”nse” và kết thúc là chuổi “n” Approximat e (attr~=value) (attr=~jensen) Surname xấp xĩ như là chuổi “jensen” chẳng hạn như “jensin” hay “jenson” TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 108/176 Greater than or equal to (attr>=value) (sn>=jensen) Surname >=”jensen”, bộ lọc này áp dụng cho các thuộc tính là kiểu có giá trị Less than or equal to (attr<=value) (sn<=jensen) Surname >=”jensen” Presence (attr=*) (sn=*) Tất cả các entry có thuộc tính atrr AND (&(filter1)(filt e r2)…) (&(sn=jensen)(obj ectclass=person)) Các entry là objectclass person và surname=jensen OR (|(filter1)(filter 2)…) (|(sn~=jensen)(tel ephonenumber=89 44570)) Các entry cósurname xấp sĩ như chuổi “jensen” hay có số điện thoại là 8944570 NOT (!(filter)) (!(age>=22)) Các entry có thuộc tính tuổi <22 Chỉ có LDAP version 3 hổ trợ cho bộ lọc này: đây là một bộ lọc thiết kế cho các thao tác tìm kiếm phát triển trong tương lai. Bộ lọc này mang tính dễ dàng mở rộng của LDAP khi các thao tác tìm kiếm phát triển. Một ví dụ cho thấy sự hữu dụng của đặc tính này là: Cú pháp của bộ lọc mở rộng này khá phức tạp, gồm có 5 phần và 3 trong đó là các tuỳ chọn, những phần đó là: -Tên của thuộc tính. - Chuỗi tuỳ chọn : dn chỉ ra rằng các thuộc tính hình thành nên DN của entry được xem như là một thuộc tính của entry trong suốt thời gian thực hiện tìm kiếm. - Tuỳ chọn dấu : đi sau đó là qui tắc thực hiện để so sánh nếu để trống thì một qui tắc mặc định thích hợp sẽ được lựa chọn cho việc tìm kiếm TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 109/176 trên thuộc tính, nếu thuộc tính tên bị bỏ sót thì tuỳ chọn này buộc phải có mặt. Chuỗi “:=”. Một giá trị dùng để so sánh. - Ví dụ: attr [“:dn”] [“:” matchingrule] “:” value Các kí tự đặc biệt Nếu khi chúng ta thực hiện tìm kiếm mà một số giá trị thuộc tính chứa một trong 5 kí tự đặc biệt trong bảng ở bên dưới: Bảng các kí tự tránh sử dụng trong bộ lọc tìm kiếm Kí tự Giá trị hệ 10 Giá trị hệ 16 Escap Sequence * (dấu hoa thị) 42 0x2A \2A ( (mở ngoặc) 40 0x28 \28 ) (đóng ngoặc) 41 0x29 \29 \ (xẹt ngược) 92 0x5C \5c NULL 0 0x00 \00 Để thực hiện tìm kiếm một thuộc tính cn=star* thì chúng ta sẽ sử dụng bộ lọc là (cn=star\2A) ở đây \2A thay thế cho kí tự *. Thao tác cập nhật: Chúng ta có 4 thao tác cập nhật đó là add, delete, rename(modify DN), và modify. Add: Thao tác add tạo ra một entry mới với tên DN và danh sách các thuộc tính truyền vào, khi thực hiện add một entry mới vào thư mục phải thoả các điều kiện sau : - Entry là nút cha của entry mới phải tồn tại. - Chưa tồn tại một entry nào có cùng tên DN với entry mới trên thư mục Các thao tác điều kiển truy cập trên thư mục là các thao tác được phép. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 110/176 Delete: Thao tác xoá (delete) chỉ cần truyền vào tên của entry cần xoá và thao tác thực hiện được nếu như: - Entry tồn tại với tên là DN truyền vào. - Entry bị xoá không có các entry con. Các thao tác điều kiển truy cập trên thư mục là các thao tác được phép xoá. Rename: Thao tác rename hay modify DN sử dụng để đổi tên hay dùng để di chuyển các entry trong thư mục, các tham số cần truyền vào là DN của entry cần đổi tên, RDN mới của entry và một số tham số tuỳ chọn dành cho các entry là cha mới của entry di chuyển đến, và cuối cùng là một cờ cho phép xoá hay không xóa với RDN cũ. Cũng như trên thao tác thực hiện được nếu như thoả: - Các entry bị đổi tên phải tồn tại. - Tên mới của entry phải chưa tồn tại. Các thao tác điều kiển truy cập trên thư mục là các thao tác được phép. LDAP version 2 không hổ trợ thao tác modify DN, chỉ có thao tác modify RDN, do chỉ thay đổi RDN của entry cho nên LDAP version 2 chỉ cho phép thực hiện rename tên của entry nhưng không có khả năng di chuyển có đến nơi khác trên cây. Update: Thao tác cuối cùng là thao tác cập nhật với tham số DN và tập hợp các thay đổi được áp dụng lên đây. Và thao tác này đòi hỏi - Entry với DN truyền vào phải tồn tại. - Tất cả các thuộc tính thay đổi đều thực hiện thành công - Các thao tác cập nhật phải là các thao tác được phép Nếu một điều kiện nào ở trên không thoả thì cách cập nhận sẽ không được áp dụng trên entry. Các thao tác xác thực và điều kiển(LDAP authentiaction and control Operations): - Thao tác xác thực gồm: thao tác bind và unbind. - Thao tác điều kiển chỉ có abandon. Bind: TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 111/176 - Thao tác bind là cách client xác thực với server, client đưa ra DN và uỷ nhiệm thư, server kiểm tra DN và uỷ nhiệm thư nếu thành công thì client có quyền thực hiện các thao tác lên thư mục. - Có nhiều phương thức bind khác nhau, đơn giản là client đưa ra một DN và password các thông tin này ở dạng hiểu được. Lúc này server chỉ cần tìm entry với tên DN và kiểm tra xem giá trị thuộc tính userpassword có đúng với password truyền vào hay không. Tuy các phương thức an toàn hơn là SSL hay là TLS. - Với LDAP version 3 có một thao tác bind, là SASL bind đây là một nghi thức độc lập với các mô hình xác thực, với SASL cho phép client chọn thao tác xác thực và nếu thao tác này được server hổ trợ thì đây là thao tác dùng để xác thực client. Unbind: - Thao tác unbind, khi client phát ra thông báo này thì server sẽ huỹ bỏ các thông tin liên quan đến khách hàng huỷ bỏ tất cả các thao tác đang thi hành trên thư mục và đóng kết nối TCP. Abandon: - Thao tác abandon có một tham số duy nhất đó là ID của thông điệp, client thực hiện thao tác này khi không quan tâm đến kết quả của thao tác bất kỳ trước đó. 4. Mô hình LDAP Security: Vấn đề cuối cùng trong các mô hình LDAP là việc bảo vệ thông tin trong thư mục khỏi các truy cập không được phép. Khi thực hiện thao tác bind dưới một tên DN hay có thể client một người vô danh thì với mỗi user có một số quyền thao tác trên entry thư mục. Và những quyền nào được entry chấp nhận tất cả những điều trên gọi là truy cập điều kiển (access control). Hiện nay LDAP chưa định nghĩa ra một mô hình Access Control, các điều kiển truy cập này được thiết lập bởi các nhà quản trị hệ thống bằng các server software. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 112/176 IV. Sử dụng LDAP: 1. Ứng dụng xác thực dùng LDAP: Dùng LDAP xác thực một user đăng nhập vào một hệ thống qua chương trình thẩm tra, chương trình thực hiện như sau đầu tiên chương trình thẩm tra tạo ra một đại diện để xác thực với LDAP thông qua (1) sau đó so sánh mật khẩu của user A với thông tin chứa trong thư mục. Nếu so sánh thành công thì user A đã xác thực thành công. Hình 42: Xác thực dùng LDAP 2. Một số ứng dụng sử dụng nghi thức LDAP: Một chương trình mail có thể thực hiện dùng chứng chỉ điện tử chứa trong thư mục trên server LDAP để ký, bằng cách gởi yêu cầu tìm kiếm cho LDAP server , LDAP server gởi lại cho client chứng chỉ điện tử của nó sau đó chương trình mail dùng chứng chỉ điện tử để ký và gởi cho Message sever. Nhưng ở góc độ người dùng thì tất cả quá trình trên đều hoạt động một cách tự động và người dùng không phải quan tâm. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 113/176 Hình 43: Mô hình đơn giản lưu trữ Message server có thể sử dụng LDAP directory để thực hiện kiểm tra các mail. Khi một mail đến từ một địa chỉ, messeage server tìm kiếm địa chỉ email trong thư mục trên LDAP server lúc này Message server biết được hợp thư người sử dụng có tồn tại và nhận thư. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 114/176 Hình 44: Dùng LDAP để quản lý thư CHƯƠNG V: TRIỂN KHAI HỆ THỐNG I. Phân tích hiện trạng hệ thống: Hiện nay, trong hệ thống mạng của công ty Thành Long các dịch vụ đã và đang được triển khai ngày càng nhiều. Điều này phản ánh được hiệu quả của hệ thống; Tuy nhiên, các hệ thống dịch vụ này vẫn đang sử dụng các hệ thống xác thực riêng lẻ. Mỗi một dịch vụ có một hệ thống dữ liệu về người dùng khác nhau gây khó khăn trong việc quản lý và bảo mật hệ thống. Do vậy, cần xây dựng một hệ thống dữ liệu xác thực chuẩn đảm bảo các tiêu chí về bảo mật và an toàn dữ liệu để có thể cung cấp dịch vụ xác thực cho các dịch vụ sẵn có và đặc biệt là các dịch vụ tích hợp thêm. Để giải quyết vấn đề có quá nhiều hệ thống người dùng riêng rẽ, cần nghiên cứu một hệ thống có khả năng tập trung các hệ thống người dùng thành một hệ dữ liệu TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 115/176 thống nhất để phục vụ việc chứng thực cho tất cả các ứng dụng. Sử dụng hệ thống chứng thực tập trung có các ưu điểm sau: Tập trung quản lý người dùng: Toàn bộ người dùng sẽ được quản lý tại một hệ dữ liệu thống nhất. Các thao tác từ cấp phát, loại bỏ, phân quyền đến sao lưu dự phòng, khôi phục dữ liệu… sẽ chỉ thực hiện tại một hệ dữ liệu này. Tiện lợi cho người sử dụng: Người dùng không cần phải nhớ quá nhiều tên đăng nhập và mật khẩu khi sử dụng hệ thống. Tiết kiệm chi phí đầu tư: Các ứng dụng sẽ không cần phải quan tâm đến việc cấp phát và quản lý người dùng. Qua phân tích hiện trạng các dịch vụ hiện tại của công ty Thành Long, nhóm thực hiện nhận thấy việc tổ chức dữ liệu tập trung phục vụ chứng thực cho các ứng dụng là cần thiết và hoàn toàn có khả năng thực hiện. Trong đề tài này, nhóm thực hiện xin đưa ra giải pháp sử dụng hệ thống dữ liệu LDAP để xây dựng hệ thống dữ liệu phục vụ xác thực tập trung cho các ứng dụng với các ưu điểm sau: Gọn nhẹ, đảm bảo truy xuất nhanh thông tin. Dễ dàng quản lý và điều khiển. Hoạt động ổn định. Có giao diện mở tương tác với các ứng dụng khác. Có cơ chế đảm bảo an toàn thông tin, khả năng sao lưu đồng bộ và khôi phục khi gặp sự cố. Có khả năng phân cấp thông tin và lưu trữ phân tán. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 116/176 II. Cài đặt và cấu hình Open LDAP Replication Multi Master: 1. Cài đặt: 1.1 Các gói cài đặt: Berkeley Database. Openldap-2.4.25. Openldap-clients. Openldap-devel. Nss_ldap. Libtool-ltdl-1.5. Openldap-servers. 2. Các file cấu hình: /usr/local/etc/openldap/slapd.conf ; ldapserver config file and replication. /etc/syslog.conf ; config log file. /usr/local/libexec/slapd ; Start ldap. 2.1 Cấu hình file /usr/local/etc/openldap/slapd.conf: Trên máy ldap-svr1: Hình 45: Khai báo schema Hình 46: Khai báo tham số ldap TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 117/176 Hình 47: Định nghĩa database, tên phân giải, user quản trị, thư mục lưu trữ database. Hình 48: Khai báo các tham số đồng bộ ldap Hình 49: Chỉ định logfile TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 118/176 Hình 50: Tạo các đối tượng cho ldap Trên máy ldap-svr2: Hình 51: Khai báo schema Hình 52: Khai báo tham số ldap Hình 53: Định nghĩa database, tên phân giải, user quản trị, thư mục lưu trữ database. TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 119/176 Hình 54: Khai báo các tham số đồng bộ ldap TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 120/176 Sau khi cấu hình các tham số chúng ta start | restart lại dịch vụ ldap trên cả 02 máy bằng lệnh: #/usr/local/libexec/slapd Từ máy ldap-svr1 dùng công cụ quản trị ldap admin tạo user u1 quan sát ta thấy user u1 sẽ được đồng bộ sang ldap-svr2. Hình 55: User u1 đã được đồng bộ sang ldap-svr2 TRƯỜNG CAO ĐẲNG NGHỀ CNTT iSPACE 240 Võ Văn Ngân, QuậnThủ Đức, TP. Hồ Chí Minh ĐT: 08.6. 2678999 Fax: 08 – 6261 0304 Khoa CNTT – Đồ Án Tốt Nghiệp: Quản lý xác thực tập trung với dịch vụ LDAP Linux Trang 121/176 Từ máy ldap-svr2 dùng công cụ quản trị ldap admin tạo user u2 quan sát ta thấy user u2 sẽ được đồng bộ sang ldap-svr1 Hình 56: User u2 đã được đồng bộ sang ldap-svr1 III. Xây dựng Primary Domain Controller (Openldap with Samba): 1. Cài đặt: 1.1 Các gói cài đặt: Libtool-ltdl-1.5.22-6.1.i386.rpm Openldap-servers-2.3.43-3.el5.i386.rpm Openldap-clients-2.3.43-3.el5.i386.rpm

Các file đính kèm theo tài liệu này:

  • pdfdo_an_tot_nghiep_3877.pdf