偽装レベル定数

偽装レベルを指定します。これは、クライアントを偽装するときにサーバーに与えられる権限の量を示します。

定数/値 説明
RPC_C_IMP_LEVEL_DEFAULT
0
DCOM は、通常のセキュリティ ブランケット ネゴシエーション アルゴリズムを使用して、偽装レベルを選択できます。 詳細については、「 セキュリティ ブランケット ネゴシエーション」を参照してください。
RPC_C_IMP_LEVEL_ANONYMOUS
1
クライアントはサーバーに対して匿名です。 サーバー プロセスはクライアントを偽装できますが、偽装トークンには情報が含まれていないので、使用できません。
RPC_C_IMP_LEVEL_IDENTIFY
2
サーバーはクライアントの ID を取得できます。 サーバーは ACL チェックのためにクライアントを偽装できますが、システム オブジェクトにクライアントとしてアクセスできません。
RPC_C_IMP_LEVEL_IMPERSONATE
3
サーバー プロセスは、クライアントの代わりに動作しながら、クライアントのセキュリティ コンテキストを偽装できます。 このレベルの偽装は、ファイルなどのローカル リソースのアクセスに使用できます。 このレベルで偽装する場合、偽装トークンは 1 つのマシン境界を越えてのみ渡すことができます。 Schannel 認証サービスでは、このレベルの偽装のみがサポートされます。
RPC_C_IMP_LEVEL_DELEGATE
4
サーバー プロセスは、クライアントの代わりに動作しながら、クライアントのセキュリティ コンテキストを偽装できます。 サーバー プロセスでは、クローキングを使用して、クライアントの代理として動作しながら、他のサーバーに発信呼び出しを行うこともできます。 サーバーは、他のマシン上のクライアントのセキュリティ コンテキストを使用して、クライアントとしてローカル リソースとリモート リソースにアクセスできます。 このレベルで偽装する場合、偽装トークンは任意の数のコンピューター境界を越えて渡すことができます。

注釈

GetUserName は、識別レベルでの偽装中に失敗します。 回避策は、偽装、 OpenThreadToken の呼び出し、元に戻す、 GetTokenInformation の呼び出し、最後に LookupAccountSid の呼び出しです。 CoSetProxyBlanket を使用して、クライアントは偽装レベルを設定します

CoSetProxyBlanket を使用して、クライアントは、サーバーが CoImpersonateClient を呼び出すときに使用できる偽装レベルとプロキシ ID を設定します。 偽装が行われるときにサーバーに表示される ID については、「 クローキング」を参照してください。 偽装中に呼び出しを行うと、呼び出し先は通常、呼び出し元の偽装トークンではなく、呼び出し元のプロセス トークンを受け取ることに注意してください。 呼び出し元の偽装トークンを受信するには、呼び出し元がクローキングを有効にする必要があります。

要件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
RpcDce.h

こちらもご覧ください

クローキング