IIS のセキュリティ

このトピックでは、Microsoft SQL Server 2005 Compact Edition (SQL Server Compact Edition) で以下のセキュリティ項目を使用する方法について説明します。

  • IIS 認証
  • IIS 承認
  • IIS 暗号化

IIS 認証

SQL Server Compact Edition サーバー エージェントを構成する際は、クライアントが SQL Server Compact Edition サーバー エージェントに接続するときに Microsoft インターネット インフォメーション サービス (IIS) 認証を実行する必要があるかどうかを指定します。IIS 認証には次の 3 つの形式があります。

  • 匿名アクセス
  • 基本認証
  • 統合 Windows 認証

ほとんどのインターネット アプリケーションでは、基本認証と SSL (Secure Sockets Layer) 暗号化が使用されています。

匿名アクセス

匿名アクセスを使用すると、IIS ではクライアント認証が実行されません。クライアントの代わりに SQL Server Compact Edition サーバー エージェントにより実行される作業はすべて、インターネット ゲスト アカウントの ID を使用して行われます。既定のインターネット ゲスト アカウントは IUSR_computername ですが、異なる Windows ユーザー アカウントをインターネット ゲスト アカウントとして指定することもできます。

基本認証

基本認証を使用するには、SQL Server Compact Edition クライアントが有効な Windows アカウントのユーザー名とパスワードを提供する必要があります。IIS では、クライアントから提供されたユーザー名とパスワードを使用してログインが試行されます。ログオンに成功すると、SQL Server Compact Edition サーバー エージェントにより実行される作業はすべて、指定した Windows ユーザー アカウントの ID で行われます。ログオンに失敗すると、クライアントからの要求は拒否されます。基本認証は、インターネット アプリケーションとイントラネット アプリケーションの両方で使用できます。基本認証では、各クライアントが有効な Windows アカウントとそれに対応するユーザー名およびパスワードを保持している必要があります。

重要 :
既定の基本認証では、ユーザー名とパスワードは Base64 エンコーディング形式でネットワークを介して渡されます。Base64 エンコーディングは簡単にデコードできるので、パスワード交換がだれかに盗聴された場合、セキュリティが危険にさらされる可能性があります。ユーザー パスワードを保護するには、基本認証を使用する際に必ず SSL (Secure Sockets Layer) 暗号化を使用します。詳細については、「SSL 暗号化の構成」を参照してください。

統合 Windows 認証

統合 Windows 認証の動作は、基本認証と非常によく似ています。SQL Server Compact Edition クライアントは、有効な Windows アカウントのユーザー名とパスワードを提供する必要があります。IIS では、そのユーザー名とパスワードを使用してログインが試行されます。ログオンに成功すると、SQL Server Compact Edition サーバー エージェントにより実行される作業はすべて、Windows ユーザー アカウントの ID で行われます。ログインに失敗すると、クライアントの同期要求は拒否されます。基本認証と比較した場合、統合 Windows 認証には大きな利点が 1 つあります。基本認証とは異なり、統合 Windows 認証では、クライアントのユーザー名とパスワードが暗号化されずにネットワーク経由で送信されることはありません。これにより、パスワードが傍受される危険を回避できます。統合 Windows 認証は、イントラネット アプリケーションに最適です。ただし、統合 Windows 認証はプロキシ サーバーやファイアウォールを越えて機能することはできないため、インターネット アプリケーションで使用されることはほとんどありません。

メモ :
Microsoft Windows CE 4.2 ではダイジェスト認証がサポートされないので、SQL Server Compact Edition の接続ではこの認証形式はサポートされません。

IIS 承認

IIS クライアントが認証されると、IIS 承認により、そのクライアントが SQL Server Compact Edition サーバー エージェントを起動できるかどうかが決定されます。SQL Server Compact Edition 接続を実行できるユーザーを制御するには、SQL Server Compact Edition サーバー エージェントにアクセスできるクライアントを制御します。

