Vor dem Umarmen, Erweitern und Ändern von LDAP durch Microsoft hatten die meisten Implementierungen Objekte, die den Stamm des Baums darstellen. Dh du musst irgendwo anfangen.
Aus Gründen, die mir nicht ganz klar sind, ist in Active Directory jede Domäne in der Baumstruktur / Gesamtstruktur mit einem Namen verwurzelt, der dc = Domäne, dc = com ist und nicht wirklich zwei separate Objekte ist, sondern ein virtuelles Stammverzeichnis des Verzeichnisses Namensraum.
Ich denke, dass ein Teil davon auf die Tatsache zurückzuführen ist, dass es sich unabhängig von den Aussagen zu Active Directory immer noch um eine Reihe verknüpfter Domänen handelt und jede Domäne als eigenständige Entität behandelt werden muss.
Jetzt gibt es automatische transitive Vertrauensstellungen innerhalb eines AD-Baums, sodass es für Endbenutzer weniger wichtig ist, aber obwohl der Namespace irgendwie zusammenhängend aussieht, ist dies nicht wirklich der Fall.
Dies wird bei einigen Namensregeln mit AD deutlicher. Beispielsweise muss sAMAccountName innerhalb einer Domäne eindeutig sein, unabhängig davon, ob sie sich im selben Container befinden oder nicht. Dh Der vollständige definierte Name muss eindeutig sein (Sie können nicht zwei John Smith-Benutzer im selben Container haben), aber der Kurzname, der intern für viele Dinge verwendet wird (sAMAccountName), muss innerhalb der gesamten Domäne eindeutig sein.
Andere Verzeichnisdienste haben entweder ähnliche Anforderungen, wie beispielsweise uniqueID, sollte innerhalb des gesamten Verzeichnisses wirklich eindeutig sein, aber das liegt eher daran, dass Anwendungen normalerweise diese Annahme treffen, da Anwendungsschreiber zu faul waren, um mit dem komplexen Problem umzugehen (ich beschuldige nicht) Für sie ist es ein schwieriges Problem, wie zwei Benutzer mit kurzen Namen von jsmith zu behandeln sind, die versuchen, einen Dienst zu verwenden, aber in zwei verschiedenen Containern vorhanden sind. (Dh vielleicht cn = jsmith, ou = London, dc = acme, dc = com und cn = jsmith, ou = Texas, dc = acme, dc = com).
Wie sollte Ihre Anwendung, die dieses Verzeichnis verwendet, entscheiden, welchen Benutzer sie verwenden soll? Die übliche Antwort ist, den Benutzer entscheiden zu lassen. Dies bedeutet jedoch, diesen Fall zu erfassen und dem Benutzer eine Benutzeroberfläche zur Auswahl und so weiter zu präsentieren.
Die meisten Anwendungsschreiber ignorieren diese Möglichkeit einfach und verwenden nur uniqueID oder sAMAccountName, da dies eindeutig (irgendwie) und einfacher zu tun ist.
Der Unterschied zwischen uniqueID und sAMAccountName besteht darin, dass uniqueID im gesamten Verzeichnisnamenbereich eindeutig sein sollte. Während sAMAccountName nur innerhalb der Domain garantiert eindeutig ist. Wenn der AD-Baum mehrere Domänen enthält, gibt es dort keine Garantie für die Eindeutigkeit zwischen Domänen.