セキュリティは、アプリケーションの境界でのみチェックされます。 つまり、同じアプリケーション内の 2 つのコンポーネントについて、1 つのコンポーネントがもう一方のコンポーネントを呼び出しても、セキュリティ チェックは行われません。 ただし、2 つのアプリケーションが同じプロセスを共有し、1 つのアプリケーションで 1 つのコンポーネントがもう一方のコンポーネントを呼び出す場合は、アプリケーションの境界を越えたためにセキュリティ チェックが行われます。 同様に、2 つのアプリケーションが異なるサーバー プロセスに存在し、最初のアプリケーションのコンポーネントが 2 番目のアプリケーションでコンポーネントを呼び出すと、セキュリティ チェックが実行されます。
そのため、2 つのコンポーネントがあり、一方がもう一方のコンポーネントを呼び出すときにセキュリティ チェックを実行する場合は、コンポーネントを別の COM+ アプリケーションに配置する必要があります。
COM+ ライブラリ アプリケーションは他のプロセスによってホストされるため、ライブラリ アプリケーションとホスティング プロセスの間にはセキュリティ境界があります。 さらに、ライブラリ アプリケーションはプロセス レベルのセキュリティを制御しないため、セキュリティの構成方法に影響します。 詳細については、「ライブラリ アプリケーション セキュリティ」を参照してください。
コンポーネントの呼び出しでセキュリティ チェックを実行する必要があるかどうかを判断することは、構成されたコンポーネントがインスタンス化されるときに作成されたオブジェクト コンテキストのセキュリティ プロパティに基づきます。 詳細については、「セキュリティ コンテキスト プロパティの」を参照してください。
Component-Level アクセス チェック
COM+ サーバー アプリケーションの場合は、コンポーネント レベルまたはプロセス レベルでアクセス チェックを適用することができます。
コンポーネント レベルのアクセス チェックを選択すると、きめ細かなロールの割り当てが有効になります。 コンポーネント、インターフェイス、およびメソッドにロールを割り当て、明確な承認ポリシーを実現できます。 これは、ロールベースのセキュリティを使用するアプリケーションの標準構成になります。
COM+ ライブラリ アプリケーションの場合、ロールを使用する場合は、コンポーネント レベルのセキュリティを選択する必要があります。 ライブラリ アプリケーションでは、プロセス レベルのセキュリティを使用できません。
プログラムによるロールベースのセキュリティを使用している場合は、コンポーネント レベルのアクセス チェックを選択する必要があります。 セキュリティ呼び出しコンテキスト情報は、コンポーネント レベルのセキュリティが有効になっている場合にのみ使用できます。 詳細については、「セキュリティ呼び出しコンテキスト情報を参照してください。
さらに、コンポーネント レベルのアクセス チェックを選択すると、セキュリティ プロパティがオブジェクト コンテキストに含まれます。 つまり、セキュリティ構成は、オブジェクトのアクティブ化方法で役割を果たすことができます。 詳細については、「セキュリティ コンテキスト プロパティの」を参照してください。
Process-Level アクセス チェック
プロセス レベルのチェックは、アプリケーションの境界にのみ適用されます。 つまり、COM+ アプリケーション全体に対して定義したロールによって、アプリケーション内の任意のリソースへのアクセス権が付与されるユーザーが決まります。 細かいロールの割り当ては適用されません。 基本的に、ロールは、アプリケーションのコンポーネントへの呼び出しが検証されるセキュリティ記述子を作成するために使用されます。 この場合、複数のロールを持つ詳細な承認ポリシーを作成する必要はありません。 アプリケーションは 1 つのセキュリティ記述子を使用します。
COM+ ライブラリ アプリケーションの場合、プロセス レベルのアクセス チェックは選択しません。 ライブラリ アプリケーションはクライアントのプロセスでホストされて実行されるため、プロセス レベルのセキュリティは制御されません。 詳細については、「ライブラリ アプリケーション セキュリティ」を参照してください。
プロセス レベルのアクセス チェックが有効になっている場合、セキュリティ呼び出しコンテキスト情報は使用できません。 つまり、プロセス レベルのセキュリティのみを使用する場合は、プログラムによるセキュリティを実行できません。 詳細については、「セキュリティ呼び出しコンテキスト情報を参照してください。
さらに、セキュリティ プロパティはオブジェクト コンテキストには含まれません。 つまり、プロセス レベルのアクセス チェックのみを使用する場合、セキュリティ構成はオブジェクトのアクティブ化方法で役割を果たしません。 詳細については、「セキュリティ コンテキスト プロパティの」を参照してください。
関連トピック