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