Kiến thức cơ bản về mạng: Phần 10 – Các tên phân biệt

28/07/2010 02:23 PM


Trong phần 9 của loạt bài này, chúng tôi đã giải thích cho các bạn về đối tượng tham chiếu giao thức LDAP trong Active Directory bởi tên phân biệt của chúng, mỗi một đối tượng trong thư mục có tên riêng của chính nó. Trong phần 10này, chúng tôi muốn tiếp tục giới thiệu cho các bạn về các tên phân biệt như thế nào.

Trong phần 9 của loạt bài này, chúng tôi đã giải thích cho các bạn về đối tượng tham chiếu giao thức LDAP trong Active Directory bởi tên phân biệt của chúng, mỗi một đối tượng trong thư mục có tên riêng của chính nó. Trong phần 10này, chúng tôi muốn tiếp tục giới thiệu cho các bạn về các tên phân biệt như thế nào.

Trước khi bắt đầu

Trước khi bắt đầu, chúng tôi muốn nhắc lại rằng các tên phân biệt không duy nhất có trong Active Directory. Microsoft đã xây dựng Active Directory để lợi dụng các chuẩn công nghiệp được sử dụng bởi nhiều công ty khác như Novell và IBM. Bằng cách nghiên cứu về chúng, bạn không chỉ có được sự chuẩn bị tốt hơn cho việc quản lý Active Director mà còn có được một mức thân thiện nhất định nếu bạn đã từng được yêu cầu làm việc với hệ điều hành mạng không phải của Microsoft.

Các nguyên tắc đặt tên cơ bản

Các tên phân biệt với nhau nhờ thuộc tính, các thuộc tính này được gán giá trị. Mỗi một tên phân biệt thường gồm có nhiều cặp giá trị thuộc tính, bạn hãy xem một tên đơn giản.

CN=User1, CN=Users, DC=Contoso, DC=com

Trong ví dụ này, tên được tạo thành từ 4 cặp thuộc tính/ giá trị khác nhau, mỗi một cặp được phân biệt với nhau bằng dấu phẩy. Cặp thuộc tính/ giá trị thứ nhất là CN=USER1. Trong cặp này, CN (viết tắt cho Common Name) là thuộc tính và User1 là giá trị. Các thuộc tính và giá trị luôn luôn phân biệt với nhau bởi dấu bằng (=), còn các cặp thuộc tính/ giá trị được phân biệt với nhau bằng dấu phẩy (,).

Các tên phân biệt

Khi bạn xem tên CN=User1, CN=Users, DC=Contoso, DC=com, mọi thứ trở thành rõ ràng ngay lập tức. Nếu quan sát kỹ hơn tên phân biệt này thì bạn có thể nhận ra rằng nó là hệ có thứ bậc. Trong trường hợp riêng này, DC=com thể hiện mức cao của thứ bậc. DC=Contoso thể hiện mức thứ hai. Bạn có thể nói rằng COM và Contoso là các miền bởi vì cả hai sử dụng thuộc tính DC. Thứ bậc miền ‘nhại lại’ thứ bậc miền được sử dụng bởi các máy chủ DNS (bạn đã được giới thiệu về thứ bậc DNS trong các bài trước)

Bạn cần phải hiểu thứ bậc tên này làm việc như thế nào vì hai lý do. Thứ nhất, hiểu thứ bậc tên bạn có thể biết chính xác nơi một đối tượng cụ thể được định vị bên trong thư mục. Lý do khác là hiểu được bản chất của thứ bậc thư mục vì đôi khi các đường tắt sẽ được sử dụng để thay cho tên đầy đủ.

Để rõ hơn những gì đang nói, chúng ta hãy xem xét thêm về ví dụ trên: CN=User1, CN=Users, DC=Contoso, DC=com. Tên phân biệt này được gán cho mỗi một tài khoản người dùng (chính xác hơn là một đối tượng người dùng) có tên User1. Phần còn lại trong tên cho chúng ta biết vị trí của đối tượng trong thứ bậc thư mục.

Nếu bạn đang cố nói với một ai đó về vấn đề này thì có thể tình cờ đề cập đến nó như User1. Đôi khi LDAP cũng thực hiện tương tự như vậy. Điều này hoàn toàn có thể vì nó không cần thiết phải cung cấp thông tin về vị trí của đối tượng trong thứ bậc nếu vị trí đã được biết.

Ví dụ, nếu chúng tôi đang thực hiện một số hoạt động trên các đối tượng người dùng được đặt trong thư mục Users trong miền Contoso.com thì có thực sự cần thiết để tuyên bố rõ ràng rằng các đối tượng đều được đặt trong Users của miền Contoso.com hay không?

