Web 同期用に IIS を構成する方法
更新 : 2006 年 12 月 12 日
ここでは、マージ レプリケーション用に Web 同期を構成する 2 番目の手順を説明します。この手順は、Web 同期用にパブリケーションを有効にした後に実行します。構成プロセスの概要については、「Web 同期の構成」を参照してください。ここでの手順を完了したら、続いて、Web 同期が使用されるようにサブスクリプションを構成する 3 番目の手順を実行してください。3 番目の手順については、次のトピックで説明します。
- SQL Server Management Studio: Web 同期が使用されるようにサブスクリプションを構成する方法 (SQL Server Management Studio)
- レプリケーション Transact-SQL プログラミング : Web 同期を使用するようにサブスクリプションを構成する方法 (レプリケーション Transact-SQL プログラミング)
- RMO: Web 同期を使用するようにサブスクリプションを構成する方法 (RMO プログラミング)
Web 同期では、Microsoft インターネット インフォメーション サービス (IIS) を実行するコンピュータを使用して、プル サブスクリプションをマージ パブリケーションに同期します。IIS 5.0 と IIS 6.0 がサポートされます。
重要 : |
---|
アプリケーションで .NET Framework 2.0 以降のバージョンのみが使用されることと、.NET Framework の以前のバージョンが IIS サーバーにインストールされていないことを確認します。.NET Framework の以前のバージョンを使用するとエラーが発生する可能性があります。たとえば、"Web 同期中のメッセージの形式が無効でした。Web サーバーでレプリケーション コンポーネントが正しく構成されていることを確認してください。" というエラーなどです。 |
Web 同期を使用するには、次の手順を完了して IIS を構成する必要があります。ここでは、各手順を詳しく説明します。
- SSL (Secure Sockets Layer) を構成します。IIS とすべてのサブスクライバ間の通信には SSL が必要です。
- SQL Server インストール ウィザードを使用して、IIS を実行しているコンピュータに Microsoft SQL Server 接続コンポーネントをインストールします。手順 3. で説明する Web 同期の構成ウィザードを使用する場合は、IIS を実行しているコンピュータに SQL Server Management Studio もインストールする必要があります。
- IIS を実行しているコンピュータを Web 同期用に構成します。手動でコンピュータを構成するか、Web 同期の構成ウィザードを使用できます。ウィザードを使用することをお勧めします。
メモ : IIS を実行しているコンピュータで、64 ビット バージョンの Microsoft Windows を実行している場合は、ISAPI (インターネット サーバー API) アプリケーションを実行できるようにサーバーを適切に構成する必要があります。そのためにはコマンド cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
を実行します。詳細については、IIS のマニュアルを参照してください。 - SQL Server レプリケーション リスナに適切な権限を設定します。
- 診断モードで Web 同期を実行し、IIS を実行しているコンピュータへの接続をテストして、SSL 証明書が正しくインストールされることを確認します。
Secure Sockets Layer の構成
SSL を構成するには、IIS を実行しているコンピュータが使用する証明書を指定する必要があります。マージ レプリケーション用の Web 同期では、サーバー証明書のみがサポートされており、クライアント証明書はサポートされていません。配置用に IIS を構成するには、最初に証明機関 (CA) から証明書を取得する必要があります。証明機関とは、ユーザー、コンピュータ、およびその他の証明機関に属する公開暗号化キーの正当性の証明および保証を行う機関のことです。証明書の詳細については、IIS のマニュアルを参照してください。証明書をインストールしたら、その証明書を Web 同期で使用する Web サイトと関連付ける必要があります。
配置用に証明書を指定するには
IIS を実行しているコンピュータに管理者としてログオンします。
[インターネット インフォメーション サービス (IIS) マネージャ] を起動します。
- [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
- [名前] ボックスに「inetmgr」と入力し、[OK] をクリックします。
IIS 証明書ウィザードを実行します。
- インターネット インフォメーション サービス (IIS) マネージャで、[ローカル コンピュータ] ノードを展開し、[Web サイト] フォルダを展開します。
- [既定の Web サイト] を右クリックし、[プロパティ] をクリックします。
- [既定の Web サイトのプロパティ] ダイアログ ボックスの [ディレクトリ セキュリティ] タブで、[サーバー証明書] をクリックします。
- Web サーバー証明書ウィザードを実行します。
[OK] をクリックします。
CA からサーバー証明書を取得できない場合は、テスト用に証明書を指定できます。テスト用に IIS 6.0 を構成するには、SelfSSL ユーティリティを使用して証明書をインストールします。このユーティリティは、IIS 6.0 リソース キットで使用できます。このツールは、Microsoft Web サイトからダウンロードできます。IIS 5.0 の場合は、Microsoft Web サイトを参照してください。
メモ : |
---|
Web サイトで SSL を使用できるようにするには、事前に証明書を Web サイトに関連付ける必要があります。SelfSSL を使用すると、証明書が既定の Web サイトに自動的に関連付けられます。既に証明書を保有しているか、または後で CA から証明書をインストールする場合は、証明書を Web 同期で使用する Web サイトと明示的に関連付ける必要があります。サブスクリプションの同期に使用する Web サイトに関連付けられた証明書が 1 つしか存在しないことを確認します。複数の証明書が存在する場合、サブスクライバは使用可能な最初の Web サイトを使用します。 |
IIS 6.0 でテスト用に証明書を指定するには
IIS を実行しているコンピュータに管理者としてログオンします。
SelfSSL をダウンロードしてインストールします。このアプリケーションの既定のインストール先は <drive>:\Program Files\IIS Resources\SelfSSL です。アプリケーションおよびマニュアルのショートカットが <drive>:\Documents and Settings\All Users\Start Menu\Programs\IIS Resources\SelfSSL にコピーされます。
SelfSSL を実行します。
- すべてのパラメータに既定値を指定して SelfSSL を実行するには、アプリケーションのインストール ディレクトリに移動して、SelfSSL.exe をダブルクリックします。
メモ : SelfSSL を使用してインストールした証明書の既定の有効期限は 7 日間です。 - 1 つ以上のパラメータの値を指定するには、[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに「cmd」と入力し、[OK] をクリックします。SelfSSL のインストール ディレクトリに移動して「
SelfSSL
」と入力し、1 つ以上のパラメータの値を指定します。パラメータの一覧を確認する場合は、「SelfSSL -?
」と入力します。
- すべてのパラメータに既定値を指定して SelfSSL を実行するには、アプリケーションのインストール ディレクトリに移動して、SelfSSL.exe をダブルクリックします。
接続コンポーネントと SQL Server Management Studio のインストール
SQL Server 接続コンポーネントと SQL Server Management Studio をインストールするには
IIS を実行しているコンピュータに管理者としてログオンします。
Microsoft SQL Server 2005 インストール ディスクから SQL Server インストール ウィザードを起動します。このウィザードの使用方法の詳細については、「SQL Server 2005 をインストールする方法 (セットアップ)」を参照してください。
[インストールするコンポーネント] ページで、[詳細設定] をクリックします。
[機能の選択] ページで、[クライアント コンポーネント] ノードを展開します。
[接続コンポーネント] をクリックし、[ローカル ハード ドライブにすべてインストール] をクリックします。
Web 同期の構成ウィザードを使用する場合
- [管理ツール] ノードを展開します。
- [SQL Server Management Studio] をクリックし、[ローカル ハード ドライブにすべてインストール] をクリックします。
ウィザードを終了して、コンピュータを再起動します。
メモ : 他のコンポーネントをインストールすることもできますが、Web 同期で必要なのは接続コンポーネントだけです。
Web 同期の構成ウィザードを使用した、IIS を実行しているコンピュータの構成
Web 同期の構成ウィザードを使用して、IIS サーバーを構成します。このウィザードを使用することをお勧めしますが、次のセクションで手動での構成の手順も説明します。以下のように構成します。
- IIS で既定の Web サイトを使用します。ただし、別の Web サイトを使用することもできます。Web サイトを作成する方法の詳細については、IIS のマニュアルを参照してください。
メモ : 指定した Web サイトから Web 同期で使用するコンポーネントにアクセスできます。Web サイトの構成を行わなければ、そのサイトで他のデータや Web ページにアクセスすることはできません。 - 仮想ディレクトリおよびこのディレクトリに関連付けられた別名を作成します。この別名は、Web 同期コンポーネントにアクセスするときに使用されます。たとえば、IIS のアドレスが https://server.domain.com である場合に、別名を "websync1" と指定すると、replisapi.dll コンポーネントにアクセスするアドレスは https://server.domain.com/websync1/replisapi.dll となります。
- 基本認証を使用します。基本認証の使用をお勧めする理由は、基本認証では、Kerberos 委任を必要とすることなく、IIS と SQL Server パブリッシャまたはディストリビュータを別々のコンピュータで実行すること (推奨の構成) が可能になるからです。基本認証を使用した SSL では、ログインやパスワードなどすべてのデータが暗号化されて送信されます (使用する認証の種類にかかわらず、SSL は必須です)。Web 同期の推奨事項の詳細については、「Web 同期の構成」の「Web 同期のセキュリティの推奨事項」を参照してください。
Web 同期の構成ウィザードを使用して IIS を実行しているコンピュータを構成するには
IIS を実行しているコンピュータで、SQL Server Management Studio を起動します。
パブリッシャに接続し、サーバー ノードを展開します。
[ローカル パブリケーション] フォルダを展開し、パブリケーションを右クリックして、[Web 同期の構成] をクリックします。
Web 同期の構成ウィザードの [サブスクライバの種類] ページで、[SQL Server] をクリックします。
[Web サーバー] ページで以下の操作を行います。
- サブスクリプションを同期する IIS のインスタンスを選択します。
- [新しい仮想ディレクトリを作成する] をクリックします。
- ページの下のペインで IIS のインスタンスを展開してから、[Web サイト] を展開して、[既定の Web サイト] をクリックします。
[仮想ディレクトリ情報] ページで以下の操作を行います。
- [別名] ボックスに仮想ディレクトリの別名を入力します。
- [パス] ボックスに、仮想ディレクトリのパスを入力します。たとえば、[別名] ボックスに「websync1」と入力した場合は、[パス] ボックスに「C:\Inetpub\wwwroot\websync1」と入力します。[次へ] をクリックします。
- 両方のダイアログ ボックスで [はい] をクリックします。これにより、新しいフォルダを作成し、SQL Server ISAPI (インターネット サーバー API) の DLL をコピーします。 .
[認証済みアクセス] ページで以下の操作を行います。
- [統合 Windows 認証] と [Windows ドメイン サーバーでダイジェスト認証を使用する] チェック ボックスがオフになっていることを確認します。
- [基本認証] を選択します。
- [既定のドメイン] ボックスおよび [領域] ボックスに、IIS を実行しているコンピュータのドメインを入力します。
[ディレクトリ アクセス] ページで以下の操作を行います。
- [追加] をクリックし、[ユーザーまたはグループの選択] ダイアログ ボックスで、サブスクライバが IIS への接続に使用するアカウントを追加します。これらのアカウントは、サブスクリプションの新規作成ウィザードの [Web サーバー情報] ページで指定するか、sp_addmergepullsubscription_agent の @internet_login パラメータとの値として指定します。
[スナップショットの共有へのアクセス] ページで、スナップショット共有を入力します。サブスクライバがスナップショット ファイルにアクセスできるように、この共有に適切な権限を設定します。共有の権限の詳細については、「スナップショット フォルダのセキュリティ」を参照してください。
[ウィザードの完了] ページの [完了] をクリックします。
IIS を実行しているリモート コンピュータの構成中に発生したネットワーク エラーなど、何らかの障害が発生した場合、完了済みの操作はすべてロールバックされ、残りの操作は中止されます。完了済みの操作をロールバックできない場合、ウィザードの最後のページの状態は "成功" と表示され、完了済みのアクションはコミットされたままとなります。
IIS を実行しているコンピュータで、64 ビット バージョンの Microsoft Windows を実行している場合、replisapi.dll を適切なディレクトリにコピーする必要があります。
- [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに「iisreset」と入力し、[OK] をクリックします。
- IIS が停止して再起動したら、<drive>:\Program Files\Microsoft SQL Server\90\COM\replisapi から手順 6b. で指定したディレクトリに replisapi.dll をコピーします。
- [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに「cmd」と入力し、[OK] をクリックします。
- 手順 6b. で指定したディレクトリで、次のコマンドを実行します。
regsvr32 replisapi.dll
IIS を実行しているコンピュータの手動の構成
IIS を実行しているコンピュータを手動で構成するには、SQL Server レプリケーション リスナをインストールおよび構成し、IIS に接続するサブスクライバの認証を構成する必要があります。
SQL Server レプリケーション リスナのインストールと構成を行うには
IIS を実行しているコンピュータに、replisapi.dll を格納するファイル ディレクトリを作成します。ディレクトリはどこに作成してもかまいませんが、<drive>:\Inetpub ディレクトリの下に作成することをお勧めします。たとえば、ディレクトリ <drive>:\Inetpub\SQLReplication\ を作成します。
重要 : FAT ファイル システム パーティションではなく NTFS ファイル システム パーティションにこのディレクトリを作成することを強くお勧めします。NTFS ファイル システムであれば、NTFS ファイル システムのファイル アクセス許可を使用して、SQL Server レプリケーションにアクセスできるユーザーを厳密に制御することができます。 replisapi.dll を <drive>:\Program Files\Microsoft SQL Server\90\com\ ディレクトリから、手順 1. で作成したファイル ディレクトリにコピーします。
次の手順に従って replisapi.dll を登録します。
- [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに「cmd」と入力し、[OK] をクリックします。
- 手順 1. で作成したディレクトリで、次のコマンドを実行します。
regsvr32 replisapi.dll
レプリケーション用の新しい Web サイトを作成するか、既存のサイトを使用します。Web サイトは、同期の際にレプリケーション コンポーネントからアクセスされます。Web サイトを作成する方法の詳細については、IIS のマニュアルを参照してください。
IIS で仮想ディレクトリを作成します。仮想ディレクトリは、手順 4. で作成した Web サイトの下に作成し、手順 1. で作成したディレクトリにマッピングします。仮想ディレクトリを作成する方法の詳細については、IIS のマニュアルを参照してください。このディレクトリに割り当てる権限は、最小限にすることをお勧めします。[読み取り] 権限と [ISAPI アプリケーションや CGI などを実行する] 権限は選択する必要がありますが、[ASP などのスクリプトを実行する]、[書き込み]、および [参照] 権限は選択しなくてもかまいません。
replisapi.dll を実行できるように IIS を構成します。手順 4. で割り当てた権限は、以前のバージョンの IIS では十分ですが、IIS バージョン 6.0 では ISAPI (インターネット サーバー API) 拡張を有効にする必要があります。詳細については、IIS 6.0 のマニュアルの「ISAPI 拡張を構成する」および「動的コンテンツを有効および無効にする」を参照してください。
IIS 認証を構成するには
サブスクライバが IIS に接続するには、サブスクライバがリソースやプロセスにアクセスする前に、IIS がサブスクライバを認証する必要があります。IIS では、匿名認証、基本認証、統合認証の 3 種類の認証方式が用意されています。認証は、Web サイト全体または作成した特定の仮想ディレクトリに適用することができます。
基本認証と SSL を組み合わせて使用することをお勧めします。使用する認証の種類にかかわらず、SSL は必須です。認証を構成する方法の詳細については、IIS のマニュアルを参照してください。
SQL Server レプリケーション リスナの権限の設定
サブスクライバが IIS を実行しているコンピュータに接続するときは、IIS の構成時に指定した認証の種類を使用して、サブスクライバが認証されます。IIS はサブスクライバを認証した後、サブスクライバに SQL Server レプリケーションを実行する権限があるかどうかを確認します。replisapi.dll の権限を設定して、SQL Server レプリケーションを実行できるユーザーを制御します。SQL Server レプリケーションに許可なくアクセスされることがないように権限を正しく構成する必要があります。
SQL Server レプリケーション リスナの実行に使用するアカウントを最小の権限で構成するには、次の手順を完了する必要があります。この手順は、IIS 6.0 を実行する Microsoft に適用されます。
次の手順の他に、PAL (パブリケーション アクセス リスト) に必要なログインが登録されていることを確認してください。PAL の詳細については、「パブリッシャのセキュリティ確保」を参照してください。
アカウントと権限を構成するには
IIS を実行しているコンピュータでローカル アカウントを作成します。
- [マイ コンピュータ] を右クリックし、[管理] をクリックします。
- [コンピュータの管理] で、[ローカル ユーザーとグループ] を展開します。
- [ユーザー] を右クリックし、[新しいユーザー] をクリックします。
- ユーザー名と複雑なパスワードを入力します。
- [作成] をクリックしてから、[閉じる] をクリックします。
アカウントを IIS_WPG グループに追加します。
- [コンピュータの管理] で、[ローカル ユーザーとグループ] を展開し、[グループ] をクリックします。
- [IIS_WPG] を右クリックし、[グループに追加] をクリックします。
- [IIS_WPG のプロパティ] ダイアログ ボックスで、[追加] をクリックします。
- [ユーザー、コンピュータ、またはグループの選択] ダイアログ ボックスで、手順 1. で作成したアカウントを追加します。
- [場所を指定してください] フィールドの名前が、ドメインではなくローカル コンピュータの名前であることを確認します。ローカル コンピュータの名前でない場合は、[場所] をクリックします。[場所] ダイアログ ボックスで、ローカル コンピュータを選択し、[OK] をクリックします。
- [ユーザーの選択] ダイアログ ボックスと [IIS_WPG のプロパティ] ダイアログ ボックスで、[OK] をクリックします。
replisapi.dll が保存されているフォルダに対する最小限の権限をアカウントに許可します。
- replisapi.dll のために作成したフォルダに移動し、フォルダを右クリックして、[共有とセキュリティ] をクリックします。
- [セキュリティ] タブで、[追加] をクリックします。
- [ユーザー、コンピュータ、またはグループの選択] ダイアログ ボックスで、手順 1. で作成したアカウントを追加します。
- [場所を指定してください] フィールドの名前が、ドメインではなくローカル コンピュータの名前であることを確認します。ローカル コンピュータの名前でない場合は、[場所] をクリックします。[場所] ダイアログ ボックスで、ローカル コンピュータを選択し、[OK] をクリックします。
- アカウントには、[読み取り]、[読み取りと実行]、および [フォルダの内容の一覧表示] のみが許可されていることを確認します。
- ディレクトリにアクセスする必要がないユーザーまたはグループを選択し、[削除] をクリックします。
- [OK] をクリックします。
インターネット インフォメーション サービス (IIS) マネージャでアプリケーション プールを作成します。
- [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
- [名前] ボックスに「inetmgr」と入力し、[OK] をクリックします。
- インターネット インフォメーション サービス (IIS) マネージャで、[ローカル コンピュータ] ノードを展開します。
- [アプリケーション プール] を右クリックし、[新規作成] をポイントしてから [アプリケーション プール] をクリックします。
- [アプリケーション プール ID] フィールドにプールの名前を入力し、[OK] をクリックします。
アカウントとアプリケーション プールを関連付けます。
- インターネット インフォメーション サービス (IIS) マネージャで、[ローカル コンピュータ] ノードを展開し、[アプリケーション プール] を展開します。
- 作成したアプリケーション プールを右クリックして、[プロパティ] をクリックします。
- [<ApplicationPoolName> のプロパティ] ダイアログ ボックスで、[識別] タブの [構成可能] をクリックします。
- [ユーザー名] および [パスワード] フィールドに、手順 1. で作成したアカウントとパスワードを入力します。
- [OK] をクリックします。
Web 同期に使用する仮想ディレクトリにアプリケーション プールを関連付けます。
- インターネット インフォメーション サービス (IIS) マネージャで、[ローカル コンピュータ] ノードを展開し、[Web サイト] を展開します。
- Web 同期に使用している Web サイトを展開し、Web 同期用に作成した仮想ディレクトリを右クリックして、[プロパティ] をクリックします。
- [<VirtualDirectoryName> のプロパティ] ダイアログ ボックスの [仮想ディレクトリ] タブで、手順 5. で作成したアプリケーション プールを [アプリケーション プール] ボックスから選択します。
- [OK] をクリックします。
replisapi.dll への接続のテスト
診断モードで Web 同期を実行すると、IIS を実行しているコンピュータへの接続をテストして、SSL (Secure Sockets Layer) 証明書が正しくインストールされているかどうかを確認できます。診断モードで Web 同期を実行するには、IIS を実行しているコンピュータの管理者である必要があります。
replisapi.dll への接続をテストするには
サブスクライバの LAN (ローカル エリア ネットワーク) が正しく設定されていることを確認します。
- Microsoft Internet Explorer で、[ツール] メニューの [インターネット オプション] をクリックします。
- [接続] タブで、[LAN の設定] をクリックします。
- LAN でプロキシ サーバーを使用していない場合は、[設定を自動的に検出する] と [LAN にプロキシ サーバーを使用する] チェック ボックスをオフにします。
- プロキシ サーバーを使用している場合は、[LAN にプロキシ サーバーを使用する] と [ローカル アドレスにはプロキシ サーバーを使用しない] チェック ボックスをオンにします。
- [OK] をクリックします。
サブスクライバ側の Internet Explorer から診断モードでサーバーに接続します。診断モードで接続するには、replisapi.dll のアドレスの後に「
?diag
」を追加します。たとえば、https://server.domain.com/directory/replisapi.dll?diag と指定します。IIS に指定した証明書が Microsoft Windows オペレーティング システムによって認識されない場合は、[セキュリティの警告] ダイアログ ボックスが表示されます。証明書がテスト用の証明書であるか、Windows が認識しない証明機関 (CA) によって発行されていると、この警告が表示されます。
メモ : このダイアログ ボックスが表示されない場合は、アクセスしているサーバーの証明書が信頼された証明書としてサブスクライバの証明書ストアに追加されていることが確認されます。証明書のエクスポートの詳細については、IIS のマニュアルを参照してください。 - [セキュリティの警告] ダイアログ ボックスで、[証明書の表示] をクリックします。
- [証明書] ダイアログ ボックスの [全般] タブで、[証明書のインストール] をクリックします。
- 証明書インポート ウィザードを実行します。このウィザードでは既定の値をそのまま使用します。
- [セキュリティの警告] ダイアログ ボックスで、[はい] をクリックします。
- 証明書のインポート ウィザードの確認ダイアログ ボックスで、[OK] をクリックします。
- [証明書] ダイアログ ボックスを閉じます。
- [セキュリティの警告] ダイアログ ボックスで、[はい] をクリックします。
メモ : ユーザーの証明書がインストールされます。IIS と同期するユーザーすべてに対してこの手順を実行する必要があります。 [<ServerName> に接続] ダイアログ ボックスで、マージ エージェントが IIS サーバーへの接続に使用するログインとパスワードを指定します。これらの資格情報は、サブスクリプションの新規作成ウィザードで指定することもできます。
[SQL Web 同期診断情報] と呼ばれる Internet Explorer のウィンドウで、ページの [Status] 列の値が [SUCCESS] になっていることを確認します。
証明書がサブスクライバに正しくインストールされていることを確認します。
- Internet Explorer をいったん閉じてから、再度開きます。
- サーバーに診断モードで接続します。証明書が正しくインストールされている場合は、[セキュリティの警告] ダイアログ ボックスが表示されません。ダイアログ ボックスが表示される場合は、マージ エージェントから IIS を実行しているコンピュータへの接続に失敗します。アクセスしているサーバーの証明書が、信頼された証明書としてサブスクライバの証明書ストアに追加されていることを確認する必要があります。証明書のエクスポートの詳細については、IIS のマニュアルを参照してください。