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)