多層アプリケーションでデータをセキュリティで保護するための基本的なシナリオ
このトピックでは、「セキュリティを適用する場所の決定」で説明されている基準を示す、いくつかの構成要素シナリオについて説明します。
信頼されたサーバーのシナリオ
- データベースは COM+ アプリケーションを完全に信頼して、エンド ユーザーがデータベース内のデータにアクセスすることを認証および承認します。
- データベースは、アプリケーションを介したアクセスを除くすべてのアクセスに対してセキュリティで保護されている状態が望ましいです。
- COM+ アプリケーションは、ロールベースのセキュリティを使用してユーザーを承認します。
- 接続は COM+ アプリケーションの ID で開き、完全にプール可能です。
- 監査とログ記録は COM+ アプリケーションで行うことができます。または、この情報をアプリケーションによってデータベースに渡すことができます。
このシナリオは、ロールでカプセル化できるユーザーの予測可能なカテゴリによってアクセスできるデータに最適です。 たとえば、アカウントにアクセスするアクセス許可を持つのは、「マネージャー」、「出納係」、「経理担当者」だけです。 それぞれが実行できる正確な内容のビジネス ロジックは、中間層で適用されます。
権限借用のシナリオ
- データベースは、エンド ユーザーに対して独自の認証と承認を行って、データベース内のデータへのアクセスを制限します。
- COM+ アプリケーションは、データベースにアクセスするたびにクライアントの権限を借用します。
- 接続は呼び出しごとに行われ、再利用することはできません。
このシナリオは、非常に小さなユーザー クラスに密接にバインドされているデータに最適です。 たとえば、各従業員は自分の人事ファイルにのみアクセスでき、各マネージャーは自分の部下の人事ファイルにのみアクセスできます。
ハイブリッド シナリオ
権限借用が必要な場合にのみ使用される、上記の 2 つのシナリオを組み合わせたシナリオ。
このシナリオは、混合型のユーザーとデータの関係がある場合に最適です。 たとえば、「マネージャー」、「出納係」、「経理担当者」、および自分のアカウントだけにアクセスできる数千の個々の Web クライアントがあるとします。 アプリケーションを介し、場合によっては個別のコンポーネントを使用して、ロジック パスを分離して、後者のクラスのユーザー (特にそれらのユーザーのパフォーマンスの前提が異なる場合) を処理できます。
Microsoft SQL Server ロールを使用した信頼できるシナリオ
- Microsoft SQL Server 7.0 以降の場合、ロールを使用して特定の行へのアクセスを承認できますが、COM+ アプリケーションを信頼してユーザーの認証と承認を行い、データベース内の適切なロールにそれらのユーザーをマップします。
- COM+ アプリケーションはロールベースのセキュリティを使用してユーザーを承認し、アプリケーション ロールはデータベース ロールにうまく対応します。
- 特定のデータベース ロールに固有の接続を開くことができます。 これらの接続は、COM+ アプリケーションのプールされたオブジェクトによって保持されている場合は、再利用することができます。 これを行う方法の詳細については、「COM+ オブジェクト プール」を参照してください。
- 監査とログ記録は COM+ アプリケーションで行うことができます。または、この情報をアプリケーションによってデータベースに渡すことができます。
このシナリオは、通常、最初の信頼されたサーバー シナリオと同じ種類のユーザーとデータに最適です。この理由としては、COM+ アプリケーションが承認を正しく処理するために依然として広く信頼されていることがあります。 しかし、権限借用シナリオに伴うスケーリングとパフォーマンスの低下を発生させることなく、COM+ アプリケーションの外部にある複数のソースからのアクセスを許可する一方で、データベースを不正アクセスから保護するのに役立ちます。
関連トピック