次の方法で共有


多層アプリケーションのデータをセキュリティで保護するための基本的なシナリオ

このトピックでは、セキュリティ を適用する場所の決定に関するで説明されている条件を示す、いくつかの構成要素のシナリオについて説明します。

信頼されたサーバーのシナリオ

  • データベースは COM+ アプリケーションを完全に信頼して、エンド ユーザーがデータベース内のデータにアクセスすることを認証および承認します。
  • 好ましくは、データベースは、アプリケーションを介したアクセスを除くすべてのアクセスに対してセキュリティで保護されます。
  • COM+ アプリケーションは、ロールベースのセキュリティを使用してユーザーを承認します。
  • 接続は COM+ アプリケーションの ID で開き、完全にプール可能です。
  • 監査とログ記録は COM+ アプリケーションで行うことができます。または、この情報をアプリケーションによってデータベースに渡すことができます。

このシナリオは、ロールとして定義できるユーザーの予測可能なカテゴリがアクセスするデータに最適です。 たとえば、アカウントにアクセスするアクセス許可を持つのは、"マネージャー"、"テラー"、"会計士" だけです。 それぞれが正確に実行できる内容のビジネス ロジックは、中間層で適用されます。

偽装シナリオ

  • データベースは、データベース内のデータへのアクセスを制限するために、エンド ユーザーの独自の認証と承認を行います。
  • COM+ アプリケーションは、データベースにアクセスするたびにクライアントを偽装します。
  • 接続は呼び出しごとに行われ、再利用することはできません。

このシナリオは、非常に小さなクラスのユーザーに密接にバインドされているデータに最適です。 たとえば、各従業員は自分の人事ファイルにのみアクセスでき、各マネージャーは自分のレポートの人事ファイルにのみアクセスできます。

ハイブリッド シナリオ

上記の 2 つのシナリオの組み合わせ。偽装は必要な場合にのみ使用されます。

このシナリオは、ハイブリッド ユーザー とデータのリレーションシップがある場合に最適です。 たとえば、"マネージャー"、"テラー"、"会計士"、および自分のアカウントだけにアクセスできる数千の個々の Web クライアントがあるとします。 アプリケーションを介してロジック パスを分離し、場合によっては個別のコンポーネントを使用して、後者のクラスのユーザー (特にそれらのユーザーのパフォーマンスの前提が異なる場合) を処理できます。

Microsoft SQL Server ロールを使用した信頼できるシナリオ

  • Microsoft SQL Server 7.0 以降では、ロールを使用して特定の行へのアクセスを承認できますが、COM+ アプリケーションを信頼してユーザーを認証および承認し、データベース内の適切なロールにマップします。
  • COM+ アプリケーションはロールベースのセキュリティを使用してユーザーを承認し、アプリケーション ロールはデータベース ロールに適切に対応します。
  • 特定のデータベース ロールに固有の接続を開くことができます。 これらの接続は、COM+ アプリケーションのプールされたオブジェクトによって保持されている場合に再利用できます。 これを行う方法の詳細については、COM+ オブジェクト プール を参照してください。
  • 監査とログ記録は、COM+ アプリケーションで行うことができます。または、この情報をアプリケーションによってデータベースに渡すことができます。

このシナリオは、通常、最初の信頼されたサーバー シナリオと同じ種類のユーザーとデータに最適です。これは、COM+ アプリケーションが承認を正しく処理するためにほとんど信頼されているためです。 ただし、権限借用シナリオに伴うスケーリングとパフォーマンスの低下を発生させることなく、COM+ アプリケーションの外部にある複数のソースからのアクセスを許可しながら、データベースを承認されていないアクセスから保護するのに役立ちます。

セキュリティ を適用する場所を決定する

多層アプリケーション セキュリティ