次の方法で共有


SQL アダプターをセキュリティで保護するためのベスト プラクティス

Microsoft BizTalk Adapter for SQL Serverを使用するアプリケーションを使用または開発するときに、機密データをより完全に保護するために従う必要があるベスト プラクティス。

SQL アダプターとSQL Server データベース間の接続に関するセキュリティのベスト プラクティス

  • SQL アダプターは、そのアダプターとSQL Server データベース間の通信をセキュリティで保護するためのサポートを提供しません。 アダプターとSQL Server データベース間で交換されるデータに対して適切なレベルのセキュリティを確保するためのメカニズムを提供する必要があります。

  • セキュリティ上の理由から、SQL アダプターでは、接続 URI でSQL Server データベースのユーザー名パスワード資格情報を指定することはできません。 SQL アダプターに資格情報を提供する別の方法については、このトピックの残りの部分を参照してください。

  • また、SQL アダプターを使用すると、SQL Serverに接続するときに Windows 認証を使用して、Visual Studio またはBizTalk Serverを使用してメタデータを生成し、操作を実行できます。 Windows 認証を使用する前に、SQL Server Management Studioで Windows ユーザーをユーザーとして追加する必要があります。 詳細については、「SQL アダプターで Windows 認証を使用してSQL Serverに接続する」を参照してください

    詳細については、「SQL Serverとアダプターの間のセキュリティ」を参照してください。

BizTalk Serverを使用した SQL アダプターの使用に関するセキュリティのベスト プラクティス

  • SQL アダプターでは、接続 URI でSQL Server データベースのユーザー名パスワード資格情報を指定することはできません。

  • アダプター サービス アドインを使用する場合は、[アダプターの構成] ダイアログ ボックスの [セキュリティ] タブから、SQL Server データベースのユーザー名のパスワード資格情報を入力します。

  • 送信ポートで SQL アダプターの BizTalk WCF-Custom アダプターを構成する場合は、[WCF-Custom Transport Properties] ダイアログ ボックスの [資格情報] タブから、SQL Server データベースのユーザー名パスワード資格情報を入力します。

  • 受信場所で SQL アダプターの BizTalk WCF-Custom アダプターを構成する場合は、[WCF-Custom Transport Properties] ダイアログ ボックスの [その他] タブから、SQL Server データベースのユーザー名パスワード資格情報を入力します。

  • アダプター サービス アドインを使用してメタデータを生成したり、送信ポートを構成したり、受信ポートを構成したりするときに、Windows 認証を使用することもできます。 Windows 認証を使用する前に、SQL Server Management Studioで Windows ユーザーをユーザーとして追加する必要があります。 詳細については、「SQL アダプターで Windows 認証を使用してSQL Serverに接続する」を参照してください

    詳細については、「SQL アダプターを使用したセキュリティ」と「BizTalk Server」を参照してください。

プログラミング ソリューションを使用した SQL アダプターの使用に関するセキュリティのベスト プラクティス

  • 接続 URI でSQL Server データベースのユーザー名パスワード資格情報を指定することが必要な場合があります。ただし、可能であれば、この操作は避ける必要があります。

  • [アダプター サービス参照の追加] Visual Studio プラグインを使用する場合は、[アダプターの構成] ダイアログ ボックスの [セキュリティ] タブから、SQL Server データベースのユーザー名のパスワード資格情報を入力します。

  • WCF チャネル モデル プログラミングでは、チャネル ファクトリの Credentials プロパティを使用して、SQL Server データベースのユーザー名パスワード資格情報を設定します。

  • WCF サービス モデル プログラミングでは、WCF クライアントの ClientCredentials プロパティを使用して、SQL Server データベースのユーザー名パスワード資格情報を設定します。

  • SQL アダプターを使用するアプリケーションが、プロセス境界を越えて機密性の高いデータベース情報を含むメッセージを別のサービスまたはクライアントに送信する場合は、環境で適切なデータ保護を提供するために、これらのメッセージに十分なセキュリティ対策が適用されていることを確認します。

  • アダプター サービス参照プラグインの追加または .NET アプリケーションからのSQL Serverへの接続中に、Windows 認証を使用することもできます。 Windows 認証を使用する前に、SQL Server Management Studioで Windows ユーザーをユーザーとして追加する必要があります。 詳細については、「SQL アダプターで Windows 認証を使用してSQL Serverに接続する」を参照してください

    詳細については、「 SQL アダプターを使用したセキュリティで保護されたプログラミング」を参照してください。

