次の方法で共有


Web 同期用の IIS 7 の構成

このトピックの手順では、マージ レプリケーション用の Web 同期で使用するために、Microsoft インターネット インフォメーション サービス (IIS) バージョン 7 以降を手動で構成するプロセスについて説明します。

IIS 7 の構成は、Web 同期を有効にするために必要な 3 つの手順の最初の手順です。

構成プロセス全体の概要については、「Configure Web Synchronization (Web 同期の構成)」をご覧ください。

重要

アプリケーションで .NET Framework 2.0 以降のバージョンのみが使用されていること、および以前のバージョンの .NET Framework が IIS サーバーにインストールされていないことを確認します。 以前のバージョンの .NET Framework では、次のようなエラーが発生する可能性があります。"Web 同期中のメッセージの形式が無効でした。 レプリケーション コンポーネントが Web サーバーで正しく構成されていることを確認します。

Web 同期を使用するには、次の手順を実行して IIS 7 を構成する必要があります。 各手順については、このトピックで詳しく説明します。

  1. IIS を実行しているコンピューターに Microsoft SQL Server レプリケーション リスナーをインストールして構成します。

  2. Secure Sockets Layer (SSL) を構成します。 IIS とすべてのサブスクライバー間の通信には SSL が必要です。

  3. IIS 認証を構成します。

  4. アカウントを構成し、SQL Server レプリケーション リスナーの権限を設定します。

SQL Server レプリケーション リスナーのインストール

Web 同期は、バージョン 5.0 以降の IIS でサポートされます。 IIS バージョン 5 および 6 の Web 同期の構成ウィザードは、IIS バージョン 7.0 以降では使用できません。 SQL Server 2012 以降では、IIS サーバーで Web 同期コンポーネントを使用するには、レプリケーションを使用して SQL Server をインストールする必要があります。 これは、無料の SQL Server Express エディションにすることができます。

SQL Server レプリケーション リスナーをインストールして構成するには

  1. SQL Server レプリケーションを IIS コンピューターにインストールします。

  2. IIS を実行しているコンピューターに、replisapi.dll 用の新しいファイル ディレクトリを作成します。 ディレクトリはどこに作成してもかまいませんが、<drive>:\Inetpub ディレクトリの下に作成することをお勧めします。 たとえば、ディレクトリ <drive>:\Inetpub\SQLReplication\ を作成します。

  3. replisapi.dll <drive>:\Program Files\Microsoft SQL Server\120\com\ のディレクトリから、手順 1 で作成したファイル ディレクトリにコピーします。

  4. 次の手順に従って replisapi.dll を登録します。

    1. スタートをクリックした後、実行をクリックします。 [ 開く ] ボックスに「 cmd」と入力し、[OK] をクリック します

    2. 手順 1. で作成したディレクトリで、次のコマンドを実行します。

      regsvr32 replisapi.dll

  5. レプリケーション用の新しい Web サイトを作成するか、既存のサイトを使用します。 この Web サイトは、同期の際にレプリケーション コンポーネントからアクセスされます。 このトピックの手順では、既定の Web サイトを想定します。 Web サイトを作成する方法の詳細については、IIS のマニュアルを参照してください。

  6. IIS で仮想ディレクトリを作成します。 仮想ディレクトリは、手順 4. で作成した Web サイトの下に作成し、手順 1. で作成したディレクトリにマッピングします。 このディレクトリに割り当てる権限は最小限にしてください。 少なくとも [読み取り][実行] の権限を選択する必要があります。

    1. インターネット インフォメーション サービス (IIS) マネージャー[接続] ペインで [既定の Web サイト]を右クリックし、 [仮想ディレクトリの追加]を選択します。

    2. [ エイリアス] に「 SQLReplication」と入力します。

    3. [物理パス] に「<drive>:\Inetpub\SQLReplication\」と入力し、[OK] をクリックします

  7. replisapi.dll を実行できるように IIS を構成します。

    1. インターネット インフォメーション サービス (IIS) マネージャーで、[既定の Web サイト] をクリックします。

    2. 中央のウィンドウで、[ ハンドラー マッピング] をクリックします。

    3. [操作] ウィンドウで、[モジュール マッピングの追加] をクリックします。

    4. [要求パス] に「replisapi.dll」と入力します。

    5. [モジュール] ドロップダウン リストから [IsapiModule] を選択します。

    6. 「実行可能ファイル」 のところに <drive>:\Inetpub\SQLReplication\replisapi.dll と入力します。

    7. 名前Replisapi と入力します。

    8. [ 要求の制限 ] ボタンをクリックし、[ アクセス ] タブをクリックして、[ 実行] をクリックします。

    9. [ OK] を クリックして [ 要求の制限 ] ダイアログ ボックスを閉じ、もう一度 [OK] をクリックして [ モジュール マッピングの追加 ] ダイアログ ボックスを閉じます。 ISAPI 拡張機能を許可するように求められたら、[ はい ] をクリックして拡張機能を追加します。

    10. Replisapi.dll が [有効] のハンドラー マッピングの一覧に表示されていることを確認します。 [無効] リストにある場合は、Replisapi エントリを右クリックし、[機能の権限の編集] をクリックします。 [ 実行 ] ボックスをオンにし、[OK] をクリックします。

IIS 認証の構成

サブスクライバーのコンピューターが IIS に接続するには、サブスクライバーがリソースやプロセスにアクセスする前に、IIS がサブスクライバーを認証する必要があります。 認証は、Web サイト全体または作成した特定の仮想ディレクトリに適用することができます。

SSL で基本認証を使用することをお勧めします。 使用される認証の種類に関係なく、SSL が必要です。

SSL で基本認証を使用することをお勧めします。 使用される認証の種類に関係なく、SSL が必要です。

IIS 認証を構成するには

  1. インターネット インフォメーション サービス (IIS) マネージャーで、[既定の Web サイト] をクリックします。

  2. 中央のペインで、 [認証]をダブルクリックします。

  3. [匿名認証] を右クリックし、[無効にする] をクリックします。

  4. [基本認証] を右クリックし、[有効にする] をクリックします。

Secure Sockets Layer の構成

SSL を構成するには、IIS を実行しているコンピューターで使用する証明書を指定します。 マージ レプリケーション用の Web 同期では、サーバー証明書のみがサポートされており、クライアント証明書はサポートされていません。 配置用に IIS を構成するには、最初に証明機関 (CA) から証明書を取得する必要があります。 証明書の詳細については、IIS のマニュアルを参照してください。

証明書をインストールしたら、その証明書を Web 同期で使用する Web サイトと関連付ける必要があります。 開発やテストでは、自己署名証明書を指定できます。 この場合、IIS 7 で証明書を作成してコンピューターに登録できます。

運用環境向けのデプロイとここで示す手順の違いは、運用環境と運用前のテストでは、自己署名証明書ではなく CA によって発行された証明書を使用するということです。

重要

運用環境のインストールでは、自己署名証明書は推奨されません。 自己署名証明書はセキュリティで保護されていません。 自己署名証明書を使用するのは、開発およびテストのときだけにしてください。

SSL を構成するには、次の手順を実行します。

  1. SSL を要求し、クライアント証明書を無視するように Web サイトを構成します。

  2. CA から証明書を取得するか、自己署名証明書を作成します。

  3. 証明書をレプリケーション Web サイトにバインドします。

Web サイトに SSL セキュリティを要求するには

  1. インターネット インフォメーション サービス (IIS) マネージャーで、ローカル サーバー ノードを展開し、既定の Web サイト (既定の Web サイトと異なる場合は Web 同期サイト) をクリックします。

  2. 中央のペインで、 [SSL 設定]をダブルクリックします。

  3. [SSL が必要] チェック ボックスをオンにします。 [クライアント証明書]で、 [無視] が選択されていることを確認します。

