Trong hệ thống mạng máy tính, LDAP là một giao thức cơ sở dữ liệu phân tán thường được sử dụng với mục đích quản lý thông tin, thiết bị cũng như tài nguyên người dùng. Để hiểu cụ thể hơn về LDAP là gì và quy trình để xác thực giao thức này diễn ra như thế nào? Cùng Wiki.lanit tìm hiểu chi tiết qua bài viết sau!
LDAP là gì?
LDAP với tên gọi đầy đủ là Lightweight Directory Access Protocol là một giao thức truy cập cơ sở dữ liệu phân tán. Thông thường giao thức này được sử dụng nhằm mục đích quản lý thông tin người dùng, thiết bị và tài nguyên trong hệ thống mạng.
Những thông tin này sẽ được lưu trữ ở một thư mục (directory) và các đối tượng sẽ được tổ chức, quản lý dựa trên cấu trúc cây dữ liệu.
Trong đó, LDAP sử dụng mô hình client – server để thực hiện các công việc truy xuất, chỉnh sửa, thêm mới hoặc loại bỏ thông tin trong mục với các request truy xuất thông tin được gửi từ ứng dụng client đến LDAP server.
Ngoài phương thức truy cập trên, LDAP còn hỗ trợ thêm một số cách truy cập khác như TCP/IP, HTTP và X.500.
Tại sao nên sử dụng LDAP?
Qua định nghĩa LDAP là gì được đề cập trên, có thể thấy, sử dụng LDAP đem lại nhiều lợi ích đáng kể trong môi trường quản lý người dùng và quản lý truy cập. Cụ thể, LDAP giúp:
- Đơn giản hóa quy trình quản lý người dùng với thời gian quản trị mạng được tối ưu và nhấn mạnh vào quá trình xác thực.
- LDAP có thể sử dụng để xác thực người dùng đối với các công cụ và môi trường client khác, gồm Red Hat Directory Servers trên OpenLDAP và UNIX. Ngoài ra, khả năng xác thực này còn có thể sử dụng để quản lý API, kiểm soát truy cập dựa trên vai trò – RBAC hoặc với ứng dụng, dịch vụ khác như Kubernetes và Docker.
Quy trình hoạt động của LDAP
LDAP hoạt động theo mô hình client – server với một hoặc nhiều server LDAP chứa thông tin trong cây thư mục (Directory Information Tree – DIT). Trong đó, LDAP client sẽ kết nối với server và gửi request. Để client nhận được thông tin, server sẽ phản hồi lại bằng chính mình hoặc chuyển tiếp đến LDAP của server khác.
Cụ thể quy trình hoạt động của LDAP được diễn ra theo thứ tự như sau:
- Connect – Kết nối: Client sẽ mở kết nối đến LDAP server.
- Bind – Kiểu kết nối (Ẩn danh hay Đăng nhập): Client gửi đi các thông tin xác thực.
- Search – Tìm kiếm: Client gửi yêu cầu tìm kiếm.
- Interpret Search – Xử lý tìm kiếm: Server thực hiện xử lý tìm kiếm.
- Result – Kết quả: Máy chủ phản hồi kết quả với client.
- Unbind: Client gửi yêu cầu đóng kết nối với server.
- Close Connection – Đóng kết nối: Đóng kết nối từ server.
Database backend của LDAP
Slapd là một LDAP Directory Server có thể hoạt động trên nhiều nền tảng khác nhau. Đồng thời, người dùng còn có thể sử dụng slapd để cung cấp dịch vụ cho riêng mình.
Dưới đây là những tính năng mà slapd cung cấp cho người dùng:
- LDAPv3: Slapd hỗ trợ LDAP cho địa chỉ IPv4 và IPv6 cũng như Unix IPC.
- Simple Authentication and Security Layer: Đây là tính năng slapd hỗ trợ chứng thực mạnh mẽ cũng như bảo mật dữ liệu dịch vụ với SASL.
- Transport Layer Security: Slapd hỗ trợ TLS và SSL.
Slapd hiện đang sử dụng BDB và HDB để lưu trữ dữ liệu. Trong đó, BDB sử dụng Oracle Berkeley DB được đề nghị làm database backend chính cho Slapd thông thường.
Còn với HDB, mặc dù cũng tương tự như BDB nhưng vì HDB sử dụng database phân cấp nên sẽ hỗ trợ dữ liệu dưới dạng cây. Trong slapd, HDB hiện đang được cấu hình mặc định.
Sự khác nhau giữa LDAP và Active Directory
Giữa LDAP và Active Directory có những điểm khác biệt như sau:
- Đầu tiên, LDAP là giao thức Exchange Server được sử dụng để giao tiếp với Active Directory. Trong khi đó, Active Directory là một dịch vụ thư mục dùng để quản lý miền, tài khoản người dùng và tài nguyên phân tán, chẳng hạn như các đối tượng dành cho Windows.
- Thứ hai, bởi vì mục đích của Active Directory là quản lý miền, đối tượng và cấp quyền truy cập vào từng tài nguyên cho người dùng. Do đó, Active Directory có thông tin tài khoản của tất cả người dùng trên hệ thống mạng và lưu trữ chúng trong một cơ sở dữ liệu khổng lồ trên bộ điều khiển miền. Còn nhiệm vụ chính là LDAP là trích xuất thông tin ở định dạng có thể sử dụng được.
- Thứ ba, LDAP sử dụng truy vấn dựa trên chuỗi tương đối đơn giản để truy xuất thông tin từ Active Directory. Ở đây, LDAP có thể lưu trữ và trích xuất những đối tượng như tên người dùng, mật khẩu trong Active Directory cũng như chia sẻ những dữ liệu đó trên toàn bộ hệ thống mạng.
Quy trình xác thực LDAP
LDAP nổi bật với khả năng chia sẻ dữ liệu cho việc kiểm soát truy cập và ủy quyền. Giao thức này chỉ cho phép người dùng nội bộ quyền truy cập vào ứng dụng đã được chấp thuận.
Để được xác thực thành công, người dùng cần phải có tên (user name) và được xem là một DN với mật khẩu tương ứng. Dưới đây là 3 phương thức xác thực người dùng, cụ thể:
Xác thực người dùng không định danh – Anonymous Authentication
Xác thực người dùng không định danh hay Anonymous Authentication là một phương thức xác thực trong đó người dùng không cần cung cấp tên đăng nhập và mật khẩu để truy cập vào hệ thống. Thay vào đó, người dùng sẽ ở trạng thái ẩn danh và có quyền truy cập vào một số tài nguyên hay chức năng cụ thể.
Cách đăng nhập xác thực không định danh này thường được các ứng dụng client sử dụng nhằm cho phép người dùng truy cập vào một số tính năng cơ bản mà không phải đăng nhập.
Xác thực người dùng cơ bản – Simple Authentication
Simple Authentication hay xác thực người dùng cơ bản là một phương thức xác thực trong đó tên đăng nhập và mật khẩu được truyền tải dưới dạng clear text đến LDAP server.
Sau đó, server sẽ so sánh mật khẩu với giá trị thuộc tính người dùng hoặc với các giá trị thuộc tính đã được định nghĩa trước trong entry cho DN đó.
Lúc này, nếu mật khẩu được lưu dưới dạng hàm băm (mã hóa), server LDAP sẽ sử dụng cùng hàm băm để biến đổi mật khẩu trong yêu cầu và so sánh giá trị đó với giá trị được mã hóa từ trước. Mặt khác, nếu 2 mật khẩu trùng nhau, quá trình xác thực client diễn ra thành công.
Xác thực đơn giản qua SSL/TLS
Với quá trình xác thực qua SSL/TLS, LDAP sẽ tiến hành mã hóa trước khi bắt đầu một kết nối bất kỳ nào. Việc mã hóa này giúp đảm bảo an toàn cho tất cả thông tin người dùng hay ít nhất là trong session đó.
Các thành phần của LDAP
Như đã đề cập, LDAP là một giao thức truy cập vào dịch vụ thư mục và sử dụng DIT – cấu trúc phân cấp cây dữ liệu để lưu trữ thông tin người dùng. LDAP bao gồm các thành phần chính:
- Domain Access Component (dc): DC (hay com hoặc example) là thành phần đại diện cho các thành phần tên miền trong hệ thống tên miền DNS và được sử dụng để định vị tên miền internet và phiên dịch chúng thành địa chỉ IP.
- Organization Name (o): Là một trong những lớp con chung nhất trong DN và là nơi mà LDAP bắt đầu quá trình tìm kiếm. Ví dụ: Một đường dẫn đơn giản thường bắt đầu bằng lớp con o, sau đó phân nhánh đến đơn vị tổ chức (ou) và sau đó là tài khoản người dùng hoặc nhóm.
- Organization Unit (ou): Đây là một lớp con của o. Thông thường, ou = users hoặc ou = group với mỗi lớp chứa một danh sách các tài khoản hoặc nhóm người dùng.
- Common Name (cn): Là tên chung hay cn được sử dụng nhằm xác định tên tài khoản người dùng cá nhân hoặc nhóm. Ví dụ: cn = developers, cn = Susan. Trong đó, cn=developers xác định tên một nhóm là developers, còn cn=Susan xác định tên một tài khoản người dùng là Susan.
Thuộc tính và giá trị LDAP
Trong LDAP DIT, mỗi lớp con (tức o, cn,ou) chứa các thuộc tính và giá trị hoặc lược đồ mô tả thông tin về cấu trúc của thư mục LDAP. Các thuộc tính này chính là các thông tin như tên, số điện thoại, địa chỉ và các giá trị được gán cho mỗi thuộc tính.
Bên cạnh đó, còn có nhiều loại thuộc tính và cú pháp khác nhau được sử dụng nhằm giúp thu hẹp tìm kiếm, bao gồm ObjectClasses như organizationalPerson (cấu trúc tổ chức) hay person (cấu trúc cá nhân). Tuy nhiên, số lượng các thuộc tính này trên LDAP thường bị giới hạn để giữ hệ thống nhẹ và dễ sử dụng.
FAQS ( Câu Hỏi Thường Gặp)
Làm thế nào để cấu hình SSL/TLS cho LDAP?
Để cấu hình SSL/TLS cho LDAP, bạn cần thực hiện các bước sau:
- Tạo hoặc lấy chứng chỉ SSL/TLS cho máy chủ LDAP.
- Cấu hình máy chủ LDAP để sử dụng chứng chỉ SSL/TLS bằng cách chỉ định đường dẫn đến chứng chỉ và cổng kết nối bảo mật (thường là 636 cho LDAP Secure hoặc 389 với StartTLS).
LDAP có thể tích hợp với các ứng dụng di động và ứng dụng đám mây không?
Có. LDAP có thể tích hợp với các ứng dụng di động và ứng dụng đám mây. Các ứng dụng di động và đám mây thường hỗ trợ LDAP để quản lý danh bạ và xác thực người dùng. Điều này cho phép họ truy cập thông tin người dùng và danh bạ từ máy chủ LDAP để cung cấp các dịch vụ và tính năng liên quan đến người dùng một cách hiệu quả.
Kết luận
Trên đây là tổng hợp thông tin về LDAP là gì và quy trình xác thực LDAP giúp kiểm soát và quản lý tài nguyên người dùng hiệu quả. Hy vọng bài viết sẽ giúp bạn hiểu rõ hơn về LDAP – giải pháp đáng tin cậy trong việc quản lý thông tin người dùng và tài nguyên trên hệ thống mạng.
Comments are closed.