Funzione SeFilterToken (ntifs.h)
La routine SeFilterToken crea un nuovo token di accesso che rappresenta una versione con restrizioni di un token di accesso esistente.
Sintassi
NTSTATUS SeFilterToken(
[in] PACCESS_TOKEN ExistingToken,
[in] ULONG Flags,
[in, optional] PTOKEN_GROUPS SidsToDisable,
[in, optional] PTOKEN_PRIVILEGES PrivilegesToDelete,
[in, optional] PTOKEN_GROUPS RestrictedSids,
PACCESS_TOKEN *FilteredToken
);
Parametri
[in] ExistingToken
Puntatore a un token primario o di rappresentazione. Il token può anche essere un token con restrizioni. Questo token deve essere già aperto per l'accesso TOKEN_DUPLICATE. Questo puntatore può essere ottenuto da un handle di token esistente chiamando ObReferenceObjectByHandle, specificando TOKEN_DUPLICATE come tipo DesiredAccess .
[in] Flags
Specifica opzioni di privilegio aggiuntive. Questo parametro può essere zero o una combinazione dei valori seguenti.
Valore | Significato |
---|---|
DISABLE_MAX_PRIVILEGE | Disabilita tutti i privilegi nel nuovo token, ad eccezione di SE_CHANGE_NOTIFY_PRIVILEGE. Se questo valore viene specificato, il parametro PrivilegesToDelete viene ignorato. |
SANDBOX_INERT | Archivia il flag TOKEN_SANDBOX_INERT nel token. |
[in, optional] SidsToDisable
Puntatore a una struttura TOKEN_GROUPS contenente una matrice di strutture SID_AND_ATTRIBUTES che specificano i SID di sola negazione nel token con restrizioni. Il sistema usa un SID di sola negazione per negare l'accesso a un oggetto a protezione diretta. L'assenza di un SID di sola negazione non consente l'accesso.
La disabilitazione di un SID attiva SE_GROUP_USE_FOR_DENY_ONLY e disattiva SE_GROUP_ENABLED e SE_GROUP_ENABLED_BY_DEFAULT. Tutti gli altri attributi vengono ignorati.
Gli attributi di sola negazione si applicano a qualsiasi combinazione dei SID di un token esistente, inclusi i SID utente e i SID di gruppo con l'attributo SE_GROUP_MANDATORY. Per ottenere i SID associati al token esistente, chiamare SeQueryInformationToken con i flag TokenUser e TokenGroups. SeFilterToken ignora tutti i SID nella matrice che non vengono trovati anche nel token esistente.
SeFilterToken ignora i membri Attributes delle strutture SID_AND_ATTRIBUTES.
Questo parametro è facoltativo e può essere NULL.
[in, optional] PrivilegesToDelete
Puntatore a una struttura TOKEN_PRIVILEGES contenente una matrice di strutture LUID_AND_ATTRIBUTES che specificano i privilegi da eliminare nel token con restrizioni.
Per ottenere i privilegi mantenuti dal token esistente, chiamare SeQueryInformationToken con il flag TokenPrivileges. SeFilterToken ignora tutti i privilegi nella matrice che non sono contenuti nel token esistente.
SeFilterToken ignora i membri Attributes delle strutture LUID_AND_ATTRIBUTES.
Questo parametro è facoltativo e può essere NULL.
[in, optional] RestrictedSids
Puntatore a una struttura TOKEN_GROUPS contenente una matrice di strutture SID_AND_ATTRIBUTES che specificano un elenco di SID che limitano i SID per il nuovo token. Se il token esistente è un token con restrizioni, l'elenco di SID limitati per il nuovo token è l'intersezione di questa matrice e l'elenco di limitazione dei SID per il token esistente.
I membri Attributes delle strutture SID_AND_ATTRIBUTES devono essere zero. La limitazione dei SID è sempre abilitata per i controlli di accesso.
Questo parametro è facoltativo e può essere NULL.
FilteredToken
Puntatore a una variabile allocata dal chiamante che riceve l'indirizzo del nuovo token con restrizioni. Il nuovo token è lo stesso tipo, primario o rappresentazione, del token esistente.
Valore restituito
Se uno o più valori dei parametri non sono validi, SeFilterToken restituisce STATUS_INVALID_PARAMETER. Questo valore viene restituito se il token di destinazione non è un token di rappresentazione. In caso contrario, SeFilterToken restituisce STATUS_SUCCESS.
Commenti
SeFilterToken può limitare il token nei modi seguenti:
Applicare l'attributo di sola negazione 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 nella documentazione di Microsoft Windows SDK.
Rimuovere i privilegi dal token.
Specificare un elenco di SID di limitazione, che il sistema usa quando controlla l'accesso del token 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 di limitazione. L'accesso viene concesso solo se entrambi i controlli di accesso consentono i diritti di accesso richiesti.
Il token con restrizioni può essere usato insieme a SeCreateClientSecurity e SeImpersonateClientEx per creare un processo con diritti di accesso e privilegi limitati.
Per altre informazioni sulla sicurezza e sul controllo di accesso, vedere Modello di sicurezza di Windows per sviluppatori di driver e la documentazione su questi argomenti in Windows SDK.
Quando il token restituito in NewToken non è più necessario, liberarlo chiamando ObDereferenceObject.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP |
Piattaforma di destinazione | Universale |
Intestazione | ntifs.h (include Ntifs.h) |
Libreria | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | < DISPATCH_LEVEL |