EqualPrefixSid 関数 (securitybaseapi.h)

EqualPrefixSid 関数は、2 つのセキュリティ識別子 (SID) プレフィックス値の等価性をテストします。 SID プレフィックスは、最後のサブ認証値を除く SID 全体です。

構文

BOOL EqualPrefixSid(
  [in] PSID pSid1,
  [in] PSID pSid2
);

パラメーター

[in] pSid1

比較する最初の SID 構造体へのポインター。 この構造体は有効であると見なされます。

[in] pSid2

比較する 2 番目の SID 構造体へのポインター。 この構造体は有効であると見なされます。

戻り値

SID プレフィックスが等しい場合、戻り値は 0 以外です。

SID プレフィックスが等しくない場合、戻り値は 0 になります。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

EqualPrefixSid 関数を使用すると、あるドメイン内のサーバー アプリケーションで、ユーザーが別のドメインにログオンしようとする試みを確認できます。 たとえば、ユーザーが LocalDomain のワークステーションから RemoteDomain にログオンしようとすると、LocalDomain のサーバーは、ユーザーとユーザーのグループの SID を RemoteDomain から要求できます。 RemoteDomain のドメイン コントローラーは、関連する SID で応答します。

指定したドメインの SID はすべて同じプレフィックスを持っています。 サーバーがユーザーの SID を受信すると、サーバーは SID ごとに EqualPrefixSid 関数を呼び出し、ユーザーまたはグループ SID と RemoteDomain の SID を比較できます。 SID プレフィックスのいずれかが等しくない場合、サーバーはログオン試行を拒否します。

ドメインの SID は、グループまたはユーザー SID と比較する前に変更することをお勧めします。 RemoteDomain の SID が S-1–1234-8 の場合、そのドメインの各グループまたはユーザー SID には、プレフィックスとして S-1–1234-8 があります。 EqualPrefixSid 関数を使用して SID を比較するために、アプリケーションはドメイン SID をコピーし、サブ認証 (RID) 値をコピーに追加して、S-1-1234-8-0 という形式で SID を作成します。 その後、アプリケーションは、グループ SID とユーザー SID を比較するテンプレートとして、変更されたドメイン SID を使用します。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー securitybaseapi.h (Windows.h を含む)
Library Advapi32.lib
[DLL] Advapi32.dll

こちらもご覧ください

アクセス制御の概要

基本的なAccess Control関数

CopySid

EqualSid

IsValidSid

SID