[対話ユーザー]

対話型ユーザーは、COM サーバーが実行されているコンピューターに現在ログオンしているユーザーです。 ID が対話型ユーザーに設定されている場合、サーバーがそのクラス ファクトリをマルチユースとして登録している場合、すべてのクライアントはサーバーの同じインスタンスを使用します。 ユーザーがログオンしていない場合、サーバーは実行されません。 サーバーに、クライアントが表示する必要があるグラフィカル ユーザー インターフェイス (GUI) がある場合は、サーバーの ID に対話型ユーザーを使用する必要があります。 ただし、この ID を選択すると、ログオンしているユーザーの知識や同意なしに、ログオンしたユーザーの ID の下でサーバーが実行されるため、セキュリティ上のリスクが伴います。 さらに、サービス アプリケーションではユーザー インターフェイスを表示できません。 詳細については、「 対話型サービス」を参照してください。

COM サーバーが対話型ユーザーとして実行されるように構成されている場合、ターミナル サービス環境では、クライアントのユーザー ID と一致する対話型セッションでサーバーが起動されます。 ただし、クライアント アプリケーションはセッション モニカーを使用して、クライアント ID と一致しないセッション内のサーバーによって提供されるオブジェクトを参照できます。 これを使用すると、クライアント アプリケーションは任意のセッションを指定できます。その場合、サーバーは起動ユーザーではなく、セッションを所有するユーザーとして実行されます。 このシナリオの既定のアクセス許可では、起動中のユーザーがサーバー上のメソッドを呼び出すことを許可しません。 ただし、次のセキュリティ リスクが残ります。

  • COM サーバーが、TCP ポート、名前付きパイプ、LPC ポート、共有メモリ セクションなど、COM によって制御されないインターフェイスを公開している場合は、起動ユーザーがサーバーに影響を与えるために使用できます。 対話型ユーザーとして実行するように構成された COM オブジェクトは、この攻撃対象領域をできるだけ減らす必要があります。
  • COM オブジェクトは、独自のアクセス許可を自由に設定できます。 オブジェクトが AppID 登録でアクセス許可を設定するか 、CoInitializeSecurity を呼び出して起動ユーザー アクセスを許可する場合、ユーザーはサーバーを起動して別のユーザーとして実行し、オブジェクトにアクセスできます。

アプリケーション ID

ユーザーの起動

サービス ID

指定されたユーザー