Attributs de sécurité utilisateur
Outre les propriétés de nommage des objets utilisateur, par exemple, objectGUID, objectSid, cn, distinguishedName, et ainsi de suite, il existe d’autres propriétés de sécurité utilisées pour l’ouverture de session, l’accès réseau et le contrôle d’accès. Ces propriétés sont utilisées par le système de sécurité Windows et peuvent être consultées et gérées par le composant logiciel enfichable utilisateur et ordinateurs Active Directory.
accountExpires
L’attribut accountExpires spécifie quand un compte expire. Cette valeur est stockée sous la forme d’un entier volumineux qui représente le nombre d’intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC). Une valeur de TIMEQ_FOREVER (définie dans Lmaccess.h) indique qu’un compte n’expire jamais.
altSecurityIdentities
L’attribut altSecurityIdentities est un attribut à valeurs multiples qui contient des mappages pour des certificats X.509 ou des comptes d’utilisateur Kerberos externes à cet utilisateur à des fins d’authentification. Différents packages de sécurité, notamment le package d’authentification par clé publique et Kerberos, utilisent ces données pour authentifier les utilisateurs lorsqu’ils présentent l’autre forme d’identification, comme le certificat, le ticket Kerberos UNIX, etc. Générez un jeton Windows 2000 basé sur le compte d’utilisateur correspondant afin qu’il puisse accéder aux ressources système.
Pour les certificats X.509, les valeurs doivent être les noms de l’émetteur et de l’objet dans les certificats 509v3, émis par une autorité de certification publique externe, qui correspondent au compte d’utilisateur utilisé pour rechercher un compte d’authentification. Le package SSL (Schannel) utilise la syntaxe suivante : X509 :<somecertinfotype>somecertinfoinfo. Par exemple, la valeur suivante spécifie le DN de l’émetteur «<I>» avec le DN « C=US,O=InternetCA,CN=APublicCertificateAuthority » et le DN «<S>» avec le DN « C=US,O=Fabrikam,OU=Sales,CN=Jeff Smith ».
X509:<I>C=US,O=InternetCA,CN=APublicCertificateAuthority<S>C=US,O=Fabrikam,OU=Sales,CN=Jeff Smith
N’oubliez pas que «<S>» ou «<je>» et «<S>» sont pris en charge. Avoir seulement «<je>» n’est pas pris en charge. Les applications ne doivent pas modifier les valeurs dans «<I>» ou «<S>», car la correspondance DN partielle n’est pas prise en charge.
Pour les comptes Kerberos externes, les valeurs doivent être le nom du compte Kerberos. Le package Kerberos utilise la syntaxe suivante : Kerberos:MITaccountname
. Par exemple, voici la valeur d’un compte à Fabrikam.com
:
Kerberos:Jeff.Smith@Fabrikam.com
badPasswordTime
Non répliqué. L’attribut badPasswordTime spécifie la dernière fois que l’utilisateur a tenté de se connecter au compte à l’aide d’un mot de passe incorrect. Cette valeur est stockée sous la forme d’un entier volumineux qui représente le nombre d’intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC). Cet attribut est géré séparément sur chaque contrôleur de domaine du domaine. La valeur zéro signifie que la dernière heure de mot de passe incorrecte est inconnue. Pour obtenir une valeur précise pour la dernière heure de mot de passe incorrecte de l’utilisateur dans le domaine, chaque contrôleur de domaine du domaine doit être interrogé et la plus grande valeur doit être utilisée.
badPwdCount
Non répliqué. L’attribut badPwdCount spécifie le nombre de fois où l’utilisateur a tenté de se connecter au compte à l’aide d’un mot de passe incorrect. Cet attribut est géré séparément sur chaque contrôleur de domaine du domaine. Une valeur de 0
indique que la valeur est inconnue. Pour obtenir une valeur précise pour les tentatives totales de mot de passe incorrectes de l’utilisateur dans le domaine, chaque contrôleur de domaine du domaine doit être interrogé et la somme des valeurs doit être utilisée.
codePage
L’attribut codePage spécifie la page de codes de la langue choisie par l’utilisateur. Cette valeur n’est pas utilisée par Windows.
countryCode
L’attribut countryCode spécifie le code pays/région pour la langue de l’utilisateur. Cette valeur n’est pas utilisée par Windows.
homeDirectory
L’attribut homeDirectory spécifie le chemin d’accès du répertoire de base de l’utilisateur. La chaîne peut être null.
Si homeDrive est défini et spécifie une lettre de lecteur, homeDirectory doit être un chemin UNC. Le chemin doit être un chemin UNC réseau du formulaire \\server\share\directory. Cette valeur peut être une chaîne Null.
Si homeDrive n’est pas défini, homeDirectory doit être un chemin local, par exemple, C :\mylocaldir.
homeDrive
L’attribut homeDrive spécifie la lettre de lecteur à laquelle mapper le chemin UNC spécifié par homeDirectory
. La lettre de lecteur doit être spécifiée sous la forme suivante :
<drive letter>:
où «<lettre de lecteur>» est la lettre du lecteur à mapper. Par exemple:
Z:
Si cet attribut n’est pas défini, le homeDirectory doit être un chemin local, par exemple, C :\mylocaldir.
lastLogoff
Non répliqué. L’attribut lastLogoff spécifie quand la dernière déconnexion s’est produite. Cette valeur est stockée sous la forme d’un entier volumineux qui représente le nombre d’intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC). La partie élevée de cet entier volumineux correspond au membre dwHighDateTime
de la structureFILETIMEet la partie basse correspond au membre dwLowDateTime
de la structure FILETIME
. Cet attribut est géré séparément sur chaque contrôleur de domaine du domaine. La valeur zéro signifie que le dernier délai de déconnexion est inconnu. Pour obtenir une valeur précise pour la dernière déconnexion de l’utilisateur dans le domaine, chaque contrôleur de domaine du domaine doit être interrogé et la plus grande valeur doit être utilisée.
lastLogon
Non répliqué. L’attribut lastLogon spécifie quand la dernière ouverture de session s’est produite. Cette valeur est stockée sous la forme d’un entier volumineux qui représente le nombre d’intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC). La partie élevée de cet entier volumineux correspond au membre dwHighDateTime
de la structureFILETIMEet la partie basse correspond au membre dwLowDateTime
de la structure FILETIME
. Cet attribut est géré séparément sur chaque contrôleur de domaine du domaine. La valeur zéro signifie que la dernière heure de connexion est inconnue. Pour obtenir une valeur précise pour la dernière ouverture de session de l’utilisateur dans le domaine, chaque contrôleur de domaine du domaine doit être interrogé et la plus grande valeur doit être utilisée.
lmPwdHistory
L’attribut lmPwdHistory est l’historique des mots de passe de l’utilisateur au format unidirectionnel (OWF) du Gestionnaire de réseau local (LM). L’OWF LM est utilisé pour la compatibilité avec les clients LAN Manager 2.x, Windows 95 et Windows 98. Cet attribut est utilisé uniquement par le système d’exploitation. N’oubliez pas que vous ne pouvez pas dériver le mot de passe en texte clair du formulaire OWF du mot de passe.
logonCount
Non répliqué. L’attribut logonCount compte le nombre de fois où l’utilisateur a essayé de se connecter à ce compte. Cet attribut est conservé sur chaque contrôleur de domaine du domaine. Une valeur de 0
indique que la valeur est inconnue. Pour obtenir une valeur précise pour le nombre total de tentatives d’ouverture de session réussies de l’utilisateur dans le domaine, chaque contrôleur de domaine du domaine doit être interrogé et la somme des valeurs doit être utilisée.
courrier
L’attribut dede messagerieest un attribut à valeur unique qui contient l’adresse SMTP de l’utilisateur, par exemple jeff@Fabrikam.com
.
maxStorage
L’attributmaxStoragespécifie la quantité maximale d’espace disque dur que l’utilisateur peut utiliser. Utilisez la valeur USER_MAXSTORAGE_UNLIMITED (définie dans Lmaccess.h) pour utiliser l’espace disque disponible.
memberOf
L’attribut memberOf est un attribut à valeurs multiples qui contient des groupes dont l’utilisateur est un membre direct, à l’exception du groupe principal, représenté par le primaryGroupId. L’appartenance au groupe dépend du contrôleur de domaine (DC) à partir duquel cet attribut est récupéré :
- Dans un contrôleur de domaine pour le domaine qui contient l’utilisateur, memberOf pour l’utilisateur est complet en ce qui concerne l’appartenance aux groupes de ce domaine ; toutefois,
memberOf
ne contient pas l’appartenance de l’utilisateur dans des groupes locaux et globaux de domaine dans d’autres domaines. - Sur un serveur GC, memberOf pour l’utilisateur est complet en ce qui concerne toutes les appartenances aux groupes universels.
Si les deux conditions sont vraies pour le contrôleur de domaine, les deux jeux de données sont contenus dans memberOf.
N’oubliez pas que cet attribut répertorie les groupes qui contiennent l’utilisateur dans leur attribut membre. Il ne contient pas la liste récursive des prédécesseurs imbriqués. Par exemple, si l’utilisateur O est membre du groupe C et du groupe B et que le groupe B ont été imbriqués dans le groupe A, l’attribut memberOf de l’O utilisateur liste le groupe C et le groupe B, mais pas le groupe A.
Cet attribut n’est pas stocké : il s’agit d’un attribut back-link calculé.
ntPwdHistory
L’attribut ntPwdHistory est l’historique des mots de passe de l’utilisateur au format unidirectionnel Windows NT (OWF). Windows utilise windows NT OWF. Cet attribut est utilisé uniquement par le système d’exploitation. N’oubliez pas que vous ne pouvez pas dériver le mot de passe en texte clair à partir du formulaire OWF du mot de passe.
otherMailbox
L’attribut otherMailbox est un attribut à valeurs multiples qui contient d’autres adresses de messagerie supplémentaires dans un formulaire, par exemple CCMAIL: JeffSmith
.
PasswordExpirationDate
La date d’expiration du mot de passe n’est pas un attribut sur l’objet utilisateur. Il s’agit d’une valeur calculée basée sur la somme de pwdLastSet pour l’utilisateur et maxPwdAge du domaine de l’utilisateur. Pour obtenir la date d’expiration du mot de passe, obtenez la propriété IADsUser.PasswordExpirationDate. Vous ne pouvez pas modifier cet attribut pour un utilisateur ; définissez plutôt la propriété IADsDomain.MaxPasswordAge pour modifier le paramètre du domaine.
primaryGroupId
L’attribut primaryGroupId est un attribut à valeur unique qui contient le primaryGroupToken du groupe qui est le groupe principal de l’objet. Le groupe principal de l’objet n’est pas inclus dans l’attribut memberOf. Par exemple, par défaut, le groupe principal d’un objet utilisateur est l'primaryGroupToken
du groupe Utilisateurs du domaine, mais le groupe Utilisateurs du domaine ne fait pas partie de l’attribut memberOf
de l’objet utilisateur.
profilePath
L’attribut profilePath spécifie un chemin d’accès au profil de l’utilisateur. Cette valeur peut être une chaîne Null, un chemin absolu local ou un chemin UNC.
pwdLastSet
L’attributpwdLastSetspécifie quand le mot de passe a été modifié pour la dernière fois. Cette valeur est stockée sous la forme d’un entier volumineux qui représente le nombre d’intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC).
Le système utilise la valeur de cet attribut et l’attribut maxPwdAge du domaine qui contient l’objet utilisateur pour calculer la date d’expiration du mot de passe. Autrement dit, la somme de pwdLastSet pour l’utilisateur et la maxPwdAge
du domaine de l’utilisateur.
Cet attribut contrôle si l’utilisateur doit modifier le mot de passe lorsque l’utilisateur se connecte ensuite. Si pwdLastSet est égal à zéro, la valeur par défaut, l’utilisateur doit modifier le mot de passe à l’ouverture de session suivante. La valeur -1
indique que l’utilisateur n’est pas obligé de modifier le mot de passe lors de l’ouverture de session suivante. Le système définit cette valeur sur -1
une fois que l’utilisateur a défini le mot de passe.
sAMAccountType
L’attribut sAMAccountType spécifie un entier qui représente le type de compte. Cela est défini par le système d’exploitation lors de la création de l’objet.
scriptPath
L’attributscriptPathspécifie le chemin d’accès du script d’ouverture de session de l’utilisateur, .cmd, .exeou fichier .bat. La chaîne peut être null.
tokenGroups
L’attribut tokenGroups est un attribut à valeurs multiples qui contient le SID de tous les groupes dont l’utilisateur est un membre direct et indirect, y compris pour le groupe principal. Cet attribut ne peut être récupéré que si un serveur de catalogue global (GC) est présent pour récupérer les appartenances inverses transitives.
N’oubliez pas que cet attribut répertorie les groupes qui contiennent l’utilisateur dans leur attribut membre, ainsi que les groupes qui contiennent ces groupes dans leur attribut membre, et ainsi de suite de manière récursive. Par exemple, si l’O utilisateur est membre du groupe C et du groupe B et que le groupe B ont été imbriqués dans le groupe A, les tokenGroups attribut d’O d’utilisateur répertorient le groupe C, le groupe B et le groupe A.
L’attribut tokenGroups est un attribut utile pour obtenir une liste d’appartenances aux groupes dans seulement deux requêtes LDAP : la première pour obtenir la liste des SID de groupe à partir de l’attribut tokenGroups de l’utilisateur, la deuxième à l’aide de cette liste de SID pour obtenir l’attribut de nom de chaque groupe. Il évite de devoir effectuer plusieurs recherches pour développer l’attribut primaryGroupId et développer de manière récursive l’attribut memberOf.
unicodePwd
L’attribut unicodePwd est le mot de passe de l’utilisateur.
Pour définir le mot de passe de l’utilisateur, utilisez la méthode IADsUser.ChangePassword, si votre script ou votre application permet à l’utilisateur de modifier son propre mot de passe, ou méthode IADsUser.SetPassword, si votre script ou application permet à un administrateur de réinitialiser un mot de passe.
Mot de passe de l’utilisateur au format unidirectionnel Windows NT (OWF). Windows utilise windows NT OWF. Cet attribut est utilisé uniquement par le système d’exploitation. N’oubliez pas que vous ne pouvez pas dériver le mot de passe en texte clair à partir du formulaire OWF du mot de passe.
userAccountControl
L’attribut userAccountControl spécifie des indicateurs qui contrôlent le mot de passe, le verrouillage, la désactivation/l’activation, le script et le comportement du répertoire de base de l’utilisateur. Cet attribut contient également un indicateur qui indique le type de compte de l’objet. L’objet utilisateur a généralement le UF_NORMAL_ACCOUNT défini.
Les indicateurs suivants sont définis dans Lmaccess.h.
Drapeau | Description |
---|---|
UF_SCRIPT | Script d’ouverture de session exécuté. Cette valeur doit être définie pour LAN Manager 2.0 ou Windows NT. |
UF_ACCOUNTDISABLE | Le compte d’utilisateur est désactivé. |
UF_HOMEDIR_REQUIRED | Le répertoire de base est requis. Cette valeur est ignorée dans Windows NT et Windows 2000. |
UF_PASSWD_NOTREQD | Aucun mot de passe n’est requis. |
UF_PASSWD_CANT_CHANGE | L’utilisateur ne peut pas modifier le mot de passe. |
UF_LOCKOUT | Le compte est actuellement verrouillé. Cette valeur peut être effacée pour déverrouiller un compte précédemment verrouillé. Cette valeur ne peut pas être utilisée pour verrouiller un compte précédemment verrouillé. |
UF_DONT_EXPIRE_PASSWD | Représente le mot de passe, qui ne doit jamais expirer sur le compte. |
Les indicateurs suivants décrivent le type de compte. Une seule valeur peut être définie. Vous ne pouvez pas modifier le type de compte.
Drapeau | Description |
---|---|
UF_NORMAL_ACCOUNT | Il s’agit d’un type de compte par défaut qui représente un utilisateur classique. |
UF_TEMP_DUPLICATE_ACCOUNT | Il s’agit d’un compte pour les utilisateurs dont le compte principal se trouve dans un autre domaine. Ce compte fournit à l’utilisateur l’accès à ce domaine, mais pas à un domaine qui approuve ce domaine. Le Gestionnaire d’utilisateurs fait référence à ce type de compte en tant que compte d’utilisateur local. |
UF_WORKSTATION_TRUST_ACCOUNT | Il s’agit d’un compte d’ordinateur pour une station de travail Windows NT Workstation/Windows 2000 Professionnel ou Windows NT Server/Windows 2000 Server qui est membre de ce domaine. |
UF_SERVER_TRUST_ACCOUNT | Il s’agit d’un compte d’ordinateur pour un contrôleur de domaine de sauvegarde Windows NT membre de ce domaine. |
UF_INTERDOMAIN_TRUST_ACCOUNT | Il s’agit d’un compte d’approbation pour un domaine Windows NT qui approuve d’autres domaines. |
userCertificate
L’attributuserCertificateest un attribut à valeurs multiples qui contient les certificats X509v3 codés en DER émis à l’utilisateur. N’oubliez pas que cet attribut contient les certificats de clé publique émis à cet utilisateur par le service de certificats Microsoft.
userSharedFolder
L’attribut userSharedFolder spécifie un chemin UNC vers le dossier de documents partagés de l’utilisateur. Le chemin doit être un chemin UNC réseau du formulaire \\server\share\directory. Cette valeur peut être une chaîne Null.
userWorkstations
L’attribut userWorkstations est un attribut à valeur unique qui contient les noms NetBIOS des stations de travail auxquelles l’utilisateur peut se connecter. Chaque nom NetBIOS est séparé par une virgule.
Si aucune valeur n’est définie, cela indique qu’il n’existe aucune restriction. Pour désactiver les connexions de toutes les stations de travail sur ce compte, définissez la valeur UF_ACCOUNTDISABLE (définie dans Lmaccess.h) dans attribut userAccountControl.