Active Directory : samAccountName VS UserPrincipalName
Sommaire
I. Présentation
Dans un environnement Active Directory, chaque objet utilisateur dispose de différents attributs. Dans cette longue liste d'attributs par défaut, on retrouve l'attribut samAccountName et un autre nommé UserPrincipalName appelé également "UPN". Dans cet article, je vais vous expliquer la différence entre les deux.
Pour en savoir plus : Cours Active Directory
II. Un peu d'histoire...
Dans les environnements pré-Windows 2000, on utilisait le samAccountName comme identifiant pour se connecter sur les postes de travail. Attention, cela ne veut pas dire qu'il ne peut plus être utilisé sur les environnements récents. Au contraire, il est encore très utilisé. La nouvelle façon de se connecter sur les environnements depuis Windows 2000 est l'utilisation du UserPrincipalName comme identifiant de connexion.
Aujourd'hui, on a donc deux manières de se connecter sur un poste pour ouvrir sa session : le samAccountName et le UserPrincipalName. Mais alors, quel est l'intérêt de chacun ? Comment se constituent-ils ?
III. L'attribut samAccountName
Commençons par l'attribut le plus ancien : samAccountName. Il est formé de la manière suivante : <NomNetbiosDuDomaine>\<utilisateur>. Par exemple, pour le domaine "it-connect.fr" ayant "ITCONNECT" comme nom NetBios, l'utilisateur "florian" se connectera de cette façon : ITCONNECT\florian. Il pourrait même simplement se connecter avec "florian" car Windows reprend automatiquement le nom NetBios.
Quelques précisions :
- Il est limité à 20 caractères, bien que la limite soit fixée à 256 caractères dans le schéma Active Directory pour des raisons de rétro-compatibilité il n'excède pas 20 caractères. Ceci peut être gênant selon votre convention de nommage pour les logins car ça peut vous obliger à tronquer le nom de la personne par exemple.
- Il doit être unique au niveau du domaine (pour les objets).
- La variable d'environnement %USERNAME% fréquemment utilisée s'appuie sur le samAccountName et non le UserPrincipalName, même si vous êtes connecté sur la machine avec l'UPN.
Maintenant que vous en savez un peu plus sur le samAccountName, passons au UserPrincipalName.
IV. L'attribut UserPrincipalName
La syntaxe pour se connecter en utilisant le UserPrincipalName est différente par rapport au samAccountName. Ici, on utilisera un identifiant suivi du nom de domaine. Par exemple, pour le domaine "it-connect.fr" et l'utilisateur "florian", on se connectera avec l'identifiant suivant : [email protected].
La partie identifiant du samAccountName et de l'UPN peut être différente à chaque fois, ça pourrait être "florian" pour le samAccountName et "florian.burnel" pour l'UPN. Il s'agit bien de deux attributs distincts dans l'annuaire donc deux champs différents.
Quelques précisions :
- L'attribut UserPrincipalName du fait qu'il intègre le domaine peut être identique à l'adresse e-mail de l'utilisateur, ce qui est pratique : un seul identifiant à retenir. Si votre domaine utilise une extension non routable telle que ".local" et que vous souhaitez unifier avec le domaine de messagerie de votre entreprise, c'est envisageable en créant un alias UPN.
- Comme le samAccountName, il doit être unique au niveau du domaine (pour les objets).
- Le format de cet identifiant respecte le standard RFC 822
- Il n'y a pas la limitation de 20 caractères
- L'attribut UserPrincipalName est facultatif, contrairement au samAccountName - Je vous recommande de le renseigner.
Lorsque vous créez un utilisateur dans l'Active Directory, ces deux valeurs doivent être définies, elles correspondent aux champs suivants :
Il est bien entendu possible de modifier ces valeurs par la suite, en accédant aux propriétés d'un utilisateur. Sur une machine où l'on est connecté avec un compte du domaine, si l'on affiche les variables d'environnements (avec la commande "set" en cmd / commande "gci env:" en PowerShell), vous verrez que c'est bien le SamAccountName de l'utilisateur qui est affecté à la variable "USERNAME" :
Suite à ces explications, j'espère que vous y voyez plus clair entre le SamAccountName et le UserPrincipalName.
Salut Florian,
Connais-tu un script pour changer uniquement les suffixes UPN sans modifier le SamAccountName.
En gros je ne veux pas changer les logon sur Windows, uniquement l’UPN et son suffix (sa j’ai trouvé).
Mais rien a faire pour trouver un script qui fait une passe pour la modification de la rangée du haut en ommettant la rangée du bas.
Merci d’avance pour ton aide.