IIS で SQL アダプターをホストするためのセキュリティのベスト プラクティス

Microsoft インターネット インフォメーション サービス (IIS) で Web サービスとして SQL アダプターをホストすると、SQL アダプターによって表示される操作が Web クライアントに公開されます。 これらの操作には、インターネット経由での機密データの交換が含まれる場合があるため、このデータが可能な限り安全であることを確認するための対策を講じておく必要があります。

WCF には、HTTP トランスポート用の 2 つの標準バインディングが用意されています。 BasicHttpBinding には、セキュリティ メカニズムのない基本的な HTTP トランスポートが用意されています。 WSHttpBinding では、トランスポート レベルとメッセージ レベルの両方のセキュリティ メカニズムがサポートされています。

HTTPS 接続経由で BasicHttpBinding を 使用することも、 WSHttpBinding を 使用してデータを保護することもできます。 WCF LOB アダプター SDK には、LOB 成果物用の WCF サービスを生成するための WCF LOB アダプター サービス開発ウィザードが含まれています。 このウィザードでは、 BasicHttpBinding の使用のみがサポートされています。

カスタム HTTP バインディングを開発して、環境で提供される追加のセキュリティ メカニズムを活用することもできます。 WCF が提供するセキュリティ機能の詳細については、「 サービスとクライアントのセキュリティ保護」を参照してください。

Web サービスとして SQL アダプターをホストする場合、Web 開発者は、ユーザーによって入力された文字列がSQL Server データベースに直接渡されないように対策を講じます。 たとえば、WEB サイトでユーザーが SELECT ステートメントの WHERE 句の一部となる値を入力できる場合は、ステートメントに他のコマンドを追加しないように入力文字列をスキャンする必要があります。

WCF 診断トレースとメッセージ ログのセキュリティに関するベスト プラクティス

WCF では、診断トレースとメッセージ ログがサポートされています。 診断トレースとメッセージ ログは、構成ファイルを使用するか、Windows Management Instrumentation (WMI) を使用して構成します。 設定した構成オプションに応じて、WCF 診断トレースまたはメッセージ ログは機密情報をログ ファイルに出力できます。この場合、承認されていないユーザーによって監視対象になる可能性があります。

これらの機能を有効にして公開される潜在的なセキュリティ脅威を軽減するには、WCF ドキュメントに記載されている推奨事項に従ってください。 少なくとも、診断トレースとメッセージ ログに関する次のベスト プラクティスを確認する必要があります。

  • 運用環境で "詳細" または "情報" トレースを有効にしないでください。 これにより、パフォーマンスが低下する可能性があります。 ただし、運用環境で "警告" と "エラー" トレースを有効にする必要があります。 トレースを有効にする場合は、データを保護するために適切なセキュリティ対策を講じなければなりません。 詳細については、WCF のドキュメントを参照してください。

  • ログ ファイルと構成ファイルがアクセス制御リスト (ACL) によって保護されていることを確認します。

    次の警告は、クライアント アプリケーションと SQL アダプターの間で交換されるメッセージに特に適用されます。

  • WCF 診断トレースでは、SQL アダプターと交換されたメッセージのヘッダー (本文ではなく) をログに記録できます。 メッセージ アクションはメッセージ ヘッダー内にあるため、クライアントによって SQL アダプターで呼び出された操作が表示されます。

  • WCF メッセージ ログが有効で が の場合、trueアダプター クライアントと logMessagesAtServiceLevel SQL アダプターの間で交換されたメッセージのメッセージ ヘッダー (メッセージ本文はログに記録されません)。 メッセージ アクションはメッセージ ヘッダー内にあるため、クライアントが SQL アダプターで呼び出した操作が表示されます。 も trueの場合logEntireMessage、メッセージ本文がログに記録されます。 これにより、機密性の高いデータベース情報が表示される可能性があります。

    診断トレースを有効にしたときのセキュリティの向上の詳細については、「 セキュリティの懸念事項」と「トレースに役立つヒント」を参照してください。 メッセージ ログを有効にするときのセキュリティの強化の詳細については、「メッセージ ログの セキュリティに関する懸念事項」を参照してください。

参照

SQL アプリケーションをセキュリティで保護する