セキュリティ向けの設計
セキュリティのためのエンドツーエンドの戦略は、明らかに、開発している分散アプリケーションの種類によって異なります。 中間層アプリケーション ロジックに関してセキュリティに対処するためのいくつかの推奨事項を次に示します。
- 効率とパフォーマンスを高めるには、できる限りユーザーに近い認証を行います。 アプリケーションにブラウザーからビジネスへのロジックからデータベースへのアーキテクチャが含まれている場合は、ブラウザー クライアントのマッピングを検討しメイン ID、各アプリケーションに固有の ID で COM+ アプリケーションを実行し、データ層のテーブルに特定のアプリケーション ID のみがアクセスできるように構成します。 この信頼されたサーバー シナリオは、認証に DBMS を使用する場合よりもスケーラブルで問題が少なくなります。
- ロールベースのセキュリティを使用して分散アプリケーションで使用されるコンポーネントを設計する場合は、COM+ セキュリティ機能を使用できます。 この機能を使用すると、IObjectContext::IsCallerInRole や IObjectContext::IsSecurityEnabled などのメソッドを呼び出して、承認されていないアクセスからコードのブロックを保護できます。 セキュリティ呼び出しコンテキストを使用して、オブジェクトの呼び出し元に関する情報を取得することもできます。
- ロールベースのセキュリティを使用せずに分散アプリケーションで使用されるコンポーネントを設計する場合、セキュリティはプロセス レベルでのみ自動的にチェックされます。 プロセス アクセス許可によって、アプリケーションへのアクセス権が付与されるユーザーが決まります。 プロセスまたはインターフェイス レベルでセキュリティ設定を細かく制御する必要がある場合は、COM によって提供されるプログラムによるセキュリティ機能を使用します。
- COM+ プログラムによるセキュリティを使用するコンポーネントを COM+ アプリケーションに統合せずに実行すると、例外がスローされます。 そのため、このようなコンポーネントを COM+ 環境の一部ではないアプリケーションに正常に統合する場合は、すべての例外を適切に処理する必要があります。
関連トピック
-
可用性の観点でのパーティション分割の設計