RtlEqualPrefixSid 関数 (ntifs.h)
RtlEqualPrefixSid ルーチンは、2 つのセキュリティ識別子 (SID) プレフィックスが等しいかどうかを判断します。 SID プレフィックスは、最後のサブ認証値を除く SID 全体です。
構文
NTSYSAPI BOOLEAN RtlEqualPrefixSid(
[in] PSID Sid1,
[in] PSID Sid2
);
パラメーター
[in] Sid1
比較する最初の SID 構造体へのポインター。 有効な SID をポイントする必要があります。
[in] Sid2
比較する 2 番目の SID 構造体へのポインター。 有効な SID をポイントする必要があります。
戻り値
SID プレフィックスが等しい場合は RtlEqualPrefixSid が TRUE を返し、それ以外の場合は FALSE を返します。 いずれかの SID 構造体が無効な場合、戻り値は未定義です。
注釈
RtlEqualPrefixSid を使用すると、あるドメイン内のサーバーで、ユーザーが別のドメインにログオンしようとする試みを確認できます。 たとえば、ユーザーが LocalDomain のワークステーションから RemoteDomain にログオンしようとすると、LocalDomain のサーバーは、ユーザーとユーザーのグループの SID を RemoteDomain から要求できます。 RemoteDomain のドメイン コントローラーは、関連する SID で応答します。
指定したドメインのすべての SID は、必ずしも同じプレフィックスを持っています。 サーバーは、ユーザーの SID を受信すると、各 SID に対して RtlEqualPrefixSid を呼び出し、ユーザーまたはグループ SID を RemoteDomain の SID と比較できます。 SID プレフィックスのいずれかが等しくない場合、サーバーはログオン試行を拒否します。
ドメインの SID は、グループまたはユーザー SID と比較する前に変更することをお勧めします。 RemoteDomain の SID が S-1-1234-8 の場合、そのドメインの各グループまたはユーザー SID のプレフィックスは S-1-1234-8 になります。 RtlEqualPrefixSid を使用して SID を比較するために、呼び出し元はドメイン SID をコピーし、サブ認証の相対識別子値をコピーに追加して、S-1-1234-8-0 という形式で SID を作成します。 (相対識別子 (RID) は、SID を発行した機関に関連してユーザーまたはグループを識別する SID の部分です)。その後、呼び出し元は、変更されたドメイン SID を、グループ SID とユーザー SID の比較対象となるテンプレートとして使用します。
セキュリティとアクセス制御の詳細については、 ドライバー開発者向けの Windows セキュリティ モデル と、Windows SDK のこれらのトピックに関するドキュメントを参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Ntifs.h を含む) |
Library | Ntdll.lib |
[DLL] | Ntdll.dll |
IRQL | <= APC_LEVEL |