次の方法で共有


Web 同期のセキュリティ アーキテクチャ

適用対象: SQL Server

Microsoft SQL Server を使用すると、Web 同期のセキュリティ設定をきめ細かく制御できます。 ここでは、Web 同期の構成に含めることができるすべてのコンポーネントを紹介し、コンポーネント間で行われる接続に関する情報を示します。 可能な場合は、Windows 認証を使用します。

次の図は、考えられるすべての接続を示していますが、特定のトポロジでは要求されない接続もあります。 たとえば、FTP サーバーへの接続は、FTP を使用してスナップショットを配信する場合にのみ必要です。

Web 同期のコンポーネントと接続

次の表では、上記の図に示したコンポーネントと接続について説明します。

A. マージ エージェントを実行する Windows ユーザー

同期中、マージ エージェント (A) がサブスクライバーで開始されます。 マージ エージェントは、SQL Server エージェントのジョブ ステップまたはスタンドアロンのカスタム アプリケーションから開始できます。 マージ エージェントが SQL Server エージェントのジョブ ステップから開始されると、マージ エージェントは指定した Windows ユーザーのコンテキストで実行されます。 Windows ユーザーを指定しないと、マージ エージェントは SQL Server エージェントの Windows サービス アカウントのコンテキストで実行されます。

アカウントの種類 アカウントを指定する場所
Windows ユーザー Transact-SQL: sp_addmergepullsubscription_agent@job_login パラメーターと @job_password パラメーター。

レプリケーション管理オブジェクト (RMO): LoginPassword プロパティと SynchronizationAgentProcessSecurityプロパティ
SQL Server エージェントの Windows サービス アカウント SQL Server 構成マネージャー
スタンドアロンのアプリケーション マージ エージェントは、アプリケーションを実行している Windows ユーザーのコンテキストで実行されます。

B. サブスクライバーへの接続

マージ エージェントは、Windows 認証または SQL Server 認証を使用してサブスクライバーに接続します。 指定する Windows ユーザーまたは SQL Server ログインは、サブスクリプション データベースの dbowner 固定データベース ロールのメンバーであるデータベース ユーザーに関連付けられている必要があります。

Note

マージ エージェントが SQL Server エージェント ジョブから起動された場合、常に Windows 認証が使用されます。 マージ エージェントがプログラムから起動された場合も、明示的に SQL Server 認証が指定されている場合を除いて、Windows 認証が使用されます。

認証の種類 認証を指定する場所
- Windows 認証。 マージ エージェントは、マージ エージェント (A) に指定されている Windows ユーザーのコンテキストで接続します。
SQL Server 認証は、以下を指定した場合にのみ使用されます。

- RMO: SubscriberSecurityMode の値に Standard
- マージ エージェントのコマンド ライン: SubscriberSecurityMode の値に 0
RMO: SubscriberLoginSubscriberPassword

マージ エージェントのコマンド ライン : -SubscriberLogin および -SubscriberLogin

C: 発信プロキシ サーバーへの接続

サブスクライバーの内部ネットワークへのアクセスを制限する発信プロキシ サーバーが存在する場合にのみ、この接続に Windows ユーザーを指定します。

認証の種類 認証を指定する場所
Windows 認証 RMO: InternetProxyLoginInternetProxyPassword 、および InternetProxyServer

マージ エージェントのコマンド ライン : -InternetProxyLogin-InternetProxyPassword 、および -InternetProxyServer

D. IIS への接続

サブスクライバーに接続して変更をサブスクリプション データベースから抽出した後、マージ エージェントは HTTPS 要求を Microsoft インターネット インフォメーション サービス (IIS) に送信し、データ変更を XML メッセージとしてアップロードします。 マージ エージェントには、IIS に対するログオンの権限が必要です。

認証の種類 認証を指定する場所
次のいずれかを指定する場合は、基本認証を使用します。

