Bạn đã bao giờ tra số điện thoại của ai đó trong danh bạ hoặc sử dụng danh sách cửa hàng trong trung tâm mua sắm để tìm một cửa hàng cụ thể chưa? Máy chủ thư mục (directory server) thực chất cung cấp chức năng tương tự như vậy. Một máy chủ thư mục chứa dịch vụ tìm kiếm, cung cấp sự ánh xạ giữa các tài nguyên mạng và địa chỉ mạng của chúng. Nó được sử dụng để tổ chức và tìm kiếm các đối tượng và thực thể trong tổ chức, từ những thứ như tài khoản người dùng, nhóm người dùng, số điện thoại, và chia sẻ mạng. Thay vì quản lý thông tin tài khoản người dùng và máy tính tại từng máy riêng lẻ, tất cả thông tin đó có thể được lưu trữ trên máy chủ thư mục để dễ dàng truy cập và quản lý.
Một máy chủ thư mục chất lượng doanh nghiệp lý tưởng nên hỗ trợ khả năng sao chép (replication). Điều này có nghĩa là dữ liệu thư mục có thể được sao chép và phân phối trên nhiều máy chủ ở các vị trí vật lý khác nhau nhưng vẫn xuất hiện dưới dạng một kho dữ liệu thống nhất để truy vấn và quản lý. Tại sao việc sao chép lại quan trọng? Nó cung cấp tính dự phòng bằng cách có nhiều dịch vụ có sẵn cùng lúc. Nhờ đó, sẽ có ít gián đoạn dịch vụ hơn trong trường hợp một trong những máy chủ gặp sự cố. Sao chép cũng giúp giảm độ trễ khi bạn truy cập vào dịch vụ thư mục. Bằng cách có các bản sao của dịch vụ thư mục đặt tại mỗi văn phòng, bạn có thể phản hồi các truy vấn dịch vụ thư mục nhanh hơn.
Dịch vụ thư mục cũng nên linh hoạt, cho phép bạn dễ dàng tạo ra các loại đối tượng mới khi nhu cầu thay đổi. Truy cập thông tin được lưu trữ trong cơ sở dữ liệu của máy chủ thư mục cần phải có khả năng từ nhiều loại hệ điều hành khác nhau và từ các khu vực được chỉ định trong mạng nội bộ của công ty.
Dịch vụ thư mục hữu ích trong việc tổ chức dữ liệu và làm cho nó có thể tìm kiếm được cho tổ chức. Điều này được thực hiện thông qua việc sử dụng mô hình phân cấp của các đối tượng và các vùng chứa. Các vùng chứa này được gọi là các đơn vị tổ chức (organizational units - OUs), và chúng có thể chứa các đối tượng hoặc nhiều đơn vị tổ chức khác. Cấu trúc này tương tự như cấu trúc của hệ thống tệp. Các OU giống như các thư mục, có thể chứa các tệp riêng lẻ hoặc các đối tượng trong dịch vụ thư mục. Các OU cũng có thể chứa thêm các thư mục con. Lợi ích quản lý của cấu trúc này rất rõ ràng. Bạn có thể tưởng tượng việc cố gắng giữ cho thư viện âm nhạc của mình có tổ chức nếu không có các thư mục con? Thật khó tưởng tượng.
Cấu trúc phân cấp này cũng có thể được sử dụng để truyền tải thông tin bổ sung về những gì được lưu trữ bên trong. Lấy ví dụ cấu trúc thư mục của bạn, bạn có thể có một OU gọi là "users" chứa tất cả các tài khoản người dùng. Bên trong OU này có thể có thêm các OU phụ đại diện cho cấu trúc nhóm thực tế của tổ chức bạn. OU "users" có thể chứa các OU phụ như "sales", "engineering", "marketing", trong đó bao gồm các đối tượng tài khoản người dùng của các cá nhân thuộc các nhóm này. Cấu trúc này có thể được sử dụng để phân biệt giữa các nhóm người dùng khác nhau. Ví dụ, chúng ta có thể áp dụng các yêu cầu mật khẩu nghiêm ngặt hơn cho các thành viên của bộ phận kỹ thuật mà không ảnh hưởng đến nhóm bán hàng và tiếp thị.
Các thành viên con sẽ kế thừa các đặc điểm của OU mẹ của chúng. Vì vậy, bất kỳ thay đổi nào được thực hiện đối với OU "users" ở cấp cao hơn sẽ ảnh hưởng đến tất cả các nhóm con, bao gồm cả "sales", "marketing", và "engineering". Người có trách nhiệm là quản trị viên hệ thống (system administrator) hoặc chuyên viên hỗ trợ IT sẽ chịu trách nhiệm về việc cài đặt, cấu hình và bảo trì máy chủ thư mục. Điều này bao gồm việc quản lý hệ điều hành mà dịch vụ thư mục sẽ chạy trên đó. Các nhiệm vụ quản lý hệ điều hành tiêu chuẩn cũng liên quan, như đảm bảo rằng các bản cập nhật được cài đặt và cấu hình các dịch vụ cơ bản.
Các nhiệm vụ khác bao gồm cài đặt và cấu hình dịch vụ thư mục, như việc cài đặt dịch vụ và cấu hình các dịch vụ liên quan. Nếu sử dụng nhiều máy chủ trong cấu hình sao chép, điều này cũng cần được cấu hình. Rất có thể cấu trúc phân cấp và toàn bộ cấu trúc của thư mục cũng sẽ do quản trị viên hệ thống thiết kế và triển khai. Vậy là chúng ta đã kết thúc cái nhìn tổng quan về dịch vụ thư mục là gì.
Dịch vụ thư mục đã trở thành một tiêu chuẩn mạng mở giúp khả năng tương tác giữa các nhà cung cấp phần mềm khác nhau. Năm 1988, tiêu chuẩn thư mục X.500 được phê duyệt và bao gồm các giao thức như giao thức truy cập thư mục (Directory Access Protocol - DAP), giao thức hệ thống thư mục (Directory System Protocol - DSP), giao thức sao lưu thông tin thư mục (Directory Information Shadowing Protocol - DISP), và giao thức quản lý liên kết hoạt động thư mục (Directory Operational Bindings Management Protocol - DOP). Các giải pháp thay thế cho DAP cũng đã được thiết kế để cho phép các ứng dụng khách truy cập vào thư mục X.500. Phổ biến nhất trong số các giải pháp thay thế này là giao thức truy cập thư mục nhẹ (Lightweight Directory Access Protocol - LDAP). Vì đây là các tiêu chuẩn mở cho việc giao tiếp và truy cập dịch vụ thư mục, nên đã có rất nhiều triển khai khác nhau của các dịch vụ này ra đời. Có các giải pháp từ Apache, Oracle, IBM và Red Hat, nhưng trong phần này chúng ta sẽ đi sâu vào hai giải pháp chính.
Giải pháp đầu tiên là triển khai của Microsoft, được gọi là Active Directory (AD). Nó có một số tùy chỉnh và tính năng bổ sung dành riêng cho nền tảng Windows. Ngoài ra, còn có các triển khai mã nguồn mở của dịch vụ thư mục sử dụng LDAP. Một ví dụ phổ biến là OpenLDAP, hỗ trợ nhiều nền tảng khác nhau như Windows, UNIX, Linux và các dẫn xuất khác. Ngoài phần mềm dịch vụ, còn có các công cụ khách hàng dùng để truy cập và quản lý máy chủ thư mục. Một trong những công cụ này là Microsoft Office Active Directory Users and Computers (ADUC), hoạt động hiệu quả với máy chủ Active Directory của Microsoft. Ngoài ra còn có các công cụ mở hơn giúp tương tác với nhiều triển khai máy chủ thư mục khác. Bên cạnh các ứng dụng quản lý và điều hành máy chủ thư mục, cũng có các ứng dụng khách hàng có thể tương tác và truy vấn máy chủ thư mục. Tất cả các hệ điều hành chính đều hỗ trợ tích hợp với máy chủ thư mục để đăng nhập và xác thực người dùng. Ưu điểm ở đây là nó cho phép quản lý tập trung các tài khoản người dùng.
Các bạn có thể xem một bài đọc về cách triển khai dịch vụ thư mục ở đây. Trong bài triển khai của mình là một bài lab được cung cấp bởi Coursera. Mình đã tiến hành thực hiện từ bài lab đó. Nhưng các bạn chỉ cần đọc tham khảo hướng dẫn và có thể thực hiện trên máy tính hoặc máy ảo của chính các bạn.