Trước khi 'ôm ấp, mở rộng và thay đổi' LDAP của Microsoft, hầu hết các triển khai đều có các đối tượng để thể hiện gốc của cây. Tức là bạn phải bắt đầu từ một nơi nào đó.
Vì các lý do tôi không hoàn toàn rõ ràng, trong Active Directory, mỗi Tên miền trong cây / rừng được bắt nguồn bằng một tên mà dc = domain, dc = com không thực sự là hai đối tượng riêng biệt, thay vào đó là một gốc ảo của thư mục tên không gian.
Tôi nghĩ rằng một số trong số đó xuất phát từ thực tế, bất kể những gì được nói về Active Directory, nó vẫn là một loạt các miền được liên kết và mỗi miền cần được coi là một thực thể độc lập.
Bây giờ có các tín thác bắc cầu tự động trong cây AD, do đó, điều đó làm cho nó ít quan trọng hơn đối với người dùng cuối, nhưng mặc dù không gian tên trông có vẻ gần kề nhau, nhưng thực sự không phải vậy.
Điều này trở nên rõ ràng hơn với một số quy tắc đặt tên với AD. Ví dụ: sAMAccountName phải là duy nhất trong một miền, bất kể chúng có nằm trong cùng một vùng chứa hay không. Tức là Tên phân biệt đầy đủ phải là duy nhất, (bạn không thể có hai người dùng John Smith trong cùng một thùng chứa) nhưng tên viết tắt được sử dụng cho nhiều thứ bên trong (sAMAccountName) cần phải là duy nhất trong toàn bộ miền.
Các dịch vụ thư mục khác có một số yêu cầu tương tự, như uniqueID nên thực sự là duy nhất trong toàn bộ thư mục, nhưng đó là vì các ứng dụng thường đưa ra giả định đó, vì các nhà văn ứng dụng đã quá lười biếng để giải quyết vấn đề phức tạp (tôi không đổ lỗi chúng là một vấn đề khó khăn) về cách xử lý hai người dùng với tên ngắn của jsmith đang cố gắng sử dụng một dịch vụ, nhưng tồn tại trong hai container khác nhau. (Có lẽ cn = jsmith, ou = London, dc = acme, dc = com và cn = jsmith, ou = Texas, dc = acme, dc = com).
Ứng dụng của bạn sử dụng thư mục này sẽ quyết định người dùng nào sẽ sử dụng? Câu trả lời thông thường là để người dùng quyết định. Nhưng điều đó có nghĩa là nắm bắt trường hợp này, trình bày một UI cho người dùng lựa chọn và không có gì.
Hầu hết các nhà văn ứng dụng chỉ bỏ qua khả năng đó và chỉ sử dụng uniqueID hoặc sAMAccountName vì đó là duy nhất (sắp xếp) và dễ thực hiện hơn.
Sự khác biệt giữa uniqueID và sAMAccountName sẽ là uniqueID phải là duy nhất trong toàn bộ không gian tên thư mục. Trong khi đó sAMAccountName chỉ được đảm bảo duy nhất trong miền. Nếu cây AD có một số tên miền, thì không có sự bảo đảm nào có tính duy nhất, giữa các tên miền.