Ügyfél megszemélyesítése (engedélyezés)
megszemélyesítési az a képesség, hogy egy szál más biztonsági információval hajtható végre, mint a szálat birtokoló folyamat. A kiszolgálóalkalmazások szálai általában egy ügyfelet személyesítenek meg. Ez lehetővé teszi, hogy a kiszolgáló szála az ügyfél nevében eljárva hozzáférjen a kiszolgálón lévő objektumokhoz, vagy ellenőrizze az ügyfél saját objektumaihoz való hozzáférést.
A Microsoft Windows API a következő függvényeket biztosítja a megszemélyesítés megkezdéséhez:
- A DDE-kiszolgálóalkalmazás meghívhatja a DdeImpersonateClient függvényt az ügyfél megszemélyesítéséhez.
- A névvel ellátott csőkiszolgáló meghívhatja a ImpersonateNamedPipeClient függvényt.
- Meghívhatja a ImpersonateLoggedOnUser függvényt, hogy megszemélyesítse a bejelentkezett felhasználó hozzáférési jogkivonatának biztonsági környezetét.
- A Megszemélyesítéssel függvénnyel a szál másolatot készíthet saját hozzáférési jogkivonatáról. Ez akkor hasznos, ha egy alkalmazásnak egyetlen szál biztonsági környezetét kell módosítania. Előfordulhat például, hogy egy folyamatnak csak egy szálának kell engedélyeznie egy jogosultságot.
- Meghívhatja a SetThreadToken függvényt, hogy a célszál egy megadott megszemélyesítési jogkivonat biztonsági környezetében fusson.
- A Microsoft Remote Procedure Call (RPC) kiszolgálóalkalmazás meghívhatja a RpcImpersonateClient függvényt az ügyfél megszemélyesítéséhez.
- Egy biztonsági csomag vagy alkalmazáskiszolgáló meghívhatja a ImpersonateSecurityContext függvényt az ügyfél megszemélyesítéséhez.
A megszemélyesítések többsége esetén a megszemélyesítő szál visszaválthat a saját biztonsági környezetére a RevertToSelf függvény meghívásával. Kivételt képez az RPC-megszemélyesítés, amelyben az RPC-kiszolgálóalkalmazás meghívja RpcRevertToSelf vagy RpcRevertToSelfEx, hogy visszatérjen a saját biztonsági környezetéhez.
Megjegyzés: Ha megszemélyesít egy felhasználót egy Win32-szolgáltatásból, és felhasználói környezeti változókra támaszkodó API-kat hív, előfordulhat, hogy a megszemélyesítés előtt meg kell hívnia RegDisablePredefinedCache.