IIS では、以下のメカニズムでアクセスが制御されます。

  • まず、構成した IP アドレス制限に対して、クライアントのアドレスがチェックされます。Web サーバーを構成すると、特定のコンピュータ、コンピュータのグループ、またはネットワーク全体に対して SQL Server Compact Edition サーバー エージェントへのアクセスを防止することができます。クライアントが SQL Server Compact Edition サーバー エージェントに初めてアクセスするときに、IIS では、そのクライアント コンピュータの IP アドレスが、サーバーの IP アドレス制限設定に対してチェックされます。クライアントの IP アドレスがアクセスを拒否されると、そのクライアントからの同期要求は拒否され、"403 Access Forbidden" というメッセージが表示されます。
  • IIS で認証を行うように構成されている場合、IIS により、クライアントが有効な Windows ユーザー アカウントを持っているかどうかがチェックされます。これについては、このドキュメントの「IIS 認証」に記載されています。ユーザー アカウントが無効である場合、そのクライアントからの同期要求は拒否され、"403 Access Forbidden" というメッセージが表示されます。
  • 次に、IIS では Web 権限がチェックされます。この IIS セキュリティ チェックは、SQL Server Compact Edition の接続手段とは関係ありません。
  • その後、IIS では、接続ユーザーに適切なアクセス許可が与えられていることを確認するために、SQL Server Compact Edition サーバー エージェントの NTFS アクセス許可をチェックします。
メモ :
IIS は、ファイル割り当てテーブル (FAT) ファイル システムで使用することもできますが、NTFS ファイル システムを使用することを強くお勧めします。NTFS では、アクセス制御リスト (ACL) を使用して、SQL Server Compact Edition サーバー エージェントおよび IIS システム上の入出力メッセージ ファイルへのアクセスを許可または拒否することができます。

IIS 暗号化

SQL Server Compact Edition サーバー エージェントを構成する際に、SSL 暗号化を指定できます。SSL 暗号化を指定すると、SQL Server Compact Edition クライアント エージェントと SQL Server Compact Edition サーバー エージェントとの間の通信がすべて暗号化されます。詳細については、「SSL 暗号化の構成」を参照してください。

SSL 暗号化を使用する必要のある状況を以下に示します。

  • IIS で基本認証を使用するように構成する場合。
    IIS 暗号化は、ユーザーのインターネット パスワードを保護するために必要不可欠です。既定の基本認証では、ユーザー名とパスワードは Base64 エンコーディング形式でネットワークを介して送信されます。Base64 エンコーディングは簡単にデコードできるので、パスワード交換がだれかに盗聴された場合、セキュリティが危険にさらされる可能性があります。基本認証を使用する際は、必ず SSL 暗号化を使用してユーザーのインターネット パスワードを保護してください。
  • RDA の場合のみ : アプリケーションで、パスワードが含まれた OLEDBConnectionString パラメータが指定された場合。
    RDA の Pull、Push、および SubmitSQL メソッドには、OLEDBConnectionString パラメータが必要です。この接続文字列は、クリア テキスト形式でネットワークを介して渡されます。これにより、パスワード交換がだれかに盗聴された場合、セキュリティが危険にさらされる可能性があります。
  • レプリケーションの場合のみ : SQL Server パブリッシャまたはディストリビュータが SQL Server 認証に依存している場合。

DistributorSecurityMode プロパティに DB_AUTHENTICATION を指定すると、ディストリビュータで SQL Server 認証が使用されます。PublisherSecurityMode プロパティに DB_AUTHENTICATION を指定すると、パブリッシャで SQL Server 認証が使用されます。SQL Server 認証を使用している場合、DistributorPassword と PublisherPassword はクリア テキスト形式でネットワークを介して渡されます。これにより、パスワード交換がだれかに盗聴された場合、セキュリティが危険にさらされる可能性があります。SQL Server 認証を使用する際は、必ず SSL 暗号化を使用して DistributorPassword と PublisherPassword を保護してください。

参照

概念

SQL Server のセキュリティ
データベースのセキュリティ設定 (SQL Server Compact Edition)

ヘルプおよび情報

SQL Server Compact Edition のサポートについて