次の方法で共有


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

このトピックでは、RDS のセキュリティ情報について説明します。

重要

Windows 8 および Windows Server 2012 から、RDS サーバー コンポーネントが Windows オペレーティング システムに含まれなくなりました (詳細については、Windows 8 および Windows Server 2012 の互換性クックブックを参照してください)。 RDS クライアント コンポーネントは、今後のバージョンの Windows で削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 RDS を使用するアプリケーションを、WCF Data Service に移行する必要があります。

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

Microsoft Internet Explorer に新しいセキュリティ強化が追加されたので、一部の ADO オブジェクトと RDS オブジェクトが "安全な" モード環境でのみ実行するよう制限されています。 これには、さまざまなゾーン、セキュリティ レベル、制限付き動作、安全でない操作、カスタマイズされたセキュリティ設定など、これらの問題を認識している必要があります。

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

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

RDSServer.DataFactory オブジェクトを使用した場合のセキュリティへ上の影響について詳しくは、Microsoft セキュリティ Web サイトの Microsoft セキュリティ情報 MS99-025 を参照してください。

クライアントの偽装とセキュリティ

IIS Web サーバーのパスワード認証プロパティが Windows NT チャレンジ/応答認証 (Windows NT 4.0 の場合) または統合Windows 認証 (Windows 2000 の場合) に設定されている場合、ビジネス オブジェクトがクライアントのセキュリティ コンテキストで呼び出されます。 これは RDS 1.5 の新機能であり、これにより HTTP でのクライアントの偽装が可能になります。 このモードで作業する場合、Web サーバー (IIS) へのログオンは匿名ではなく、クライアント コンピューターが実行されているユーザー ID とパスワードを使用します。 ODBC DSN が信頼関係接続を使用するように設定されている場合は、SQL Server などのデータベースへのアクセスも、クライアントのセキュリティ コンテキストで行われます。 ただし、これは、データベースが IIS と同じコンピューター上にある場合にのみ機能します。クライアント資格情報を別のコンピューターに引き継ぐことはありません。

たとえば、userid="JohnD" と password="<secret>" のクライアント John Doe は、クライアント コンピューターにログオンします。 John Doe は、IIS を実行している "MyServer" コンピューターで SQL クエリを実行して、 RDSServer.DataFactory オブジェクトにアクセスして Recordset を作成する必要があるブラウザー ベースのアプリケーションを実行します。 MyServer は、Windows NT Server 4.0 が動作するシステムで、Windows NT チャレンジ/応答認証を使用するように設定されています。その ODBC DSN では [信頼関係接続を使用する] が選択されており、サーバーには SQL Server データ ソースも含まれています。 Web サーバーでは要求を受け取ると、クライアントにユーザー ID とパスワードを要求します。 したがって、要求は、IUSER_MyServerではなく "JohnD"/"<secret>" から送信されたものとして MyServer に記録されます (匿名パスワード認証がオンの場合の既定値)。 同様に、SQL Server にログオンするときは、"JohnD"/"<secret>" が使用されます。

その結果、IIS Windows NT チャレンジ/応答認証モードでは、データベースへのログオンに必要なユーザー ID とパスワードの情報をユーザーに明示的に要求することなく、HTML ページを作成できるようになります。 IIS 基本認証が使用されていた場合は、これも必要になります。

パスワード認証

RDS は 3 つのパスワード認証モード (匿名認証、基本認証、NT チャレンジ/応答認証) のいずれかで動作する IIS Web サーバーと通信できます (Windows 2000 では統合 Windows 認証と呼ばれます)。 これらの設定は、クライアント コンピューターが NT Web サーバー上で明示的なアクセス権を持たなければならないなど、Web サーバーが Web サーバーを介したアクセスをどう制御するかを定義します。