Création et suppression d’objets dans services de domaine Active Directory

La procédure utilisée pour créer et supprimer par programmation des objets dans services de domaine Active Directory dépend de la technologie de programmation utilisée. Pour plus d’informations sur la création et la suppression d’objets dans services de domaine Active Directory avec une technologie de programmation spécifique, consultez les rubriques répertoriées dans le tableau suivant.

Technologie de programmation Informations supplémentaires
Interfaces de service Active Directory Création et suppression d’objets
Lightweight Directory Access Protocol Modification d’une entrée de répertoire
System.DirectoryServices Créer, supprimer, renommer et déplacer des objets

 

Création d’un objet

En général, les seuls attributs requis pour créer un objet sont les attributs cn et objectClass . Toutefois, la simple création d’un objet n’en fait pas nécessairement un objet fonctionnel. Certains types d’objets, tels que les utilisateurs et les groupes, ont des attributs supplémentaires requis pour les rendre fonctionnels. Pour plus d’informations sur la création de types spécifiques d’objets, consultez Création d’un utilisateur et création de groupes dans un domaine.

Windows Server 2003 : Lorsqu’un objet de l’utilisateur, du groupe ou de la classe d’ordinateur est créé sur un contrôleur de domaine qui s’exécute sur WWindows Server 2003 ou version ultérieure, le contrôleur de domaine définit automatiquement l’attribut sAMAccountName de l’objet sur une chaîne unique, le cas échéant.

Suppression d’un objet

Le serveur Active Directory effectue les actions suivantes lorsqu’un objet est supprimé :

  • L’attribut isDeleted de l’objet supprimé a la valeur TRUE. Les objets avec une valeur d’attribut isDeleted définie sur TRUE sont appelés pierres tombstone.

  • L’objet supprimé est déplacé vers le conteneur Objets supprimés pour son contexte de nommage. Si la propriété systemFlags d’objet contient l’indicateur 0x02000000, l’objet n’est pas déplacé vers le conteneur Objets supprimés. Pour plus d’informations sur la liaison et l’énumération du contenu du conteneur Objets supprimés, consultez Récupération d’objets supprimés.

  • Le conteneur Objets supprimés étant plat, tous les objets résident au même niveau dans le conteneur Objets supprimés. Par conséquent, le nom unique relatif de l’objet supprimé est modifié pour garantir que le nom est unique dans le conteneur Objets supprimés. Si le nom d’origine est plus long que 75 caractères, il est tronqué à 75 caractères. Les éléments suivants sont ensuite ajoutés au nouveau nom :

    1. Caractère 0x0A
    2. Chaîne « DEL: »
    3. Forme de chaîne d’un GUID unique, comme « 947e3228-70c9-4311-8b7a-e5c9b5bd4432 »

    Voici un exemple de nom d’objet supprimé :

    Jeff Smith\0ADEL:947e3228-70c9-4311-8b7a-e5c9b5bd4432
    
  • La plupart des valeurs d’attribut de l’objet supprimé sont supprimées. Les attributs suivants sont automatiquement conservés :

    • Attributeid
    • attributeSyntax
    • Distinguishedname
    • dNReferenceUpdate
    • flatName
    • governsID
    • groupType
    • instanceType
    • lDAPDisplayName
    • legacyExchangeDN
    • mS-DS-CreatorSID
    • mSMQOwnerID
    • name
    • nCName
    • objectClass
    • Objectguid
    • objectSid
    • oMSyntax
    • proxiedObjectName
    • replPropertyMetaData
    • Samaccountname
    • securityIdentifier
    • subClassOf
    • systemFlags
    • trustAttributes
    • trustDirection
    • trustPartner
    • trustType
    • userAccountControl
    • uSNChanged
    • uSNCreated
    • whenCreated

    Les autres attributs qui ont une valeur d’attribut searchFlags qui contient 0x00000008 sont également conservés.

    Les valeurs d’attribut suivantes sont toujours supprimées d’un objet supprimé :

    • objectCategory
    • samAccountType
  • Le descripteur de sécurité de l’objet supprimé est conservé et les entrées de contrôle d’accès pouvant être héritées ne sont pas propagées. Le descripteur de sécurité est conservé en l’état au moment de la suppression de l’objet.

  • Les liens vers et depuis l’objet supprimé sont effacés. Cette opération est effectuée en arrière-plan après la suppression de l’objet. Si l’objet supprimé est restauré avant que tous les liens soient effacés, une erreur est reçue.

  • Si l’objet est supprimé sur un contrôleur de domaine Windows Server 2003, l’attribut lastKnownParent de l’objet supprimé est défini sur le nom unique du conteneur dans lequel l’objet était contenu lors de sa suppression.

L’objet supprimé reste dans le conteneur Objets supprimés pendant une période appelée durée de vie de la pierre tombstone. Par défaut, la durée de vie de la pierre tombstone est de 60 jours, mais cette valeur peut être modifiée par l’administrateur système. Une fois la durée de vie de la pierre tombstone expirée, l’objet est définitivement supprimé du service d’annuaire. Pour éviter de manquer une opération de suppression, une application doit effectuer des synchronisations incrémentielles plus fréquemment que la durée de vie de la pierre tombstone.

Windows Server 2003 ajoute la possibilité de restaurer des objets supprimés. Pour plus d’informations sur la restauration d’objets supprimés, consultez Restauration d’objets supprimés.

Lorsqu’un élément est supprimé, aucun des attributs de l’objet ne peut être modifié. Dans Windows Server 2003, il est possible de modifier le descripteur de sécurité (attribut ntSecurityDescriptor ) sur un objet supprimé. Il s’agit d’autoriser la restauration d’objets lorsque la personne qui restaure l’objet ne dispose pas d’autorisations d’écriture sur des attributs obligatoires. Pour mettre à jour le descripteur de sécurité sur un objet supprimé, l’appelant doit disposer du droit d’accès de contrôle « Réanimer Tombstone » sur le contexte de nommage, en plus d’un accès WRITE_DAC et WRITE_OWNER standard. Même si le descripteur de sécurité est restrictif, l’administrateur peut d’abord prendre possession de l’objet, en supposant que l’administrateur dispose du privilège SE_TAKE_OWNERSHIP_NAME , puis modifier le descripteur de sécurité. Pour ce faire, utilisez la fonction ldap_modify_ext_s avec le contrôle LDAP_SERVER_SHOW_DELETED_OID . La liste de modifications doit contenir un seul attribut de remplacement pour l’attribut ntSecurityDescriptor .