Trong tình huống này cũng như vậy, tên phân biệt thường được thay thế bởi Relative Display Name (viết tắt là RDN). Trong trường hợp CN=User1, CN=Users, DC=Contoso, DC=com, thì RDN là CN=User1. RDN luôn luôn được phân biệt của bộ nhận dạng rõ ràng nhất. Nó là cặp giá trị/ thuộc tính bên trái nhất trong tên phân biệt. Phần khác của tên phân biệt cũng được biết đến như tên cha. Trong trường hợp điển hình này, tên cha sẽ là CN=Users, DC=Contoso, DC=com.

Trước khi tiếp tục, chúng tôi muốn đề cập một vấn đề là Microsoft thường thiên về sử dụng định dạng tên khác nhau hơn là một số nhà sản xuất hệ điều hành mạng khác. Như những gì bạn đã thấy, các tên của Microsoft thiên về dựa vào container và miền. Không có gì sai với định dạng này bởi vì nó chiếu theo RFC 2253 để thiết lập các nguyên tắc cho tên riêng biệt.

Một số hệ điều hành mạng khác thiên về dựa trên các thứ bậc tên riêng biệt của họ trên các công ty và quốc gia hơn là các container và miền. Trong các kiểu tên đó, thuộc tính O được sử dụng để chỉ định tên tổ chức (công ty) và chữ cái C được sử dụng để chỉ định tên quốc gia. Bằng sử dụng quy ước đặt tên này, tên riêng biệt CN=User1, CN=Users, DC=Contoso, DC=com sẽ như sau:

CN=User1, O=Contoso, C=US

Hãy nhớ rằng cả hai định dạng này đều tuân theo RFC 2253, nhưng chúng không thể thay đổi cho nhau. Nhiệm vụ của tên là để miêu tả một đối tượng và vị trí của nó bên trong thư mục. Lý do về 2 định dạng tên khác nhau là Microsoft đã xây dựng thư mục của họ khác so với các đối thủ cạnh tranh khác.

Các kí tự đặc biệt trong tên

Cho đến giờ chúng ta mới chỉ thấy các dấu phẩy và dấu bằng có ý nghĩa đặc biệt trong phần nội dung của tên. Tuy nhiên còn có một số kí tự đặc biệt khác mà phần trên chúng tôi chưa giới thiệu. Các kí tự đặc biệt đó gồm có dấu cộng, dấu lớn hơn, nhỏ hơn, số, dấu trích dẫn và dấu xổ ngược - back slash (\). Chúng tôi sẽ không giới thiệu hết các kí tự đặc biệt này mà chỉ tập trung vào giới thiệu cho các bạn dấu back slash. Dấu này cho phép bạn đưa ra một lệnh LDAP để bỏ qua kí tự theo sau. Điều này cho phép lưu các kí tự bị cấm trong thư mục của bạn.

Để rõ hơn nó được sử dụng như thế nào, chúng ta hãy xem xét một tên đầy đủ được biểu diễn với tên và họ cách nhau bằng dấu phẩy. Tuy nhiên LDAP không cho phép bạn sử dụng lệnh CN=Smith, John vì dấu phẩy được sử dụng bởi LDAP để phân biệt các cặp thuộc tính/ giá trị. Nếu muốn lưu giá trị Smith, John trong thư mục, bạn có thể thực hiện bằng các tạo một dấu back slash như dưới đây:

CN=Smith\, John Trong lệnh ở trên, dấu back slash làm cho LDAP phải coi dấu phẩy là dữ liệu chứ không phải là một phần của cú pháp câu lệnh. Cách khác để thực hiện điều này là dùng dấu trích dẫn. Mọi thứ bên trong dấu trích dẫn đều được coi như dữ liệu.

Có một quy tắc đặc biệt với việc sử dụng dấu back slash bên trong các dấu trích dẫn. Dấu back slash có thể được sử dụng để áp đặt LDAP bỏ qua các dấu back slash khác. Để đơn giản, nếu bạn cần gộp một dấu back slash vào phần dữ liệu thì đơn giản bạn chỉ cần sử dụng hai dấu back slash thay cho một dấu. Các trường hợp sự dụng dấu back slash giữa dấu trích dẫn được xem như không hợp lệ.

Kết luận

Thông qua nội dung bài bạn có thể thấy các nguyên tắc cho việc tạo một tên có thể khá tinh tế. Tuy vậy, việc hiểu được các tên sẽ là chìa khóa giúp bạn quản lý Active Directory tốt. Trong phần 10 tiếp theo chúng tôi sẽ tiếp tục giới thiệu bằng cách đưa ra các công cụ quản lý Active Directory.

QV tổng hợp