アクセス トークンの SID 属性
アクセス トークン内の各ユーザーとグループ セキュリティ識別子 (SID) には、システムがアクセス チェックで SID を使用する方法を制御する一連の属性があります。 次の表に、アクセス チェックを制御する属性を示します。
属性 | 形容 |
---|---|
SE_GROUP_ENABLED | この属性を持つ SID は、アクセス チェックに対して有効になっています。 システムは、アクセス チェックを実行すると、アクセス トークン内の有効な SID のいずれかに適用されるアクセス許可およびアクセス拒否 アクセス制御エントリ (ACE) をチェックします。 この属性のない SID は、SE_GROUP_USE_FOR_DENY_ONLY属性が設定されていない限り、アクセス チェック中は無視されます。 |
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_MANDATORY属性を持つユーザー SID やグループ SID など、任意の SID にSE_GROUP_USE_FOR_DENY_ONLY属性を適用できます。 ただし、SID から拒否専用属性を削除することも、AdjustTokenGroups使用して拒否専用 SID にSE_GROUP_ENABLED属性を設定することもできません。
SID の属性を取得するには、TokenGroups 値を使用して GetTokenInformation 関数を呼び出します。 この関数は、グループ SID とその属性を識別する SID_AND_ATTRIBUTES 構造体の配列を返します。