Procédure d'utilisation des approbations

Les approbations des services de domaine Active Directory utilisent les classes et énumérations suivantes :

Les sections suivantes expliquent comment utiliser l'espace de noms System.DirectoryServices.ActiveDirectory dans le cadre des approbations des services de domaine Active Directory.

Direction de l'approbation

La direction de l'approbation est représentée par les membres de l'énumération TrustDirection. Elle est toujours relative à un seul côté d'une approbation. Par exemple, si le domaine A a une relation d'approbation entrante avec le domaine B, ce dernier a une approbation sortante avec le domaine A.

Création d'une approbation

La création d'une approbation se déroule en deux étapes. La séquence normale des événements consiste à créer un côté d'une relation d'approbation, puis l'autre côté. Une fois les deux côtés créés, l'approbation est établie. Il est nécessaire d'utiliser le même mot de passe lors de la création de chacun des deux côtés de la relation d'approbation.

Pour les approbations de domaine, la méthode CreateTrustRelationship permet de créer à l'aide d'un programme les deux côtés d'une relation d'approbation, avec un seul appel de méthode. Cette méthode crée et utilise un mot de passe pour établir l'approbation. La méthode CreateTrustRelationship permet d'effectuer la même opération pour les approbations de forêt.

La méthode CreateLocalSideOfTrustRelationship permet de créer un seul côté d'une relation d'approbation de domaine. Pour établir l'approbation, l'appelant doit utiliser le même mot de passe lors de l'appel aux deux côtés de l'approbation. Ce mot de passe n'est utilisé que pour la création de l'approbation et n'est en rien lié aux mots de passe de compte. Pour que cette méthode aboutisse, la direction de l'approbation doit être correcte pour les deux appels. Cette méthode est utile lorsqu'un côté d'une approbation est créé à l'aide d'un programme et l'autre, manuellement. Elle peut également être utilisée pour créer à l'aide d'un programme les deux côtés de l'approbation, à des moments différents. La méthode CreateLocalSideOfTrustRelationship permet d'effectuer la même opération pour les approbations de forêt.

Obtention d'informations sur une approbation

Pour les approbations de domaine, la méthode GetTrustRelationship permet d'obtenir un objet TrustRelationshipInformation qui représente une approbation entre deux domaines. La méthode GetAllTrustRelationships permet d'obtenir un objet TrustRelationshipInformationCollection qui contient toutes les approbations établies par le domaine. Les méthodes GetTrustRelationship et GetAllTrustRelationships permettent d'effectuer les mêmes opérations pour les approbations de forêt.

Vérification d'une approbation

Pour les approbations de domaine, les méthodes VerifyTrustRelationship et VerifyOutBoundTrustRelationship permettent de vérifier qu'il existe une approbation valide entre deux domaines. La méthode VerifyOutBoundTrustRelationship permet de vérifier une approbation sortante, alors que la méthode VerifyOutBoundTrustRelationship permet de vérifier n'importe quel type d'approbation. Les méthodes VerifyTrustRelationship et VerifyOutBoundTrustRelationship permettent d'effectuer les mêmes opérations pour les approbations de forêt. Toutes ces méthodes lèvent une exception ActiveDirectoryObjectNotFoundException si l'approbation existante ne peut pas être vérifiée.

L'exemple C# suivant montre comment énumérer les approbations pour un domaine et vérifier que chacune d'elle a bien été établie.

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.");
        }
    }
}

Suppression d'une approbation

Dès qu'un côté d'une relation d'approbation est supprimé, l'approbation n'est plus établie. Pour les approbations de domaine, la méthode DeleteLocalSideOfTrustRelationship permet de supprimer un seul côté d'une approbation. La méthode DeleteTrustRelationship permet de supprimer les deux côtés d'une approbation avec un seul appel de méthode. Les méthodes DeleteLocalSideOfTrustRelationship et DeleteTrustRelationship permettent d'effectuer les mêmes opérations pour les approbations de forêt.

Authentification sélective

Si vous décidez de définir SetSelectiveAuthenticationStatus sur une approbation de forêt entrante, vous devez affecter manuellement des autorisations à chaque domaine et ressource devant être accessibles aux utilisateurs de la seconde forêt. Pour ce faire, définissez le droit de contrôle d'accès Autorisation d'authentifier sur un objet pour cet utilisateur ou ce groupe particulier depuis la seconde forêt.

Lorsqu'un utilisateur s'authentifie via une approbation dont l'option GetSelectiveAuthenticationStatus est activée, un ID de sécurité (SID) Autre organisation est ajouté aux données d'autorisation de l'utilisateur. La présence de ce SID invite à effectuer un contrôle du domaine de ressources pour s'assurer que l'utilisateur est autorisé à s'authentifier à ce service. Une fois l'utilisateur authentifié, le serveur auquel il s'authentifie ajoute le SID Cette organisation si le SID Autre organisation n'est pas déjà présent. Seul l'un de ces SID spéciaux peut être présent dans le contexte d'un utilisateur authentifié.

Filtrage des SID

Le filtrage des SID permet à un administrateur de faire en sorte que les contrôleurs d'un domaine donné mettent en « quarantaine » un domaine approuvé. De cette façon, les contrôleurs du domaine d'approbation suppriment tous les SID qui ne sont pas liés au domaine approuvé à partir de toutes les données d'autorisation en provenance de ce domaine. La mise en quarantaine s'effectue à partir du domaine d'approbation, domaine par domaine.

Le filtrage des SID bloque l'approbation transitive Windows 2000. Si un domaine mis en quarantaine se trouve dans le chemin d'accès à l'approbation entre deux domaines, les utilisateurs des domaines situés de l'autre côté du domaine en quarantaine ne peuvent pas accéder aux ressources du domaine mis en quarantaine. C'est pour cette raison que les domaines mis en quarantaine doivent être des domaines feuilles, que leurs domaines enfants doivent être uniquement des domaines de ressources qui ne contiennent aucun compte d'utilisateur ou que le domaine mis en quarantaine doit se trouver dans une forêt séparée.

Un administrateur Windows 2000 ne doit pas utiliser la fonction de filtrage des SID pour créer un domaine à accès restreint dans une forêt. Le scénario de quarantaine recommandé consiste à ne mettre en quarantaine que les domaines situés dans des forêts séparées. Une approbation doit être établie entre le domaine à protéger et le domaine à mettre en quarantaine. Le domaine d'approbation doit ensuite être configuré pour filtrer les SID à partir du domaine approuvé.

Send comments about this topic to Microsoft.

Copyright © 2008 par Microsoft Corporation. Tous droits réservés.