AppIDFlags

COM サーバーのアクティブ化動作を制御するフラグのセット。

レジストリ エントリ

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID
   {AppID_GUID}
      AppIDFlags = flags

解説

これは REG_DWORD 値です。

フラグ値 常時
0x1 APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP
0x2 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND
0x4 APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY

 

APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOPの説明

AppIDFlagsAPPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP フラグがクリアされている場合、または AppIDFlags が存在しない場合、対話型ユーザー COM サーバーのアクティブ化要求を行うターミナル サーバー セッションのクライアントは、アクティブ化要求のセッションの "winsta0" ウィンドウ ステーションの "既定" デスクトップにある COM サーバーにバインドするか、起動してバインドします。 たとえば、クライアントがセッション 3 の "winsta0\desktop1" を実行している場合、セッション 3 のアクティブ化要求は、セッション 3 の "winsta0\default" の COM サーバーにバインドするか、起動してバインドします。これは、COM サーバーのインスタンスがセッション 3 の "winsta0\desktop1" で既に実行されている場合でも同様です。

APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP フラグが AppIDFlags 値に設定されている場合、COM はクライアントのデスクトップで実行されているサーバー プロセスとアクティブ化要求のセッションにバインドするか、起動してバインドします。 たとえば、クライアントがセッション 3 で "winsta0\desktop1" を実行している場合、セッション 3 のアクティブ化要求は、セッション 3 で COM サーバーのインスタンスが既に "winsta0\default" で実行されている場合でも、セッション 3 の "winsta0\desktop1" の COM サーバーにバインドするか、起動してバインドします。

クライアントは 、セッション モニカー を使用して、アクティブ化要求を行うときにクライアントのセッションとは異なるセッションを指定できます。

APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP フラグは、RunAs "対話型ユーザー" に構成されている COM サーバーにのみ適用されます。

APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BINDの説明

AppIDFlagsAPPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND フラグが設定されている場合、RunAs "Activator" に構成されている COM サーバーは、プロセス トークンの LogonID SID へのPROCESS_ALL_ACCESSを許可するプロセス セキュリティ記述子を使用して起動されます。 さらに、セキュリティ記述子の所有者は、プロセス トークンの LogonID SID に設定されます。

APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND フラグが AppIDFlags で設定されている場合、RunAs "This User" に構成されている COM サーバーは、プロセス トークンの LogonID SID でPROCESS_ALL_ACCESSできるプロセス セキュリティ記述子を使用して起動されます。 さらに、セキュリティ記述子の所有者は、プロセス トークンの LogonID SID に設定されます。 さらに、COM サービス コントロール マネージャー (SCM) は、COM サーバー プロセスのトークンを次のように変更します。

  • トークンに APPID SID を追加します。 トークンの既定の随意アクセス制御リスト (DACL) で APPID SID にフル アクセス権を付与します。 Windows Vista 以降のバージョンのWindowsでは、トークンの既定の DACL で OwnerRights SID READ_CONTROLアクセス許可が付与されます。 Windows Vista バージョンのWindowsでは、トークン所有者を APPID SID に設定します。

APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND フラグを使用する場合は、次のセキュリティに関する考慮事項を考慮する必要があります。

  • APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND フラグは、組み込みのサービス セキュリティ コンテキストのいずれかで起動される COM サーバーによって設定されます。NetworkService アカウントまたは LocalService アカウントのいずれか。 サーバーが特権クライアントを偽装し、 APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND フラグが設定されていない場合、同じセキュリティ コンテキストを持つ他のプロセスで実行されている悪意のあるコードは、COM サーバー プロセスから特権クライアントの偽装トークンをハイジャックすることによって特権を昇格できます。
  • APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND フラグを設定すると、RUNAs "Activator" COM サーバーの場合、COM はプロセス オブジェクトのセキュリティ記述子を強化します。 このようなサーバーの場合、COM クライアントは、COM のアクティブ化に使用するトークンを強化することが期待されます。
  • APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND フラグが設定されている場合、COM は RunAs "This User" COM サーバーの場合にプロセス オブジェクトのセキュリティ記述子を強化します。 また、COM SCM はトークンを作成するエンティティであるため、COM サーバーのプロセス トークンも強化されます。

APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND フラグは、MSRC8322 パッチ (セキュリティ情報 MS09-012) が適用されている場合にのみ、Windows XP、Windows Server 2003、Windows Vista、および Windows Server 2008 でサポートされます。 これは、Windows 7 以降のバージョンのWindowsでネイティブにサポートされています。

APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND フラグは、RunAs "Activator" または "This User" に構成されている COM サーバーにのみ適用されます。 NT サービスである COM サーバーには適用されません。

APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFYの説明

APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY フラグが AppIDFlags で設定されている場合、COM SCM は、RPC_C_IMP_LEVEL_IDENTIFYの偽装レベルを使用して COM サーバー プロセスにオブジェクトのアクティブ化要求を発行します。

APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY フラグが設定されていない場合、COM SCM は、RPC_C_IMP_LEVEL_IMPERSONATEの偽装レベルを使用して COM サーバー プロセスにオブジェクトのアクティブ化要求を発行します。

APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY フラグを使用する場合は、次のセキュリティに関する考慮事項を考慮する必要があります。

  • APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY フラグは、オブジェクトのアクティブ化要求でクライアントに代わって作業を実行しない COM サーバーで使用されます。 このようなサーバーの場合、 RPC_C_IMP_LEVEL_IDENTIFYで COM SCM でオブジェクトのアクティブ化要求を発行すると、プロセスに SE_IMPERSONATE_NAME レベルが表示される特権トークンの可能性が最小限に抑えられます。

APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY フラグは、Windows 7 以降のバージョンのWindowsでサポートされています。

デスクトップ

権限借用レベル

[対話ユーザー]

セッション モニカー

ウィンドウステーション