Par défaut, dans l’Active Directory, vous pouvez activer ce que l’on appelle la Corbeille AD ou AD Recycled Bin. L’objectif est très simple cela vous permet d’avoir un container dans lequel vous pourrez retrouver tous les objets que vous allez supprimer de votre ADDS. Par défaut, cet espace vous permet de restaurer tous les objets que vous pourriez avoir supprimé pendant une durée de 180 jours. Option très utile pour un Active Directory de production.
Activer la Corbeille Active Directory
Cette fonctionnalité peut être activée en PowerShell ou bien tout simplement en utilisant la console Active Directory Administrative Center. Dans ce cas, une fois que l’outil est ouvert vous verrez sur la droite une option Enable Recycle Bin.
Si l’option est grisée alors c’est que l’option est déjà activée sur votre Active Directory. Dans ce cas, le Container dans lequel vous retrouverez les objets s’appelle « Deleted Objects« . Il se situe à la racine de votre domaine Active Directory. Par défaut, cet espace n’est visible que pour les administrateurs de votre domaine.
Donner les permissions en lecture sur la corbeille Active Directory
Dans certains cas, il est parfois nécessaire de donner les droits en lecture sur cet espace. Soit pour des utilisateurs ou parfois pour un compte de service applicatif lorsque vous déployez une application de gestion IAM. Problème, cet espace n’est pas visible depuis l’Active Directory Users & Computers ou même via ADSI Edit.
Pour en modifier les accès vous devrez donc réaliser l’action en ligne de commandes. La commande que nous allons utiliser est DSACLS.
Si je reprends l’exemple précis avec mon Lab, mon domaine ADDS porte le nom : INTERN.LAN. Dans ce cas, le Distinguished Name de mon Container pour les objets supprimés sera le suivant :
"CN=Deleted Objects,DC=INTERN,DC=lan"
Pour lister les permissions existantes
Pour voir les permissions actuellement configurées, utilisez la commande ci-dessous :
dsacls "CN=Deleted Objects,DC=INTERN,DC=lan"
Vous aurez l’aperçu suivant :
Pour ajouter des permissions pour un compte
Pour ajouter des permissions de Lecture seule pour un compte (de service ou utilisateur) vous pouvez utiliser la commande suivante :
dsacls "CN=Deleted Objects,DC=Intern,DC=lan" /G INTERN\toto:LCRP
Le paramètre G permet d’ajouter des permissions de type ALLOW. On pourrait aussi ajouter des DENY avec le paramètre D.
Les paramètres LCRP permettent de définir le type de droits que vous souhaitez ajouter au compte. Dans mon cas, LC et RP permettent donc de :
- LC: List the child objects of the object.
- RP: Read a property.
Retrouvez les choix possible sur la page suivante sur le site de Microsoft.
Après exécution, vous aurez l’aperçu des nouvelles permissions. Vous voyez que désormais votre compte de service TOTO (dans mon cas) dispose d’un accès au Container en Lecture. Vous pouvez le vérifier à nouveau avec la toute première commande.
Votre compte de service peut donc désormais voir ce qui se trouve dans le Container Deleted Objects. Contrairement à certaines documentations, je n’ai pas eu besoin de prendre le ownership sur l’ensemble du Container afin de modifier les droits.
Si c’est un compte de service de type gMSA, il suffit d’ajouter le classique « $ » à la fin du nom de votre compte.
Pour supprimer des permissions
Pour supprimer des permissions – qu’elles soient de type ALLOW ou DENY, vous pouvez utiliser la commande suivante :
dsacls "CN=Deleted Objects,DC=intern,DC=lan" /R INTERN\toto
Autres ressources
Si besoin, vous pouvez aussi consulter les sites ci-desssous que j’ai moi-même utilisé :