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