Sdílet prostřednictvím


Omezené tokeny

Omezený token je primární nebo zosobnění přístupový token, který byl upraven funkcí CreateRestrictedToken. Proces nebo zosobnění vlákna spuštěného v kontextu zabezpečení omezeného tokenu je omezen ve své schopnosti přistupovat k zabezpečitelným objektům nebo provádět privilegované operace. Funkce CreateRestrictedToken může token omezit následujícími způsoby:

  • Odeberte z tokenu oprávnění .
  • Použijte atribut pouze pro odepření identifikátorů SID v tokenu, aby se nedá použít pro přístup k zabezpečeným objektům. Další informace o atributu jen pro odepření naleznete v tématu SID Atributy v přístupovém tokenu.
  • Zadejte seznam omezení identifikátorů SID, které můžou omezit přístup k zabezpečitelným objektům.

Systém používá seznam omezení identifikátorů SID při kontrole přístupu tokenu k zabezpečitelnému objektu. Když se omezený proces nebo vlákno pokusí získat přístup k zabezpečitelnému objektu, systém provede dvě kontroly přístupu: jednu pomocí identifikátorů SID s povoleným tokenem a druhou pomocí seznamu omezených identifikátorů SID. Přístup je udělen pouze v případě, že obě kontroly přístupu povolují požadovaná přístupová práva. Další informace o kontrolách přístupu najdete v tématu Jak seznamy DACLs řídí přístup k objektu.

Ve volání funkce CreateProcessAsUser můžete použít omezenýprimární token. Proces, který volá CreateProcessAsUser musí mít oprávnění SE_ASSIGNPRIMARYTOKEN_NAME, které se obvykle uchovává pouze systémovým kódem nebo službami spuštěnými v účtu LocalSystem. Pokud však volání CreateProcessAsUser určuje omezenou verzi primárního tokenu volajícího, toto oprávnění se nevyžaduje. To umožňuje běžným aplikacím vytvářet omezené procesy.

Můžete také použít omezený primární nebo token zosobnění ve funkci ImpersonateLoggedOnUser.

Pokud chcete zjistit, jestli má token seznam omezení identifikátorů SID, zavolejte funkci IsTokenRestricted.

Poznámka

Aplikace, které používají tokeny s omezeným přístupem, by měly aplikaci s omezeným přístupem spouštět na jiných desktopech než na výchozí ploše. To je nezbytné, aby se zabránilo útoku omezené aplikace pomocí SendMessage nebo PostMessage, k neomezeným aplikacím na výchozí ploše. V případě potřeby můžete přepínat mezi plochami pro účely vaší aplikace.