Jetons restreints
Un jeton restreint est un jeton d’accès principal ou d’emprunt d’identité qui a été modifié par la fonction CreateRestrictedToken . Un processus ou l’emprunt de l’identité d’un thread qui s’exécute dans le contexte de sécurité d’un jeton restreint est limité dans sa capacité à accéder aux objets sécurisables ou à effectuer des opérations privilégiées. La fonction CreateRestrictedToken peut restreindre un jeton des manières suivantes :
- Supprimez les privilèges du jeton.
- Appliquez l’attribut de refus uniquement aux sid dans le jeton afin qu’ils ne puissent pas être utilisés pour accéder aux objets sécurisés. Pour plus d’informations sur l’attribut de refus uniquement, consultez attributs SID dans un jeton d’accès.
- Spécifiez une liste de SID de restriction, qui peut limiter l’accès aux objets sécurisables.
Le système utilise la liste des SID restreints lorsqu’il vérifie l’accès du jeton à un objet sécurisable. Quand un processus ou un thread restreint tente d’accéder à un objet sécurisable, le système effectue deux vérifications d’accès : une utilisant les SID activés du jeton et une autre à l’aide de la liste des SID de restriction. L’accès est accordé uniquement si les deux contrôles d’accès autorisent les droits d’accès demandés. Pour plus d’informations sur les contrôles d’accès, consultez Comment les DACL contrôlent l’accès à un objet.
Vous pouvez utiliser un jeton principal restreint dans un appel à la fonction CreateProcessAsUser . en règle générale, le processus qui appelle CreateProcessAsUser doit avoir le _ privilège SE ASSIGNPRIMARYTOKEN _ NAME, qui est généralement détenu uniquement par le code système ou par les services s’exécutant dans le compte LocalSystem. Toutefois, si l’appel de CreateProcessAsUser spécifie une version limitée du jeton principal de l’appelant, ce privilège n’est pas requis. Cela permet aux applications ordinaires de créer des processus restreints.
Vous pouvez également utiliser un jeton principal ou d' emprunt d’identité restreint dans la fonction ImpersonateLoggedOnUser .
Pour déterminer si un jeton a une liste de sid restreints, appelez la fonction IsTokenRestricted .
Notes
Les applications qui utilisent des jetons restreints doivent exécuter l’application restreinte sur des ordinateurs de bureau autres que le bureau par défaut. Cela est nécessaire pour empêcher une attaque par une application restreinte, à l’aide de SendMessage ou PostMessage, à des applications non restreintes sur le bureau par défaut. Si nécessaire, basculez entre les ordinateurs de bureau à des fins d’application.