存取權杖

存取權杖是描述進程或執行緒安全性內容的物件。 權杖中的資訊包含與進程或執行緒相關聯之使用者帳戶的身分識別和許可權。 當使用者登入時,系統會將使用者的密碼與儲存在安全性資料庫中的資訊進行比較,以驗證使用者的密碼。 如果 密碼經過驗證,系統會產生存取權杖。 代表此使用者執行的每個進程都有此存取權杖的複本。

當執行緒與 安全性實體物件 互動或嘗試執行需要許可權的系統工作時,系統會使用存取權杖來識別使用者。 存取權杖包含下列資訊:

每個進程都有一 個主要權杖 ,描述與進程相關聯之使用者帳戶 的安全性內容 。 根據預設,當進程的執行緒與安全性實體物件互動時,系統會使用主要權杖。 此外,執行緒可以模擬用戶端帳戶。 模擬可讓執行緒使用用戶端的安全性內容與安全性實體物件互動。 模擬用戶端的執行緒同時具有主要權杖和 模擬權杖

使用 OpenProcessToken 函式擷取進程主要權杖的控制碼。 使用 OpenThreadToken 函式擷取執行緒模擬權杖的控制碼。 如需詳細資訊,請參閱 模擬

您可以使用下列函式來管理存取權杖。

函式 描述
AdjustTokenGroups 變更存取權杖中的群組資訊。
AdjustTokenPrivileges 啟用或停用存取權杖中的許可權。 它不會授與新的許可權或撤銷現有的許可權。
CheckTokenMembership 判斷指定的 SID 是否在指定的存取權杖中啟用。
CreateRestrictedToken 建立新的權杖,此權杖是現有權杖的限制版本。 受限制的權杖可以停用 SID、已刪除的許可權,以及受限制的 SID 清單。
DuplicateToken 建立複製現有權杖的新模擬權杖。
DuplicateTokenEx 建立複製現有權杖的新主要權杖或模擬權杖。
GetTokenInformation 擷取權杖的相關資訊。
IsTokenRestricted 判斷權杖是否有限制 SID 的清單。
OpenProcessToken 擷取進程主要存取權杖的控制碼。
OpenThreadToken 擷取執行緒之模擬存取權杖的控制碼。
SetThreadToken 指派或移除執行緒的模擬權杖。
SetTokenInformation 變更權杖的擁有者、主要群組或預設 DACL。

 

存取權杖函式會使用下列結構來描述存取權杖的部分。

結構 Description
TOKEN_CONTROL 識別存取權杖的資訊。
TOKEN_DEFAULT_DACL 系統線上程所建立之新物件的安全性描述項中使用的預設 DACL。
TOKEN_GROUPS 指定存取權杖中群組 SID 的 SID 和屬性。
TOKEN_OWNER 新物件之安全性描述項的預設擁有者 SID。
TOKEN_PRIMARY_GROUP 新物件之安全性描述項的預設主要群組 SID。
TOKEN_PRIVILEGES 與存取權杖相關聯的許可權。 也決定是否啟用許可權。
TOKEN_SOURCE 存取權杖的來源。
TOKEN_STATISTICS 與存取權杖相關聯的統計資料。
TOKEN_USER 與存取權杖相關聯的使用者 SID。

 

存取權杖函式會使用下列列舉型別。

列舉類型 指定
TOKEN_INFORMATION_CLASS 識別要設定或從存取權杖擷取的資訊類型。
TOKEN_TYPE 將存取權杖識別為主要或模擬權杖。