Verfahrensweise: Arbeiten mit Vertrauensstellungen
Die folgenden Klassen und Enumerationen werden mit Vertrauensstellungen der Active Directory-Domänendienste verwendet.
- Forest
- Domain
- TrustRelationshipInformation
- TrustRelationshipInformationCollection
- ForestTrustCollisionType
- ForestTrustDomainStatus
- TrustDirection
- TrustType
Die folgenden Abschnitte veranschaulichen, wie der System.DirectoryServices.ActiveDirectory-Namespace für die Arbeit mit den Vertrauensstellungen der Active Directory-Domänendienste verwendet wird.
- Verfahrensweise: Arbeiten mit Vertrauensstellungen
- Verfahrensweise: Arbeiten mit Vertrauensstellungen
- Verfahrensweise: Arbeiten mit Vertrauensstellungen
- Verfahrensweise: Arbeiten mit Vertrauensstellungen
- Verfahrensweise: Arbeiten mit Vertrauensstellungen
- Verfahrensweise: Arbeiten mit Vertrauensstellungen
- Verfahrensweise: Arbeiten mit Vertrauensstellungen
Vertrauensrichtung
Die Vertrauensrichtung wird von den Membern der TrustDirection-Enumeration dargestellt. Die Richtung einer Vertrauensstellung bezieht sich immer auf eine einzelne Seite einer Vertrauensstellung. Wenn Domäne A beispielsweise eine eingehende Vertrauensstellung mit Domäne B hat, dann hat Domäne B eine ausgehende Vertrauensstellung mit Domäne A.
Erstellen einer Vertrauensstellung
Das Erstellen einer Vertrauensstellung ist ein zweistufiger Prozess. Die normale Ereignisfolge ist, dass eine Seite der Vertrauensstellung und anschließend die andere Seite der Vertrauensstellung erstellt wird. Nachdem beide Seiten der Vertrauensstellung erstellt wurden, ist die Vertrauensstellung eingerichtet. Jede Seite der Vertrauensstellung erfordert beim Erstellen der jeweiligen Seite dasselbe Kennwort.
Für Domänenvertrauensstellungen wird die CreateTrustRelationship-Methode verwendet, um beide Seiten einer Vertrauensstellung über einen einzelnen Methodenaufruf programmgesteuert zu erstellen. Diese Methode erstellt und verwendet ein Kennwort, um die Vertrauensstellung einzurichten. Die CreateTrustRelationship-Methode wird verwendet, um denselben Vorgang für Gesamtstrukturvertrauensstellungen durchzuführen.
Die CreateLocalSideOfTrustRelationship-Methode wird verwendet, um nur eine Seite einer Domänenvertrauensstellung zu erstellen. Der Aufrufer muss beim Aufruf für beide Seiten der Vertrauensstellung dasselbe Kennwort bereitstellen, um die Vertrauensstellung einrichten zu können. Dieses Kennwort wird nur für die Erstellung der Vertrauensstellung verwendet und es besteht kein Zusammenhang mit dem Kontokennwort. Die Vertrauensrichtung muss in beiden Aufrufen richtig angegeben sein, damit diese Methode erfolgreich ausgeführt werden kann. Diese Methode ist hilfreich, wenn eine Seite einer Vertrauensstellung programmgesteuert und die andere Seite manuell erstellt wird. Diese Methode kann auch zum programmgesteuerten Erstellen beider Seiten der Vertrauensstellung an unterschiedlichen Zeitpunkten verwendet werden. Die CreateLocalSideOfTrustRelationship-Methode wird verwendet, um denselben Vorgang für Gesamtstrukturvertrauensstellungen durchzuführen.
Erhalten von Informationen über eine Vertrauensstellung
Für Domänenvertrauensstellungen wird die GetTrustRelationship-Methode verwendet, um ein TrustRelationshipInformation-Objekt zu erhalten, das eine Vertrauensstellung zwischen zwei Objekten darstellt. Die GetAllTrustRelationships-Methode wird verwendet, um ein TrustRelationshipInformationCollection-Objekt zu erhalten, das alle von der Domäne eingerichteten Vertrauensstellungen enthält. Die Methoden GetTrustRelationship und GetAllTrustRelationships werden verwendet, um dieselben Vorgänge für Gesamtstrukturvertrauensstellungen durchzuführen.
Überprüfen einer Vertrauensstellung
Für Domänenvertrauensstellungen werden die Methoden VerifyTrustRelationship und VerifyOutBoundTrustRelationship verwendet, um zu überprüfen, dass eine vorhandene Vertrauensstellung zwischen zwei Domänen gültig ist. Die VerifyOutBoundTrustRelationship-Methode wird zum Überprüfen einer ausgehenden Vertrauensstellung und die VerifyOutBoundTrustRelationship-Methode wird zum Überprüfen von beliebigen Vertrauensstellungstypen verwendet. Die Methoden VerifyTrustRelationship und VerifyOutBoundTrustRelationship werden verwendet, um dieselben Vorgänge für Gesamtstrukturvertrauensstellungen durchzuführen. Alle Methoden lösen eine ActiveDirectoryObjectNotFoundException-Ausnahme aus, wenn die vorhandene Vertrauensstellung nicht überprüft werden kann.
Das folgende C#-Beispiel veranschaulicht, wie die Vertrauensstellungen für eine Domäne aufgelistet werden und wie überprüft wird, dass alle Vertrauensstellungen vollständig eingerichtet wurde.
static void EnumAndVerifyDomainTrusts(
Domain domain,
NetworkCredential targetCredentials)
{
TrustRelationshipInformationCollection trusts;
trusts = domain.GetAllTrustRelationships();
foreach (TrustRelationshipInformation trust in trusts)
{
Console.WriteLine(
String.Format("Trust between {0} and {1}:",
trust.SourceName,
trust.TargetName));
Console.WriteLine(
String.Format("\tTrust type: {0}",
trust.TrustType.ToString()));
Console.WriteLine(
String.Format("\tTrust direction: {0}",
trust.TrustDirection.ToString()));
// Verify that the trust has been fully established.
DirectoryContext context = new DirectoryContext(
DirectoryContextType.Domain,
trust.TargetName,
targetCredentials.UserName,
targetCredentials.Password);
Domain targetDomain = Domain.GetDomain(context);
Console.WriteLine(targetDomain.Name);
try
{
domain.VerifyTrustRelationship(
targetDomain,
trust.TrustDirection);
Console.WriteLine("Trust verified.");
}
catch (ActiveDirectoryObjectNotFoundException)
{
// The trust was not verified.
Console.WriteLine("Trust not verified.");
}
}
}
Löschen einer Vertrauensstellung
Nachdem eine Seite einer Vertrauensstellung gelöscht wurde, besteht die Vertrauensstellung nicht mehr. Für Domänenvertrauensstellungen wird die DeleteLocalSideOfTrustRelationship-Methode verwendet, um eine einzelne Seite einer Vertrauensstellung zu löschen. Die DeleteTrustRelationship-Methode wird verwendet, um beide Seiten einer Vertrauensstellung über einen einzelnen Methodenaufruf zu löschen. Die Methoden DeleteLocalSideOfTrustRelationship und DeleteTrustRelationship werden verwendet, um dieselben Vorgänge für Gesamtstrukturvertrauensstellungen durchzuführen.
Selektive Authentifizierung
Wenn Sie SetSelectiveAuthenticationStatus für eine eingehende Gesamtstrukturvertrauensstellung festlegen, müssen Sie Berechtigungen für die einzelnen Domänen und Ressourcen manuell zuweisen, auf die Benutzer in der zweiten Gesamtstruktur Zugriff haben sollen. Dazu legen Sie für das Kontrollzugriffsrecht "Darf authentifizieren" für ein Objekt für den bestimmten Benutzer oder die Gruppe aus der zweiten Gesamtstruktur fest.
Wenn sich ein Benutzer über eine Vertrauensstellung mit aktivierter GetSelectiveAuthenticationStatus-Option authentifiziert, wird den Authentifizierungsdaten des Benutzers eine SID (Security ID) für die andere Organisation hinzugefügt. Das Vorhandensein dieser SID löst eine Überprüfung der Ressourcendomäne aus, mit der sichergestellt wird, dass sich der Benutzer bei diesem Service authentifizieren darf. Nach der Überprüfung des Benutzers fügt der authentifizierende Server die SID für die Organisation hinzu, sofern die SID für die andere Organisation nicht bereits vorhanden ist. Der Kontext eines authentifizierten Benutzers kann nur eine dieser speziellen SIDs enthalten.
SID-Filterung
Durch die SID-Filterung kann ein Administrator die Domänencontroller in einer gegebenen Domäne dazu veranlassen, eine vertrauenswürdige Domäne unter "Quarantäne" zu stellen. Dies veranlasst die Domänencontroller in der vertrauenden Domäne, alle SIDs zu entfernen, die sich nicht auf die von der vertrauenswürdigen Domäne empfangenen Autorisierungsdaten beziehen. Das "unter Quarantäne stellen" (Isolieren) wird von der vertrauenden Domäne durchgeführt und erfolgt pro Domäne.
SID-Filterung sperrt die transitive Vertrauensstellung von Windows 2000. Wenn sich eine in Quarantäne befindliche Domäne im Vertrauenspfad zwischen zwei Domänen befindet, können Benutzer der Domänen, die sich auf der anderen Seite der in Quarantäne befindlichen Domäne befinden, nicht auf die Ressourcen dieser in Quarantäne stellenden (sperrenden) Domäne zugreifen. Aus diesem Grund sollten in Quarantäne gestellte Domänen Endknoten, ihre untergeordneten Domänen nur Ressourcendomänen ohne Benutzerkonten sein oder die in Quarantäne befindliche Domäne sollte sich in einer separaten Gesamtstruktur befinden.
Ein Windows 2000-Administrator sollte die SID-Filterfunktion nicht zum Erstellen einer Domäne mit eingeschränktem Zugriff innerhalb einer Gesamtstruktur verwenden. Beim empfohlenen Quarantäneszenario werden nur Domänen in separaten Gesamtstrukturen in Quarantäne gestellt. Es sollte eine Vertrauensstellung von der zu schützenden Domäne zur Domäne eingerichtet werden, die in Quarantäne gestellt werden soll. Dann sollte die vertrauende Domäne so konfiguriert werden, dass sie die IDs von der vertrauenswürdigen Domäne filtert.
Send comments about this topic to Microsoft.
Copyright © 2008 Microsoft Corporation. Alle Rechte vorbehalten.