次の方法で共有


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 プレフィックスが等しい場合は RtlEqualPrefixSidTRUE を返し、それ以外の場合は 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

こちらもご覧ください

RtlCopySid

RtlEqualSid

RtlValidSid

SID