RDS アプリケーションの保護

Microsoft Internet Explorer のセキュリティの問題点

Micorosoft Internet Explorer では新しくセキュリティが拡張されたため、いくつかの ADO オブジェクトと RDS オブジェクトは、"セーフ (Safe)" モード環境でしか動作しません。そのため、ゾーンの相違、セキュリティ レベル、動作の制限、危険な操作、カスタマイズされたセキュリティ設定などの問題に注意を払う必要があります。

これらの問題の詳細については、「Microsoft Data Access Technical Articles」の「ActiveX Data Objects (ADO) Technical Articles」の「ADO and RDS Security Issues in Microsoft Internet Explorer」を参照してください。

セキュリティと Web サーバー

インターネット Web サーバーで RDSServer.DataFactory オブジェクトを使う場合は、それによりセキュリティ上の潜在的なリスクが発生することに留意してください。有効なデータ ソース名 (DSN)、ユーザー ID、およびパスワードの情報を持っている外部ユーザーであれば、データ ソースにクエリを送るページを作成できます。データ ソースへのアクセスを制限する方法の 1 つとして、RDSServer.DataFactory オブジェクト (msadcf.dll) の登録を解除して削除し、その代わりにハード コードされたクエリを使うカスタム ビジネス オブジェクトを使う方法があります。

RDSServer.Datafactory オブジェクトの使用に伴うセキュリティ上の影響の詳細については、Microsoft Security Web サイト (http://www.microsoft.com/security/default.asp) の Microsoft Security Bulletin MS99-025 を参照してください。

クライアントの擬似ユーザー化とセキュリティ

IIS Web サーバーのパスワード認証のプロパティが、Windows NT Challenge/Response 認証 (Windows NT 4.0) または統合 Windows 認証 (Windows 2000) に設定されている場合は、ビジネス オブジェクトはクライアントのセキュリティ コンテキストで呼び出されます。これは RDS 1.5 の新機能で、HTTP でのクライアントの擬似ユーザー化を可能にするものです。このモードで機能しているときは、Web サーバー (IIS) へのログオンは、匿名ではなく、動作中のクライアント コンピュータのユーザー ID とパスワードを使います。ODBC の DSN が信頼関係接続を使用するように設定されていれば、SQL Server などのデータベースへのアクセスもクライアントのセキュリティ コンテキスト下で行われます。ただし、これはデータベースが IIS と同じコンピュータにある場合にのみ機能し、ほかのコンピュータに対してクライアント認証を行うことはできません。

たとえば、ユーザー ID が "JohnD"、パスワードが "Secret" の John Doe がクライアント コンピュータにログオンしたとします。John Doe が実行しているブラウザ ベースのアプリケーションは、IIS が動作しているコンピュータ、"MyServer" で SQL クエリを実行し、Recordset を作成するために RDSServer.DataFactory オブジェクトにアクセスしなければなりません。Windows NT Server 4.0 が動作中のシステム、MyServer は、Windows NT Challenge/Response 認証を使うようセットアップされており、その ODBC DSN では [信頼関係接続] が選択されてます。また、このサーバーには SQL Server データ ソースが含まれています。Web サーバーは要求を受け取ると、クライアントにユーザー ID とパスワードを求めます。そのため、この要求は IUSER_MyServer (匿名パスワード認証がオンの場合の既定値) ではなく、"JohnD"/"Secret"の要求として MyServer にログオンされます。同じように、SQL Server へのログオンにも "JohnD"/"Secret" が使われます。

したがって、IIS Windows NT Challenge/Response 認証モードでは、ユーザーは、データベースのログオンに必要なユーザー ID とパスワード情報を明示的に要求されることなく、HTML ページを作成できます。IIS の基本認証が使われている場合は、ユーザー ID とパスワード情報が要求されます。

パスワード認証

RDS は、匿名、基本、または NT Challenge/Response 認証 (Windows 2000 では、統合 Windows 認証と呼ばれます) の 3 種類のパスワード認証のどのモードで動作している IIS Web サーバーとでも交信できます。こうした設定によって、たとえば、クライアント コンピュータは NT Web サーバーに対して明示的なアクセス権限を持っていなければならないなど、Web サーバーがパスワード認証を通してアクセスを制御する方法を定義できます。