Kiến thức cơ bản về mạng: Phần 10 – Các tên phân biệt
Trong phần 8 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 9 nà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: