方法: Web 同期用に IIS 7 を構成する
ここでは、マージ レプリケーションの Web 同期で使用する Microsoft インターネット インフォメーション サービス (IIS) バージョン 7 を手動で構成する手順について説明します。IIS 7.0 では Web 同期の構成ウィザードがサポートされていないため、手動で構成する必要があります。
IIS 7 の構成は、Web 同期を有効にするために必要な 3 つの手順のうちの最初の手順です。
構成プロセス全体の概要については、「Web 同期の構成」を参照してください。
重要 |
---|
アプリケーションで .NET Framework 2.0 以降のバージョンのみが使用されることと、.NET Framework の以前のバージョンが IIS サーバーにインストールされていないことを確認します。以前のバージョンの .NET Framework があると、エラーが発生する可能性があります。たとえば、"Web 同期中のメッセージの形式が無効でした。Web サーバーでレプリケーション コンポーネントが正しく構成されていることを確認してください。" というエラーなどです。 |
Web 同期を使用するには、以下の手順で IIS 7 を構成する必要があります。ここでは、各手順を詳しく説明します。
IIS を実行しているコンピューターに Microsoft SQL Server レプリケーション リスナーをインストールして構成します。
SSL (Secure Sockets Layer) を構成します。IIS とすべてのサブスクライバー間の通信には SSL が必要です。
IIS 認証を構成します。
アカウントを構成し、SQL Server レプリケーション リスナーの権限を設定します。
SQL Server レプリケーション リスナーのインストール
SQL Server レプリケーション リスナーのインストールと構成を行うには
IIS を実行しているコンピューターに、replisapi.dll 用の新しいファイル ディレクトリを作成します。ディレクトリはどこに作成してもかまいませんが、<drive>:\Inetpub ディレクトリの下に作成することをお勧めします。たとえば、ディレクトリ <drive>:\Inetpub\SQLReplication\ を作成します。
replisapi.dll を <ドライブ>:\Program Files\Microsoft SQL Server\100\com\ ディレクトリから、手順 1. で作成したファイル ディレクトリにコピーします。
次の手順に従って replisapi.dll を登録します。
[スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。[名前] ボックスに「cmd」と入力し、[OK] をクリックします。
手順 1. で作成したディレクトリで、次のコマンドを実行します。
regsvr32 replisapi.dll
レプリケーション用の新しい Web サイトを作成するか、既存のサイトを使用します。この Web サイトは、同期の際にレプリケーション コンポーネントからアクセスされます。ここでは、既定の Web サイトを使用すると仮定します。Web サイトを作成する方法の詳細については、IIS のマニュアルを参照してください。
IIS で仮想ディレクトリを作成します。仮想ディレクトリは、手順 4. で作成した Web サイトの下に作成し、手順 1. で作成したディレクトリにマッピングします。このディレクトリに割り当てる権限は最小限にしてください。少なくとも [読み取り] と [実行] の権限を選択する必要があります。
インターネット インフォメーション サービス (IIS) マネージャーの [接続] ペインで [既定の Web サイト] を右クリックし、[仮想ディレクトリの追加] を選択します。
[エイリアス] に「SQLReplication」と入力します。
[物理パス] に「<drive>:\Inetpub\SQLReplication\」と入力し、[OK] をクリックします。
replisapi.dll を実行できるように IIS を構成します。
インターネット インフォメーション サービス (IIS) マネージャーで、[既定の Web サイト] をクリックします。
中央のペインで、[ハンドラー マッピング] をクリックします。
[アクション] ペインで、[モジュール マップの追加] をクリックします。
[要求パス] に「replisapi.dll」と入力します。
[モジュール] ボックスの一覧から [IsapiModule] を選択します。
[実行可能ファイル] に「<drive>:\Inetpub\SQLReplication\replisapi.dll」と入力します。
[名前] に「Replisapi」と入力します。
[要求の制限] をクリックし、[アクセス] タブをクリックして、[実行] をクリックします。
[OK] をクリックして [要求の制限] ダイアログ ボックスを閉じ、もう一度 [OK] をクリックして [モジュール マップの追加] ダイアログ ボックスを閉じます。ISAPI 拡張を許可するように求めるメッセージが表示されたら、[はい] をクリックして ISAPI 拡張を追加します。
Replisapi.dll が [有効] のハンドラー マッピングの一覧に表示されていることを確認します。[無効] の一覧に表示されている場合は、Replisapi のエントリを右クリックし、[機能のアクセス許可の編集] をクリックします。[実行] チェック ボックスをオンにし、[OK] をクリックします。
IIS 認証の構成
サブスクライバーのコンピューターが IIS に接続するには、サブスクライバーがリソースやプロセスにアクセスする前に、IIS がサブスクライバーを認証する必要があります。認証は、Web サイト全体または作成した特定の仮想ディレクトリに適用することができます。
基本認証と SSL を組み合わせて使用することをお勧めします。使用する認証の種類にかかわらず、SSL は必須です。
基本認証と SSL を組み合わせて使用することをお勧めします。使用する認証の種類にかかわらず、SSL は必須です。
IIS 認証を構成するには
インターネット インフォメーション サービス (IIS) マネージャーで、[既定の Web サイト] をクリックします。
中央のペインで、[認証] をダブルクリックします。
[匿名認証] を右クリックし、[無効にする] をクリックします。
[基本認証] を右クリックし、[有効にする] をクリックします。
Secure Sockets Layer の構成
SSL を構成するには、IIS を実行しているコンピューターが使用する証明書を指定する必要があります。マージ レプリケーション用の Web 同期では、サーバー証明書のみがサポートされており、クライアント証明書はサポートされていません。配置用に IIS を構成するには、最初に証明機関 (CA) から証明書を取得する必要があります。証明書の詳細については、IIS のマニュアルを参照してください。
証明書をインストールしたら、その証明書を Web 同期で使用する Web サイトと関連付ける必要があります。開発やテストでは、自己署名証明書を指定できます。この場合、IIS 7 で証明書を作成してコンピューターに登録できます。
ここで紹介する手順と運用環境に配置する場合の手順との違いは、運用環境や運用前テストの環境では、自己署名証明書ではなく、CA によって発行された証明書を使用することです。
重要 |
---|
運用環境で自己署名証明書を使用することは推奨されません。自己署名証明書は安全ではありません。自己署名証明書を使用するのは、開発およびテストのときだけにしてください。 |
SSL を構成するには、次の手順を実行します。
SSL を要求し、クライアント証明書を無視するように Web サイトを構成します。
CA から証明書を取得するか、自己署名証明書を作成します。
証明書をレプリケーション Web サイトにバインドします。
Web サイトの SSL セキュリティを要求するには
インターネット インフォメーション サービス (IIS) マネージャーでローカル サーバーのノードを展開し、[既定の Web サイト] (Web 同期サイトが既定の Web サイトと異なる場合は Web 同期サイト) をクリックします。
中央のペインで、[SSL 設定] をダブルクリックします。
[SSL が必要] チェック ボックスをオンにします。[クライアント証明書] で、[無視] が選択されていることを確認します。
テスト用の自己署名証明書を作成するには
インターネット インフォメーション サービス (IIS) マネージャーでローカル サーバーのノードをクリックし、中央のペインで [サーバー証明書] をダブルクリックします。
[アクション] ペインで、[自己署名証明書の作成] をクリックします。
[自己署名証明書の作成] ダイアログ ボックスで、証明書の名前を入力し、[OK] をクリックします。
証明書を Web サイトにバインドするには
[接続] ペインで、[既定の Web サイト] (Web 同期サイトが既定の Web サイトと異なる場合は Web 同期サイト) をクリックします。
[アクション] ペインで [バインド] をクリックし、[追加] をクリックします。[サイト バインドの追加] ダイアログ ボックスが表示されます。
[種類] ボックスの一覧で、[https] を選択します。[IP アドレス] と [ポート] は既定の設定のままにします。
[SSL 証明書] ボックスの一覧で、「テスト用の自己署名証明書を作成するには」で作成した証明書を選択し、[OK] をクリックし、[閉じる] をクリックします。
証明書をテストするには
インターネット インフォメーション サービス (IIS) マネージャーで、[既定の Web サイト] をクリックします。
[アクション] ペインで、[Browse *:443(https)] をクリックします。
Internet Explorer が開き、"この Web サイトのセキュリティ証明書には問題があります" というメッセージが表示されます。これは、関連付けられている証明書が既知の CA によって発行された証明書ではないために信頼できないことを通知する警告です。これは予期されたとおりの警告なので、[このサイトの閲覧を続行する (推奨されません)] をクリックします。
[localhost に接続] ダイアログ ボックスが表示された場合は、ユーザー名とパスワードを入力して続行します。これで、Web サイトの既定のページが表示されます。
SQL Server レプリケーション リスナーの権限の設定
サブスクライバーのコンピューターが IIS を実行しているコンピューターに接続するときは、IIS の構成時に指定した認証の種類を使用して、サブスクライバーが認証されます。IIS はサブスクライバーを認証した後、サブスクライバーに SQL Server レプリケーションを実行する権限があるかどうかを確認します。replisapi.dll の権限を設定して、SQL Server レプリケーションを実行できるユーザーを制御します。SQL Server レプリケーションに許可なくアクセスされることがないように権限を正しく構成する必要があります。
SQL Server レプリケーション リスナーの実行に使用するアカウントを最小の権限で構成するには、次の手順を完了する必要があります。以下の手順は、IIS 7.0 を実行する Microsoft Windows Server 2008 に適用されます。
次の手順の他に、必要なログインが PAL (パブリケーション アクセス リスト) に登録されていることも確認してください。PAL の詳細については、「パブリッシャのセキュリティ確保」を参照してください。
重要 ここで作成するアカウントは、同期の際にパブリッシャーとディストリビューターに接続するアカウントです。したがって、ディストリビューション サーバーとパブリケーション サーバーに SQL ログイン アカウントとして追加する必要があります。
SQL Server レプリケーション リスナーに使用するアカウントには、「マージ エージェント セキュリティ」の「パブリッシャーまたはディストリビューターへの接続」で説明されている権限が必要です。
このアカウントに必要な権限の概要を以下に示します。
パブリケーション アクセス リスト (PAL) のメンバーである。
パブリケーション データベースのユーザーに関連付けられたログインにマップされている。
ディストリビューション データベース内のユーザーに関連付けられているログインにマップされている。
スナップショット共有の読み取り権限を持つ。
アカウントと権限を構成するには
IIS を実行しているコンピューターでローカル アカウントを作成します。
サーバー マネージャーを開きます。[スタート] ボタンをクリックし、[マイ コンピューター] を右クリックして、[管理] をクリックします。
サーバー マネージャーで、[構成] を展開し、[ローカル ユーザーとグループ] を展開します。
[ユーザー] を右クリックし、[新しいユーザー] をクリックします。
ユーザー名と複雑なパスワードを入力します。[ユーザーは次回ログオン時にパスワードの変更が必要] チェック ボックスをオフにします。
[作成] をクリックしてから、[閉じる] をクリックします。
アカウントを IIS_IUSRS グループに追加します。
サーバー マネージャーで、[構成]、[ローカル ユーザーとグループ] の順に展開し、[グループ] をクリックします。
[IIS_IUSRS] を右クリックし、[グループに追加] をクリックします。
[IIS_IUSRS のプロパティ] ダイアログ ボックスで、[追加] をクリックします。
[ユーザー、コンピューター、またはグループの選択] ダイアログ ボックスで、手順 1. で作成したアカウントを追加します。
[場所を指定してください] フィールドに、ドメインではなくローカル コンピューターの名前が表示されていることを確認します。ローカル コンピューターの名前が表示されていない場合は、[場所] をクリックします。[場所] ダイアログ ボックスで、ローカル コンピューターを選択し、[OK] をクリックします。
[ユーザーの選択] ダイアログ ボックスと [IIS_IUSRS のプロパティ] ダイアログ ボックスで、[OK] をクリックします。
replisapi.dll が保存されているフォルダーに対する最小限の権限をアカウントに許可します。
Windows エクスプローラーで、replisapi.dll のために作成したフォルダーを右クリックして、[プロパティ] をクリックします。
[セキュリティ] タブで、[編集] をクリックします。
[<フォルダー名> のアクセス許可] ダイアログ ボックスで [追加] をクリックして、手順 1. で作成したアカウントを追加します。
[場所を指定してください] フィールドに、ドメインではなくローカル コンピューターの名前が表示されていることを確認します。ローカル コンピューターの名前が表示されていない場合は、[場所] をクリックします。[場所] ダイアログ ボックスで、ローカル コンピューターを選択し、[OK] をクリックします。
アカウントには、[読み取り]、[読み取りと実行]、および [フォルダーの内容の一覧表示] のみが許可されていることを確認します。
ディレクトリにアクセスする必要がないユーザーまたはグループを選択し、[削除] をクリックし、[OK] をクリックします。
インターネット インフォメーション サービス (IIS) マネージャーでアプリケーション プールを作成します。
インターネット インフォメーション サービス (IIS) マネージャーの [接続] ペインで、ローカル サーバーのノードを展開します。
[アプリケーション プール] を右クリックし、[アプリケーション プールの追加] をクリックします。
アプリケーション プールの名前を入力し、その他のフィールドは既定値のままにして、[OK] をクリックします。
注 3 つ以上の同期クライアントが同時に実行される可能性がある場合は、Web ガーデンを作成できます。詳細については、「Web 同期の構成」の「Web ガーデンの作成」を参照してください。
アカウントとアプリケーション プールを関連付けます。
インターネット インフォメーション サービス (IIS) マネージャーで、ローカル サーバーのノードを展開し、[アプリケーション プール] をクリックします。
作成したアプリケーション プールを右クリックして、[アプリケーション プールの既定値の設定] をクリックします。
[アプリケーション プールの既定値] ダイアログ ボックスで、[プロセス モデル] セクションが表示されるまでスクロールして、[ID] フィールドをクリックします。
[ID] 行の右側にある参照ボタンをクリックします。
[カスタム アカウント] オプションをクリックし、[設定] をクリックします。
[ユーザー名] および [パスワード] フィールドに、手順 1. で作成したアカウントとパスワードを入力し、[OK] をクリックします。
[OK] をクリックして [アプリケーション プール ID] ダイアログ ボックスを閉じ、もう一度 [OK] をクリックして [アプリケーション プールの既定値] ダイアログ ボックスを閉じます。
アプリケーション プールとレプリケーション Web サイトを関連付けます。
インターネット インフォメーション サービス (IIS) マネージャーでローカル サーバーのノードを展開し、[既定の Web サイト] (Web 同期サイトが既定の Web サイトと異なる場合は Web 同期サイト) をクリックします。
[アクション] ペインの [Web サイトの管理] で、[詳細設定] をクリックします。
[詳細設定] ダイアログ ボックスで、[アプリケーション プール] の右側にある参照ボタンをクリックします。
[アプリケーション プール] ボックスの一覧で、手順 4. で作成したアプリケーション プールを選択し、[OK] をクリックします。
もう一度 [OK] をクリックして [詳細設定] を閉じます。
replisapi.dll への接続のテスト
診断モードで Web 同期を実行すると、IIS を実行しているコンピューターへの接続をテストして、SSL (Secure Sockets Layer) 証明書が正しくインストールされているかどうかを確認できます。診断モードで Web 同期を実行するには、IIS を実行しているコンピューターの管理者である必要があります。
Websync.log ファイルに追加される情報を変更する方法については、「診断モードでサーバーに接続するときのログ記録を変更する方法」を参照してください。
replisapi.dll への接続をテストするには
サブスクライバーの LAN (ローカル エリア ネットワーク) が正しく設定されていることを確認します。
Microsoft Internet Explorer で、[ツール] メニューの [インターネット オプション] をクリックします。
[接続] タブで、[LAN の設定] をクリックします。
LAN でプロキシ サーバーを使用していない場合は、[設定を自動的に検出する] と [LAN にプロキシ サーバーを使用する] チェック ボックスをオフにします。
プロキシ サーバーを使用している場合は、[LAN にプロキシ サーバーを使用する] と [ローカル アドレスにはプロキシ サーバーを使用しない] チェック ボックスをオンにして、[OK] をクリックします。
サブスクライバー側の Internet Explorer から診断モードでサーバーに接続します。診断モードで接続するには、replisapi.dll のアドレスの後に「?diag」を追加します。たとえば、https://server.domain.com/directory/replisapi.dll?diag と指定します。
注 上の例の server.domain.com は、IIS マネージャーの [サーバー証明書] セクションに表示される [発行先] の正確な名前に置き換える必要があります。
IIS に指定した証明書が Windows オペレーティング システムによって認識されない場合は、[セキュリティの警告] ダイアログ ボックスが表示されます。証明書がテスト用の証明書であるか、Windows が認識しない証明機関 (CA) によって発行されていると、この警告が表示されます。
注 このダイアログ ボックスが表示されない場合は、アクセスしているサーバーの証明書が信頼された証明書としてサブスクライバーの証明書ストアに追加されていることが確認されます。証明書のエクスポートの詳細については、IIS のマニュアルを参照してください。
[セキュリティの警告] ダイアログ ボックスで、[証明書の表示] をクリックします。
[証明書] ダイアログ ボックスの [全般] タブで、[証明書のインストール] をクリックします。
証明書インポート ウィザードを実行します。このウィザードでは既定の値をそのまま使用します。
[セキュリティの警告] ダイアログ ボックスで、[はい] をクリックします。
証明書のインポート ウィザードの確認ダイアログ ボックスで、[OK] をクリックします。
[証明書] ダイアログ ボックスを閉じます。
[セキュリティの警告] ダイアログ ボックスで、[はい] をクリックします。
注 ユーザーの証明書がインストールされます。IIS と同期するユーザーすべてに対してこの手順を実行する必要があります。
[<ServerName> に接続] ダイアログ ボックスで、マージ エージェントが IIS サーバーへの接続に使用するログインとパスワードを指定します。これらの資格情報は、サブスクリプションの新規作成ウィザードで指定することもできます。
[SQL Web 同期診断情報] と呼ばれる Internet Explorer のウィンドウで、ページの [Status] 列の値が [SUCCESS] になっていることを確認します。
証明書がサブスクライバーに正しくインストールされていることを確認します。
Internet Explorer をいったん閉じてから、再度開きます。
サーバーに診断モードで接続します。証明書が正しくインストールされている場合は、[セキュリティの警告] ダイアログ ボックスが表示されません。ダイアログ ボックスが表示される場合は、マージ エージェントから IIS を実行しているコンピューターへの接続に失敗します。アクセスしているサーバーの証明書が、信頼された証明書としてサブスクライバーの証明書ストアに追加されていることを確認する必要があります。証明書のエクスポートの詳細については、IIS のマニュアルを参照してください。