テスト用の自己署名証明書を作成するには

  1. インターネット インフォメーション サービス (IIS) マネージャーで、ローカル サーバー ノードをクリックし、中央のウィンドウで [サーバー証明書] をダブルクリックします。

  2. [操作] ウィンドウで、[証明書 Self-Signed 作成] をクリックします。

  3. [ 証明書 Self-Signed 作成 ] ダイアログ ボックスで、証明書の名前を入力し、[OK] をクリック します

証明書を Web サイトにバインドするには
  1. [ 接続 ] ウィンドウで、 既定の Web サイト (既定の Web サイトと異なる場合は Web 同期サイト) をクリックします。

  2. [操作] ウィンドウで、[バインド] をクリックし、[追加] をクリックします。 [ サイト バインドの追加 ] ダイアログ ボックスが表示されます。

  3. [種類] ドロップダウン リストから [https] を選択します。 [IP アドレス][ポート]は既定の設定のままにします。

  4. [SSL 証明書] ドロップダウン リストから、[テスト用の自己署名証明書を作成するには] で作成した証明書を選択し、[OK] をクリックして、[閉じる] をクリックします。

証明書をテストするには
  1. インターネット インフォメーション サービス (IIS) マネージャーで、[既定の Web サイト] をクリックします。

  2. [操作] ペインで、[参照] *:443(https) をクリックします。

  3. Internet Explorer が開き、"この Web サイトのセキュリティ証明書に問題があります" というメッセージが表示されます。この警告は、関連付けられている証明書が認識された CA によって発行されておらず、信頼できない可能性があることを示します。 これは予期される警告であるため、 この Web サイトに進む (推奨されません) をクリックします。

  4. 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 の詳細については、「Secure the Publisher (パブリッシャーのセキュリティ保護)」を参照してください。

大事な このセクションで作成するアカウントは、同期中にパブリッシャーとディストリビューターに接続するアカウントです。 したがって、ディストリビューション サーバーとパブリケーション サーバーに SQL ログイン アカウントとして追加する必要があります。

SQL Server レプリケーション リスナーに使用されるアカウントには、「パブリッシャーまたはディストリビューターへの接続」セクションの「マージ エージェントのセキュリティ」トピックの説明に従って、アクセス許可が必要です。

このアカウントに必要な権限の概要を以下に示します。

  • パブリケーション アクセス リスト (PAL) のメンバーである。

  • パブリケーション データベース内のユーザーに関連付けられたログインにマップされている。

  • ディストリビューション データベース内のユーザーに関連付けられたログインにマップされている。

  • スナップショット共有の読み取り権限を持つ。

