存取權杖中的 SID 屬性
存取權杖中的每個使用者和群組安全性識別碼 (SID) 都有一組屬性,可控制系統在存取檢查中使用 SID 的方式。 下表列出控制存取檢查的屬性。
屬性 | Description |
---|---|
SE_GROUP_ENABLED | 已啟用具有此屬性的 SID 以進行存取檢查。 當系統執行存取檢查時,它會檢查存取允許和拒絕存取 的存取控制專案 , (ACE) 套用至存取權杖中其中一個已啟用的 SID。 除非已設定SE_GROUP_USE_FOR_DENY_ONLY屬性,否則存取檢查期間會忽略不含此屬性的 SID。 |
SE_GROUP_USE_FOR_DENY_ONLY | 具有此屬性的 SID 是僅限拒絕的 SID。 當系統執行存取檢查時,它會檢查套用至 SID 的拒絕存取 ACE,但會忽略 SID 的存取允許 ACE。 如果已設定此屬性,則不會設定SE_GROUP_ENABLED屬性,而且無法重新啟用 SID。 |
若要設定或清除群組 SID 的 SE_GROUP_ENABLED 屬性,請使用 AdjustTokenGroups 函 式。 您無法停用具有 SE_GROUP_MANDATORY 屬性的群組 SID。 您無法使用 AdjustTokenGroups 來停用存取權杖的使用者 SID。
若要判斷權杖中是否啟用 SID,也就是是否具有 SE_GROUP_ENABLED 屬性,請呼叫 CheckTokenMembership 函式。
若要設定 SID 的SE_GROUP_USE_FOR_DENY_ONLY屬性,請在您呼叫 CreateRestrictedToken 函式時指定的僅限拒絕 SID 清單中包含 SID。 CreateRestrictedToken 可以將SE_GROUP_USE_FOR_DENY_ONLY屬性套用至任何 SID,包括具有 SE_GROUP_MANDATORY 屬性的使用者 SID 和群組 SID。 不過,您無法從 SID 移除僅限拒絕的屬性,也無法使用 AdjustTokenGroups 在僅限拒絕的 SID 上設定SE_GROUP_ENABLED屬性。
若要取得 SID 的屬性,請使用 TokenGroups 值呼叫 GetTokenInformation 函式。 函式會傳回 SID_AND_ATTRIBUTES 結構的陣列,以識別群組 SID 及其屬性。