Token con restrizioni
Un token con restrizioni è unprimarioo una rappresentazione token di accesso modificato dalla funzione CreateRestrictedToken. Un processo di o di rappresentazione di thread in esecuzione nel contesto di sicurezza di un token con restrizioni è limitato nella possibilità di accedere a oggetti a protezione diretta o di eseguire operazioni con privilegi. La funzione CreateRestrictedToken può limitare un token nei modi seguenti:
- Rimuovere privilegi dal token.
- Applicare l'attributo deny-only ai SID nel token in modo che non possano essere usati per accedere a oggetti protetti. Per altre informazioni sull'attributo deny-only, vedere attributi SID in un token di accesso.
- Specificare un elenco di SID che limitano l'accesso a oggetti a protezione diretta.
Il sistema usa l'elenco dei SID limitati quando controlla l'accesso del token a un oggetto a protezione diretta. Quando un processo o un thread con restrizioni tenta di accedere a un oggetto a protezione diretta, il sistema esegue due controlli di accesso: uno usando i SID abilitati del token e un altro usando l'elenco dei SID limitati. L'accesso viene concesso solo se entrambi i controlli di accesso consentono i diritti di accesso richiesti. Per altre informazioni sui controlli di accesso, vedere How DACLs Control Access to an Object.
È possibile usare un token primario limitato in una chiamata alla funzione CreateProcessAsUser. In genere, il processo che chiama CreateProcessAsUser deve avere il privilegio SE_ASSIGNPRIMARYTOKEN_NAME, in genere mantenuto solo dal codice di sistema o dai servizi in esecuzione nell'account LocalSystem. Tuttavia, se la chiamata CreateProcessAsUser specifica una versione limitata del token primario del chiamante, questo privilegio non è obbligatorio. Ciò consente alle applicazioni comuni di creare processi con restrizioni.
È anche possibile usare un token primario o di rappresentazione limitato nella funzione ImpersonateLoggedOnUser.
Per determinare se un token dispone di un elenco di SID limitati, chiamare la funzioneIsTokenRestricted.
Nota
Le applicazioni che usano token con restrizioni devono eseguire l'applicazione con restrizioni nei desktop diversi dal desktop predefinito. Ciò è necessario per impedire un attacco da parte di un'applicazione con restrizioni, usando SendMessage o PostMessage, per applicazioni senza restrizioni sul desktop predefinito. Se necessario, passare da un desktop all'altro ai fini dell'applicazione.