Active Directory : comment créer un attribut personnalisé ?

I. Présentation

Dans ce tutoriel, je vous propose de voir comment créer un attribut personnalisé dans l'Active Directory. Bien qu'il y ait déjà de nombreux attributs par défaut dans l'Active Directory pour les différentes classes d'objets, il peut être nécessaire de créer son propre attribut personnalisé. Parfois, il peut également s'agir d'un prérequis pour certaines applications.

Dans cet exemple, je vais créer un attribut nommé "SyncToCloud" qui sera un booléen et qui serait exploitable par un outil comme Azure AD Connect pour synchroniser uniquement les utilisateurs qui ont cet attribut à VRAI.

II. Ouvrir l'éditeur de schéma Active Directory

Sur votre contrôleur de domaine, exécutez la commande suivante pour enregistre la console Schéma Active Directory (à faire une fois) :

regsvr32 schmmgmt.dll

Ensuite, ouvrez une console "mmc" et ajoutez le composant "Schéma Active Directory" : Fichier > Ajouter ou supprimer des composants logiciels enfichables.

Lorsque la console est ouverte, vous pouvez continuer...

III. Créer l'attribut

Il y a deux dossiers : Classes et Attributs. Effectuez un clic droit sur "Attributs" puis cliquez sur "Créer un attribut".

Un avertissement s'affiche à l'écran pour vous informer que cette opération est irréversible : il n'est pas possible de supprimer un attribut. Vous agissez donc en connaissance de cause. Cliquez sur "Continuer".

Plusieurs champs sont à compléter pour créer cet attribut, notamment : Nom commun, ID d'objet X.500 unique, et Syntaxe. Voyons comment les compléter.

  • Nom commun :

Il s'agit du nom (cn) de votre attribut, ici "SyncToCloud".

  • Nom complet LDAP :

Laissez l'assistant reprendre la même valeur que pour le Nom commun.

  • ID d'objet X.500 unique :

Il s'agit d'un identifiant unique à associer à votre attribut. Vous pouvez obtenir un identifiant unique facilement grâce à ces quelques commandes à exécuter dans une console PowerShell ou PowerShell ISE sur votre DC :

$Prefix="1.2.840.113556.1.8000.2554" 
$GUID=[System.Guid]::NewGuid().ToString() 
[email protected]() 
$Parts+=[UInt64]::Parse($guid.SubString(0,4),"AllowHexSpecifier") 
$Parts+=[UInt64]::Parse($guid.SubString(4,4),"AllowHexSpecifier") 
$Parts+=[UInt64]::Parse($guid.SubString(9,4),"AllowHexSpecifier") 
$Parts+=[UInt64]::Parse($guid.SubString(14,4),"AllowHexSpecifier") 
$Parts+=[UInt64]::Parse($guid.SubString(19,4),"AllowHexSpecifier") 
$Parts+=[UInt64]::Parse($guid.SubString(24,6),"AllowHexSpecifier") 
$Parts+=[UInt64]::Parse($guid.SubString(30,6),"AllowHexSpecifier") 
$OID=[String]::Format("{0}.{1}.{2}.{3}.{4}.{5}.{6}.{7}",$prefix,$Parts[0],$Parts[1],$Parts[2],$Parts[3],$Parts[4],$Parts[5],$Parts[6]) 
$oid

Copiez la valeur retournée et insérez-la dans le champ associé.

  • Syntaxe : 

Il s'agit du type d'attribut, pour ma part je vais choisir "Booléen" car je souhaite que l'attribut puisse avoir seulement deux valeurs : VRAI ou FAUX. Pour une chaîne de caractères, vous pouvez sélectionner "Chaîne Unicode".

Je vous laisse compléter ces différents champs et valider. Lorsque l'attribut est créé, retournez dans ses propriétés et cochez les options de la façon suivante. Si certaines options sont grisées, poursuivez ce tutoriel et revenez à la fin de l'étape suivante pour cocher les options.

Nous allons notamment activer l'attribut et le répliquer au sein des serveurs ayant le rôle "Catalogue global" sur votre infrastructure.

IV. Affecter l'attribut à la class "user"

L'attribut est créé, mais il n'est pas associé à une classe d'objets (utilisateur, ordinateur, etc). Nous allons l'associer à la class "user" qui correspondant aux utilisateurs. Dans la console Schéma Active Directory, cliquez sur "Classes" et recherchez "user" dans la liste. Effectuez un clic droit dessus puis "Propriétés".

Basculez sur l'onglet "Attributs" et cliquez sur le bouton "Ajouter". Ensuite, dans la liste d'attributs, recherchez l'attribut créé précédemment, pour ma part "syncToCloud", afin de l'ajouter. Cette action va permettre d'associer cet attribut avec la classe "user".

Vous pouvez valider. Maintenant, vous pouvez basculer sur la console "Utilisateurs et ordinateurs Active Directory" et activez l'affichage avancé : Affichage > Fonctionnalités avancées.

Accédez aux propriétés d'un utilisateur de votre annuaire, et cliquez sur l'onglet "Éditeur d'attributs". Dans la liste des attributs, vous devriez trouver celui que vous venez de créer ?. Si ce n'est pas le cas, vérifiez les propriétés de votre attribut.

Grâce à un double-clic sur l'attribut, vous pouvez définir sa valeur pour cet utilisateur ?

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau et cofondateur d'IT-Connect. Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian a publié 3130 articlesVoir toutes les publications de cet auteur

4 thoughts on “Active Directory : comment créer un attribut personnalisé ?

  • Bonjour
    Merci pour le travail
    une observation
    Il s’agit d’un identifiant unique à associer à votre attribut. Vous pouvez obtenir un identifiant unique facilement grâce à ces quelques commandes à exécuter dans une console PowerShell ou PowerShell ISE sur votre DC :
    Il sera bien de noter les commandes
    à la premiere vue « $Prefix= »1.2.840.113556.1.8000.2554 » !!!
    Bien cordialement

    Répondre
    • Bonjour Ralphe,
      Je n’ai pas compris votre remarque en fait ?
      Cordialement,
      Florian

      Répondre
  • Bonjour,

    Pour créer l’attribut en powershell, j’ai l’impression qu’il manque des commandes

    Répondre
    • Bonsoir Laurent,
      En fait les commandes PowerShell que j’ai indiqué dans ce tutoriel ont un seul but : générer un ID unique pour le nouvel attribut.
      Donc, effectivement, cela ne permet pas de créer l’attribut du début à la fin. Je ne sais pas si c’est possible, je ne l’ai jamais fait en tout cas.
      Bonne soirée.
      Cordialement,
      Florian

      Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.