アカウントとアクセス許可を構成するには

  1. IIS を実行しているコンピューターでローカル アカウントを作成します。

    1. サーバー マネージャーを開きます。 [スタート] メニューの [ コンピューター] を右クリックし、[ 管理] をクリックします。

    2. サーバー マネージャーで、 [構成]を展開し、 [ローカル ユーザーとグループ]を展開します。

    3. [ ユーザー] を右クリックし、[ 新しいユーザー] をクリックします。

    4. ユーザー名と複雑なパスワードを入力します。 [ユーザーは次回ログオン時にパスワードの変更が必要]チェック ボックスをオフにします。

    5. [ 作成] をクリックし、[ 閉じる] をクリックします。

  2. アカウントを IIS_IUSRS グループに追加します。

    1. サーバー マネージャーで、[構成] を展開し、[ローカル ユーザーとグループ] を展開し、[グループ] をクリックします。

    2. IIS_IUSRSを右クリックし、[グループに追加] をクリックします。

    3. [ IIS_IUSRSプロパティ ] ダイアログ ボックスで、[ 追加] をクリックします。

    4. [ユーザー、コンピューター、またはグループの選択] ダイアログ ボックスで、手順 1. で作成したアカウントを追加します。

    5. [この場所から] ローカル コンピューターの名前(ドメインではない)が表示されていることを確認してください。 このフィールドにローカル コンピューター名が表示されない場合は、[ 場所] をクリックします。 [ 場所 ] ダイアログ ボックスで、ローカル コンピューターを選択し、[OK] をクリック します

    6. [ ユーザーの選択 ] ダイアログ ボックスと [IIS_IUSRSプロパティ ] ダイアログ ボックスで、[OK] をクリックします。

  3. replisapi.dll が保存されているフォルダーに対する最小限の権限をアカウントに許可します。

    1. Windows エクスプローラーで、replisapi.dll用に作成したフォルダーを右クリックし、[ プロパティ] をクリックします。

    2. [ セキュリティ ] タブで、[ 編集] をクリックします。

    3. [<foldername のアクセス許可>ダイアログ ボックスで、[追加] をクリックして、手順 1 で作成したアカウントを追加します。

    4. [この場所から] ローカル コンピューターの名前(ドメインではない)が表示されていることを確認してください。 このフィールドにローカル コンピューター名が表示されない場合は、[ 場所] をクリックします。 [ 場所 ] ダイアログ ボックスで、ローカル コンピューターを選択し、[OK] をクリック します

    5. アカウントには、[読み取り][読み取りと実行][フォルダーの内容の一覧表示] のみが許可されていることを確認します。

    6. ディレクトリへのアクセスを必要としないユーザーまたはグループを選択し、[ 削除] をクリックして、[ OK] をクリックします。

  4. インターネット インフォメーション サービス (IIS) マネージャーでアプリケーション プールを作成します。

    1. インターネット インフォメーション サービス (IIS) マネージャー[接続] ペインで、ローカル サーバーのノードを展開します。

    2. [ アプリケーション プール] を右クリックし、[ アプリケーション プールの追加] をクリックします。

    3. アプリケーション プールの名前を入力し、残りのフィールドの既定値のままにして、[OK] をクリック します

    3 つ以上の同期クライアントが同時に実行される可能性がある場合は、Web ガーデンを作成できます。 詳細については、「Web 同期の構成」の「Web ガーデンの作成」を参照してください。

  5. アカウントとアプリケーション プールを関連付けます。

    1. インターネット インフォメーション サービス (IIS) マネージャーで、ローカル サーバー ノードを展開し、[アプリケーション プール] をクリックします。

    2. 作成したアプリケーション プールを右クリックし、[ アプリケーション プールの既定値の設定] をクリックします。

    3. [ アプリケーション プールの既定値 ] ダイアログ ボックスで、[ プロセス モデル ] セクションまで下にスクロールし、[ ID ] フィールドをクリックします。

    4. ID 行の右側にある省略記号ボタンをクリックします。

    5. [ カスタム アカウント ] ラジオ ボタンをクリックし、[ 設定] をクリックします。

    6. [ ユーザー名 ] フィールドと [ パスワード ] フィールドに、手順 1 で作成したアカウントとパスワードを入力し、[ OK] をクリックします。

    7. [ OK] を クリックして [ アプリケーション プール ID ] ダイアログ ボックスを閉じ、もう一度 [OK] をクリックして [ アプリケーション プールの既定値] ダイアログ ボックスを閉じます。

  6. アプリケーション プールとレプリケーション Web サイトを関連付けます。

    1. インターネット インフォメーション サービス (IIS) マネージャーで、ローカル サーバー ノードを展開し、既定の Web サイト (既定の Web サイトと異なる場合は Web 同期サイト) をクリックします。

    2. [操作] ウィンドウの [Web サイトの管理] で、[詳細設定] をクリックします。

    3. [ 詳細設定] ダイアログ ボックスで、 アプリケーション プールの右側にある省略記号ボタンをクリックします。

    4. [ アプリケーション プール ] ドロップダウン リストから、手順 4 で作成したアプリケーション プールを選択し、[OK] をクリック します

    5. [ OK] をもう 一度クリックして、[詳細設定] を閉じます。

replisapi.dll への接続のテスト

診断モードで Web 同期を実行して、IIS を実行しているコンピューターへの接続をテストし、Secure Sockets Layer (SSL) 証明書が正しくインストールされていることを確認します。 診断モードで Web 同期を実行するには、IIS を実行しているコンピューターの管理者である必要があります。

replisapi.dll への接続をテストするには

  1. サブスクライバーの LAN (ローカル エリア ネットワーク) が正しく設定されていることを確認します。

    1. Microsoft Internet Explorer の [ツール ] メニューの [ インターネット オプション] をクリックします。

    2. [接続] タブで、 [LAN の設定]をクリックします。

    3. プロキシ サーバーが LAN で使用されていない場合は、[設定の 自動検出] と [ LAN にプロキシ サーバーを使用する] をオフにします。

    4. プロキシ サーバーを使用する場合は、[ LAN にプロキシ サーバーを使用 する] と [ ローカル アドレスにプロキシ サーバーをバイパスする] をクリックし、[OK] をクリック します

  2. サブスクライバー側の Internet Explorer から診断モードでサーバーに接続します。診断モードで接続するには、replisapi.dll のアドレスの後に「 ?diag 」を追加します。 たとえば、 https://server.domain.com/directory/replisapi.dll?diagと指定します。

    上記の例では、server.domain.com は、IIS マネージャーの [サーバー証明書] セクションに記載されている正確な発行先名に置き換える必要があります。

  3. IIS に指定した証明書が Windows オペレーティング システムで認識されない場合は、[ セキュリティアラート ] ダイアログ ボックスが表示されます。 このアラートは、証明書がテスト証明書であるか、Windows で認識されない証明機関 (CA) によって発行された証明書が原因で発生する可能性があります。

    このダイアログ ボックスが表示されない場合は、アクセスしているサーバーの証明書が信頼できる証明書としてサブスクライバーの証明書ストアに追加されていることを確認します。 証明書のエクスポートの詳細については、IIS のマニュアルを参照してください。

    1. [ セキュリティ アラート ] ダイアログ ボックスで、[ 証明書の表示] をクリックします。

    2. [ 証明書 ] ダイアログ ボックスの [ 全般 ] タブで、[ 証明書のインストール] をクリックします。

    3. 証明書インポート ウィザードを実行します。このウィザードでは既定の値をそのまま使用します。

    4. [ セキュリティの警告 ] ダイアログ ボックスで、[ はい] をクリックします。

    5. 証明書のインポート ウィザードの確認ダイアログ ボックスで、[ OK] をクリックします。

    6. [証明書] ダイアログ ボックスを閉じます。

    7. [ セキュリティ アラート ] ダイアログ ボックスで、[ はい] をクリックします。

    ユーザーの証明書がインストールされます。 IIS と同期するユーザーすべてに対してこの手順を実行する必要があります。

  4. [<ServerName に接続]> ダイアログ ボックスで、マージ エージェントが IIS サーバーへの接続に使用するログインとパスワードを指定します。 これらの資格情報は、サブスクリプションの新規作成ウィザードで指定することもできます。

  5. SQL Websync 診断情報と呼ばれる Internet Explorer ウィンドウで、ページの各 [状態] 列の値が SUCCESS であることを確認します。

  6. 証明書がサブスクライバーに正しくインストールされていることを確認します。

    1. Internet Explorer をいったん閉じてから、再度開きます。

    2. サーバーに診断モードで接続します。 証明書が正しくインストールされている場合、[ セキュリティアラート ] ダイアログ ボックスは表示されません。 ダイアログ ボックスが表示された場合、IIS を実行しているコンピューターへの接続を試みると、マージ エージェントは失敗します。 アクセスしているサーバーの証明書が、信頼できる証明書としてサブスクライバーの証明書ストアに追加されていることを確認する必要があります。 証明書のエクスポートの詳細については、IIS のマニュアルを参照してください。

こちらもご覧ください

マージ レプリケーションの Web 同期
Web 同期の構成