COM でのセキュリティ

COM のセキュリティは、Windows によって提供されるセキュリティとその基礎となる RPC セキュリティ メカニズムにしっかりと基づいています。 COM セキュリティは、 認証 (呼び出し元の ID を確認するプロセス) と承認 (呼び出し元が要求する操作を実行する権限があるかどうかを判断するプロセス) に依存します。 COM には、アクティブ化セキュリティ呼び出しセキュリティという 2 種類のメインセキュリティがあります。 アクティブ化セキュリティは、クライアントがサーバーを起動できるかどうかを決定します。 サーバーが起動したら、呼び出しセキュリティを使用して、サーバーのオブジェクトへのアクセスを制御できます。

このセキュリティ モデルでは、サーバーがオブジェクトを管理および保護し、クライアントはサーバーを通じてオブジェクトにアクセスし、サーバーはクライアントになりすましてアクセスを試みることができます。

システムは、Kerberos v5 認証プロトコルと Schannel セキュリティ パッケージを実装します。 また、委任レベルの偽装、相互認証、レジストリ内の AppID の認証レベルを設定する機能、クローキングなどの機能も含まれています。 COM セキュリティを使用すると、セキュリティを損なうことなく特権操作を実行できるオブジェクトを実装できます。

幅広い COM セキュリティ機能が利用できるため、最初にアプリケーションに必要なセキュリティの種類を決定するのに役立ちます。 ほとんどのアプリケーションでは、許容可能なセキュリティ レベルの設定は簡単なプロセスですが、COM セキュリティを使用して、非常に複雑なセキュリティ シナリオをサポートすることもできます。

Dcomcnfg.exe を使用してレジストリを設定するか、CoInitializeSecurity を呼び出すことによって、セキュリティ プロセス全体で設定できます。 IClientSecurityIServerSecurity (および関連するヘルパー関数) の 2 つの主要なインターフェイスを使用すると、プログラム内で呼び出しレベルのセキュリティを設定できます。

COM セキュリティの詳細については、次のトピックを参照してください。