Jetons d’accès
Un jeton d’accès est un objet qui décrit le contexte de sécurité d’un processus ou thread. Les informations d’un jeton incluent l’identité et les privilèges du compte d’utilisateur associé au processus ou au thread. Lorsqu’un utilisateur se connecte, le système vérifie le mot de passe de l’utilisateur en le comparant aux informations stockées dans une base de données de sécurité. Si le mot de passe est authentifié, le système produit un jeton d’accès. Chaque processus exécuté pour le compte de cet utilisateur a une copie de ce jeton d’accès.
Le système utilise un jeton d’accès pour identifier l’utilisateur lorsqu’un thread interagit avec un objet sécurisable ou tente d’effectuer une tâche système qui nécessite des privilèges. Les jetons d’accès contiennent les informations suivantes :
- Identificateur de sécurité (SID) du compte de l’utilisateur
- SID pour les groupes dont l’utilisateur est membre
- UN SID d’ouverture de session qui identifie la session de connexion actuelle
- Liste des privilèges détenus par l’utilisateur ou les groupes de l’utilisateur
- UN SID propriétaire
- SID du groupe principal
- La DACL par défaut utilisée par le système lorsque l’utilisateur crée un objet sécurisable sans spécifier de descripteur de sécurité
- Source du jeton d’accès
- Indique si le jeton est unprincipalou jeton d’emprunt d’identité
- Liste facultative de restriction des SID
- Niveaux d’emprunt d’identité actuels
- Autres statistiques
Chaque processus a un jeton principal qui décrit le contexte de sécurité du compte d’utilisateur associé au processus. Par défaut, le système utilise le jeton principal lorsqu’un thread du processus interagit avec un objet sécurisable. En outre, un thread peut emprunter l’identité d’un compte client. L’emprunt d’identité permet au thread d’interagir avec des objets sécurisables à l’aide du contexte de sécurité du client. Un thread qui emprunte l’identité d’un client a à la fois un jeton principal et un jeton d’emprunt d’identité .
Utilisez la fonction OpenProcessToken pour récupérer un handle vers le jeton principal d’un processus. Utilisez la fonction OpenThreadToken pour récupérer un handle au jeton d’emprunt d’identité d’un thread. Pour plus d’informations, consultez d’emprunt d’identité.
Vous pouvez utiliser les fonctions suivantes pour manipuler des jetons d’accès.
Fonction | Description |
---|---|
AdjustTokenGroups | Modifie les informations de groupe dans un jeton d’accès. |
AdjustTokenPrivileges | Active ou désactive les privilèges dans un jeton d’accès. Il n’accorde pas de nouveaux privilèges ou ne révoque pas les privilèges existants. |
CheckTokenMembership | Détermine si un SID spécifié est activé dans un jeton d’accès spécifié. |
createRestrictedToken | Crée un jeton qui est une version restreinte d’un jeton existant. Le jeton restreint peut avoir désactivé les SID, les privilèges supprimés et une liste de SID restreints. |
DuplicateToken | Crée un jeton d’emprunt d’identité qui duplique un jeton existant. |
duplicateTokenEx | Crée un jeton principal ou un jeton d’emprunt d’identité qui duplique un jeton existant. |
GetTokenInformation | Récupère des informations sur un jeton. |
IsTokenRestricted | Détermine si un jeton a une liste de restrictions des SID. |
OpenProcessToken | Récupère un handle vers le jeton d’accès principal pour un processus. |
OpenThreadToken | Récupère un handle vers le jeton d’accès d’emprunt d’identité d’un thread. |
SetThreadToken | Affecte ou supprime un jeton d’emprunt d’identité pour un thread. |
SetTokenInformation | Modifie le propriétaire d’un jeton, le groupe principal ou la liste DACL par défaut. |
Les fonctions de jeton d’accès utilisent les structures suivantes pour décrire les parties d’un jeton d’accès.
Structure | Description |
---|---|
TOKEN_CONTROL | Informations qui identifient un jeton d’accès. |
TOKEN_DEFAULT_DACL | DACL par défaut utilisée par le système dans les descripteurs de sécurité des nouveaux objets créés par un thread. |
TOKEN_GROUPS | Spécifie les SID et les attributs des SID de groupe dans un jeton d’accès. |
TOKEN_OWNER | SID de propriétaire par défaut pour les descripteurs de sécurité des nouveaux objets. |
TOKEN_PRIMARY_GROUP | SID de groupe principal par défaut pour les descripteurs de sécurité des nouveaux objets. |
TOKEN_PRIVILEGES | Privilèges associés à un jeton d’accès. Détermine également si les privilèges sont activés. |
TOKEN_SOURCE | Source d’un jeton d’accès. |
TOKEN_STATISTICS | Statistiques associées à un jeton d’accès. |
TOKEN_USER | SID de l’utilisateur associé à un jeton d’accès. |
Les fonctions de jeton d’accès utilisent les types d’énumération suivants.
Type d’énumération | Spécifie |
---|---|
TOKEN_INFORMATION_CLASS | Identifie le type d’informations définies ou récupérées à partir d’un jeton d’accès. |
TOKEN_TYPE | Identifie un jeton d’accès comme jeton principal ou d’emprunt d’identité. |