Attributs de sécurité utilisateur

Outre les propriétés de nommage pour les objets utilisateur, par exemple objectGUID, objectSid, cn, distinguishedName, etc., d’autres propriétés de sécurité sont 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 grand entier qui représente le nombre d’intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC). La valeur 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é, y compris le package d’authentification par clé publique et Kerberos, utilisent ces données pour authentifier les utilisateurs lorsqu’ils présentent une autre forme d’identification, telle que le certificat, le ticket Kerberos UNIX, etc. Créez 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 du sujet dans les certificats 509v3, émis par une autorité de certification publique externe, qui correspondent au compte d’utilisateur utilisé pour rechercher un compte pour l’authentification. Le package SSL (Schannel) utilise la syntaxe suivante : X509:<somecertinfotype>somecertinfo. 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 de l’objet «< S> » avec le nom de domaine « 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 «< I> » et «< S> » sont pris en charge. Le fait d’avoir uniquement «< I> » 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 à l’adresse 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 grand entier qui représente le nombre d’intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC). Cet attribut est conservé séparément sur chaque contrôleur de domaine du domaine. La valeur zéro signifie que l’heure du dernier mot de passe incorrect est inconnue. Pour obtenir une valeur précise pour la dernière heure de mot de passe incorrect de l’utilisateur dans le domaine, chaque contrôleur de domaine du domaine doit être interrogé et la valeur la plus élevée 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 conservé séparément sur chaque contrôleur de domaine du domaine. La valeur indique 0 que la valeur est inconnue. Pour obtenir une valeur précise pour le nombre total de tentatives 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 pour la langue choisie par l’utilisateur. Cette valeur n’est pas utilisée par Windows.

countryCode

L’attribut countryCode spécifie le code de pays/région de la langue de l’utilisateur. Cette valeur n’est pas utilisée par Windows.

homeDirectory

L’attribut homeDirectory spécifie le chemin 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 d’accès doit être un chemin d’accès UNC réseau de la forme \\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, homeDirectory doit être un chemin d’accès local, par exemple, C:\mylocaldir.

lastLogoff

Non répliqué. L’attribut lastLogoff spécifie le moment où la dernière déconnexion s’est produite. Cette valeur est stockée sous la forme d’un grand entier qui représente le nombre d’intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC). La partie haute de ce grand entier correspond au dwHighDateTime membre de la structure FILETIME et la partie basse correspond au dwLowDateTime membre de la FILETIME structure. Cet attribut est conservé séparément sur chaque contrôleur de domaine du domaine. La valeur zéro signifie que l’heure de la dernière déconnexion est inconnue. 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 valeur la plus élevée 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 grand entier qui représente le nombre d’intervalles de 100 nanosecondes depuis le 1er janvier 1601 (UTC). La partie haute de ce grand entier correspond au dwHighDateTime membre de la structure FILETIME et la partie basse correspond au dwLowDateTime membre de la FILETIME structure. Cet attribut est conservé séparément sur chaque contrôleur de domaine du domaine. La valeur zéro signifie que l’heure de la dernière ouverture de session 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 valeur la plus élevée doit être utilisée.

lmPwdHistory

L’attribut lmPwdHistory est l’historique des mots de passe de l’utilisateur au format OWF (LAN Manager) unidirectionnel (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 brut du formulaire OWF du mot de passe.

logonCount

Non répliqué. L’attribut logonCount compte le nombre de fois où l’utilisateur a tenté de se connecter à ce compte. Cet attribut est conservé sur chaque contrôleur de domaine du domaine. La valeur indique 0 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.

mail

L’attribut de messagerie est un attribut à valeur unique qui contient l’adresse SMTP de l’utilisateur, par exemple, jeff@Fabrikam.com.

maxStorage

L’attribut maxStorage spé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 tout 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, qui est 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é :

  • Sur 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 dans ce domaine ; toutefois, memberOf ne contient pas l’appartenance de l’utilisateur à des groupes locaux et globaux de domaine dans d’autres domaines.
  • Sur un serveur GC, memberOf pour l’utilisateur est complet par rapport à 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 que le groupe B et le groupe B ont été imbriqués dans le groupe A, l’attribut memberOf de l’utilisateur O répertorie le groupe C et le groupe B, mais pas le groupe A.

Cet attribut n’est pas stocké. Il s’agit d’un attribut de liaison arrière calculé.

ntPwdHistory

L’attribut ntPwdHistory est l’historique des mots de passe de l’utilisateur au format OWF (Windows NT). Windows utilise l’OWF Windows NT. 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.

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 de 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 ; au lieu de cela, définissez 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 le primaryGroupToken groupe Utilisateurs du domaine, mais le groupe Utilisateurs du domaine ne fait pas partie de l’attribut de memberOf 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 d’accès absolu local ou un chemin UNC.

pwdLastSet

L’attribut pwdLastSet spécifie quand le mot de passe a été modifié pour la dernière fois. Cette valeur est stockée sous la forme d’un grand entier 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 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 lors de la prochaine ouverture de session. La valeur -1 indique que l’utilisateur n’est pas tenu de modifier le mot de passe lors de la prochaine ouverture de session. 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. Ce paramètre est défini par le système d’exploitation lors de la création de l’objet.

scriptPath

L’attribut scriptPath spécifie le chemin d’accès du script d’ouverture de session de l’utilisateur, .cmd, .exe ou .bat fichier. 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 inversées transitives.

N’oubliez pas que cet attribut répertorie les groupes qui contiennent l’utilisateur dans son 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’utilisateur O est membre du groupe C et que le groupe B et le groupe B ont été imbriqués dans le groupe A, l’attribut tokenGroups de l’utilisateur O répertorie le groupe C, le groupe B et le groupe A.

L’attribut tokenGroups est un attribut utile pour obtenir une liste d’appartenances à un groupe 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 utilisant cette liste de SID pour obtenir l’attribut name de chaque groupe. Il évite d’avoir à effectuer plusieurs recherches pour développer l’attribut primaryGroupId et de 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 la méthode IADsUser.SetPassword , si votre script ou votre 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 le OWF Windows NT. 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.

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 pour 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.

Indicateur 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 obligatoire. 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.

Indicateur Description
UF_NORMAL_ACCOUNT Il s’agit d’un type de compte par défaut qui représente un utilisateur standard.
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 à tout 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/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’autorisation d’approbation pour un domaine Windows NT qui approuve d’autres domaines.

userCertificate

L’attribut userCertificate est 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 Microsoft Certificate Service.

userSharedFolder

L’attribut userSharedFolder spécifie un chemin d’accès UNC au dossier de documents partagés de l’utilisateur. Le chemin d’accès doit être un chemin UNC réseau de la forme \\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 à partir desquelles 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 ouvertures de session de toutes les stations de travail sur ce compte, définissez la valeur UF_ACCOUNTDISABLE (définie dans Lmaccess.h) dans l’attribut userAccountControl .