- Transact-SQL: sp_addmergepullsubscription_agent@internet_security_mode パラメーターの値に 0
- RMO: InternetSecurityMode の値に Standard
- マージ エージェントのコマンド ライン: -InternetSecurityMode の値に 0
Transact-SQL: sp_addmergepullsubscription_agent@internet_login パラメーターと @internet_password パラメーター。

RMO: InternetLoginInternetPassword

マージ エージェントのコマンド ライン : -InternetLogin-InternetPassword
次のいずれかを指定する場合は、統合認証1 を使用します。

- Transact-SQL: sp_addmergepullsubscription_agent@internet_security_mode パラメーターの値に 1
- RMO: InternetSecurityMode の値に Integrated
- マージ エージェントのコマンド ライン: -InternetSecurityMode の値に 1
マージ エージェントは、マージ エージェント (A) に指定されている Windows ユーザーのコンテキストで接続します。

1 統合認証は、すべてのコンピューターが同じドメイン内または相互に信頼関係を持つ複数のドメイン内に存在する場合にのみ使用できます。

Note

統合認証を使用する場合は、委任が必要です。 サブスクライバーから IIS への接続には、基本認証と TLS を使用することをお勧めします。

E. パブリッシャーへの接続

SQL Server レプリケーション リスナーおよびマージ レプリケーション競合回避モジュール コンポーネントは、IIS を実行しているコンピューター上でホストされます。 これらのコンポーネントでは、以下の処理が実行されます。

  • 「D. IIS への接続」で説明している HTTPS 要求を取得します。

  • パブリケーション データベースへの SQL 接続を作成し、アップロードした変更をパブリケーション データベースに適用します。

  • ダウンロードされた変更を抽出し、マージ エージェントに HTTPS 応答を返送します。

マージ レプリケーション競合回避モジュールは、Windows 認証または SQL Server 認証のいずれかを使用してパブリッシャーに接続します。 指定する Windows ユーザーまたは SQL Server ログインは、次の条件を満たしている必要があります。

  • パブリケーション アクセス リスト (PAL) に登録されている。 詳細については、「パブリッシャーのセキュリティ保護」を参照してください。

  • パブリケーション データベースのユーザーに関連付けられている。

認証の種類 認証を指定する場所
次のいずれかを指定する場合は、Windows 認証を使用します。

- Transact-SQL: sp_addmergepullsubscription_agent@publisher_security_mode パラメーターの値に 1
- RMO: PublisherSecurityMode の値に Integrated
- マージ エージェントのコマンド ライン: -PublisherSecurityMode の値に 1
マージ エージェントは、IIS (D) への接続に指定されている Windows ユーザーのコンテキストでパブリッシャーに接続します。 パブリッシャーと IIS が異なるコンピューター上に存在し、接続 (D) に統合認証を使用する場合は、IIS を実行しているコンピューター上で Kerberos 委任を有効にする必要があります。 詳細については、Windows のマニュアルを参照してください。
SQL Server 認証は、以下のいずれかを指定した場合にのみ使用されます。

- Transact-SQL: sp_addmergepullsubscription_agent@publisher_security_mode パラメーターの値に 0
- RMO: PublisherSecurityMode の値に Standard
- マージ エージェントのコマンド ライン: -PublisherSecurityMode の値に 0
Transact-SQL: sp_addmergepullsubscription_agent@publisher_login パラメーターと @publisher_password パラメーター。

RMO: PublisherLoginPublisherPassword

マージ エージェントのコマンド ライン : -PublisherLogin-PublisherPassword

F. ディストリビューターへの接続

IIS を実行しているコンピューター上でホストされるマージ レプリケーション競合回避モジュールもディストリビューターに接続します。 マージ レプリケーション競合回避モジュールは、Windows 認証または SQL Server 認証のいずれかを使用してディストリビューターに接続します。 指定する Windows ユーザーまたは SQL Server ログインは、次の条件を満たしている必要があります。

  • パブリケーション アクセス リスト (PAL) に登録されている。 詳細については、「パブリッシャーのセキュリティ保護」を参照してください。

  • ディストリビューション データベースのユーザーに関連付けられている。 Guest ユーザーでもかまいません。

スナップショット共有は、通常、ディストリビューター上に存在します。 スナップショット共有の詳細については、後半の「H. スナップショット共有へのアクセス」を参照してください。

- 認証の種類 認証を指定する場所
次のいずれかを指定する場合は、Windows 認証を使用します。

- Transact-SQL: sp_addmergepullsubscription_agent@distributor_security_mode パラメーターの値に 1
- RMO: DistributorSecurityMode の値に Integrated
- マージ エージェントのコマンド ライン: -DistributorSecurityMode の値に 1
マージ エージェントは、IIS (D) への接続に指定されている Windows ユーザーのコンテキストでディストリビューターに接続します。 ディストリビューターと IIS が異なるコンピューター上に存在し、接続 (D) に統合認証を使用する場合は、IIS を実行しているコンピューター上で Kerberos 委任を有効にする必要があります。 詳細については、Windows のマニュアルを参照してください。
SQL Server 認証は、以下のいずれかを指定した場合にのみ使用されます。

- Transact-SQL: sp_addmergepullsubscription_agent@distributor_security_mode パラメーターの値に 0
- RMO: DistributorSecurityMode の値に Standard
- マージ エージェントのコマンド ライン: -DistributorSecurityMode の値に 0
Transact-SQL: sp_addmergepullsubscription_agent@distributor_login パラメーターと @distributor_password パラメーター。

RMO: DistributorLoginDistributorPassword

マージ エージェントのコマンド ライン : -DistributorLogin-DistributorPassword

G. FTP サーバーへの接続

スナップショットをサブスクライバーに適用する前に、IIS を実行しているコンピューターに、UNC の場所ではなく FTP サーバーからスナップショット ファイルをダウンロードする場合にのみ、この接続に Windows ユーザーを指定します。 詳細については、「FTP によるスナップショットの転送」を参照してください。

認証の種類 認証を指定する場所
Windows 認証 Transact-SQL: sp_addmergepublication@ftp_login パラメーターと @ftp_password パラメーター。

RMO: FtpLoginFtpPassword

H. スナップショット共有へのアクセス

スナップショット共有には、IIS を実行しているコンピューター上でホストされるマージ レプリケーション競合回避モジュールを使用してアクセスします。

認証の種類 認証を指定する場所
Windows 認証 マージ エージェントは、IIS (D) への接続に指定されている Windows ユーザーのコンテキストでスナップショット共有に接続します。 スナップショット共有と IIS が異なるコンピューター上に存在し、接続 (D) に統合認証を使用する場合は、IIS を実行しているコンピューター上で Kerberos 委任を有効にする必要があります。 詳細については、Windows のマニュアルを参照してください。

I. IIS のアプリケーション プール アカウント

このアカウントは、Windows Server 2003 の場合は IIS を実行しているコンピューター上で W3wp.exe プロセスを開始するために、また、Windows 2000 の場合は Dllhost.exe プロセスを開始するために使用します。 これらのプロセスによって、IIS を実行しているコンピューター上で SQL Server レプリケーション リスナーやマージ レプリケーション競合回避モジュールなどのアプリケーションがホストされます。 このアカウントは、IIS を実行しているコンピューター上にある次のレプリケーション DLL に対して読み取りと実行の権限を持っている必要があります。

  • Replisapi

  • Replrec

  • Replprov

  • Msgprox

  • Xmlsub

また、このアカウントは IIS_WPG グループの一部である必要があります。 詳細については、「Web 同期用の IIS の構成」の「SQL Server レプリケーション リスナーの権限の設定」セクションをご覧ください。

アカウントの種類 アカウントを指定する場所
必要な権限を持つ Windows ユーザー インターネット インフォメーション サービス (IIS) マネージャー。