この記事では、Windows のセキュリティ関連の更新プログラムと変更、およびそれらが Microsoft 分散トランザクション コーディネーター (MS DTC) サービスに与える影響について説明します。
元の製品バージョン: Windows
元の KB 番号: 899191
まとめ
Windows Server 2003 Service Pack 1 (SP1) および Windows XP Service Pack 2 (SP2) 以降、一部のセキュリティ関連の更新プログラムと変更が Windows に導入され、MS DTC サービスに影響が及びます。
これらの変更には、コンポーネント サービス管理ツールで使用できる更新された Security Configuration ダイアログ ボックスを使用してアクセスできます。
これらの変更は、DTC トラフィックがネットワークをフェールオーバーする原因となる既定のセキュリティ設定に対して行われます。 このような状況では、1 つ以上のエラー メッセージまたはエラー コードが表示される場合があります。
[ セキュリティ構成 ] ダイアログ ボックスの設定を変更することで、DTC サービスがネットワーク経由でリモート コンピューターと通信する方法を制御できます。
この記事では、次のオペレーティング システムの MS DTC サービスの新機能について説明します。
- Windows Server 2003 Service Pack 1 (SP1)
- Windows XP Service Pack 2 (SP2)
- Windows Vista
- Windows Server 2008
- Windows 7
- Windows Server 2008 R2
- Windows 8
- Windows Server 2012
- Windows 8.1
- Windows Server 2012 R2
DTC サービスは、2 つ以上のトランザクションで保護されたリソースを更新するトランザクションを調整します。 トランザクションで保護されるリソースには、データベース、メッセージ キュー、およびファイル システムが含まれます。 これらのトランザクションで保護されたリソースは、1 台のコンピューターに配置することも、多くのネットワーク コンピューター間で分散することもできます。
セキュリティ構成を使用してネットワーク通信を管理する
Windows では、DTC サービスを使用すると、コンピューター間のネットワーク通信をより詳細に制御できます。 既定では、すべてのネットワーク通信は無効になっています。 DTC Security Configuration ダイアログ ボックスが強化され、これらの通信設定を管理できます。 Security Configuration ダイアログ ボックスを表示するには、次の手順に従います。
- コンポーネント サービス管理ツールを起動します。 これを行うには、 Start を選択し、 Run を選択し、「 dcomcnfg.exe」と入力して、 OK を選択します。
- コンポーネント サービス管理ツールのコンソール ツリーで、 Component Services を展開し、 Computersを展開し、 My Computer を右クリックして、 Properties を選択します。
- MSDTC タブを選択し、セキュリティ構成選択。
セキュリティ構成の新しいオプション
次の情報では、 Security 構成 ダイアログ ボックスで使用できる新しいオプションについて説明します。 この情報では、 Security Configuration ダイアログ ボックスの新しいオプションの影響を受けるレジストリ エントリについても説明します。
ネットワーク DTC アクセス
[ Network DTC アクセス ] チェック ボックスをオンにすると、DTC サービスがネットワークにアクセスできるかどうかを判断できます。 ネットワーク DTC トランザクションを有効にするには、[ Network DTC アクセス ] チェック ボックスをオンにし、[ Network DTC アクセス ] チェック ボックスの下にある他のチェック ボックスの 1 つをオンにする必要があります。
Network DTC Access チェック ボックスは、次のレジストリ エントリに影響します。
- レジストリ パス:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
- 値の名前:
NetworkDtcAccess
- 値の型: REG_DWORD
- 値データ: 0 (既定値)
Note
サーバー クラスターでは、[ Network DTC Access ] チェック ボックスは、MS DTC リソース レジストリ キーの下にある共有クラスター レジストリ キーの値に影響します。 MS DTC の共有クラスターのレジストリ キーは、 HKEY_LOCAL_MACHINE\Cluster\Resources\<MSDTC resource GUID>
の場所にあります。
既定では、 NetworkDtcAccess
レジストリ エントリの値は 0 に設定されます。 値 0 を指定すると、 NetworkDtcAccess
レジストリ エントリがオフになります。 NetworkDtcAccess
レジストリ エントリを有効にするには、このレジストリ値を 1 に設定します。
受信を許可する
[受信の許可] チェック ボックスをオンにすると、リモート コンピューターから送信された分散トランザクションをローカル コンピューターで実行できるようにするかどうかを指定できます。 既定では、この設定はオフに設定されています。 この設定を有効にするには、 Network DTC Access チェック ボックスをオンにして、次のレジストリ エントリを 1 に設定します。
- レジストリ パス:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
- 値の名前:
NetworkDtcAccess
- 値の型: REG_DWORD
この設定を無効にするには、このレジストリ エントリを 0 に設定するには、 Network DTC Access チェック ボックスをオフにします。
[ Allow Inbound ] チェック ボックスは、 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
の次のREG_DWORDレジストリ エントリの両方に影響します。
NetworkDtcAccessTransactions
NetworkDtcAccessInbound
送信を許可する
[ 送信 ] チェック ボックスをオンにすると、ローカル コンピューターでトランザクションを開始し、そのトランザクションをリモート コンピューターで実行できるようにするかどうかを指定できます。 この設定を有効にするには、 Network DTC Access チェック ボックスをオンにして、次のレジストリ エントリを 1 に設定します。
- レジストリ パス:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
- 値の名前:
NetworkDtcAccess
- 値の型: REG_DWORD
この設定を無効にするには、 Network DTC Access チェック ボックスをオフにして、このレジストリ エントリを 0 に設定します。
[ 送信 ] チェック ボックスは、 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
の次のREG_DWORDレジストリ エントリの両方に影響します。
NetworkDtcAccessTransactions
NetworkDtcAccessOutbound
相互認証が必要
[Mutual Authentication Required オプションを使用すると、Windows での相互認証のサポートが追加されます。 相互認証が必要 ネットワーク通信に現在使用できる最大のセキュリティ モードを設定します。 Windows XP SP2 を実行しているクライアント コンピューターと、Windows Server 2003 SP1 を実行しているサーバー コンピューターには、このトランザクション モードをお勧めします。
相互認証が必要 は、 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
の次のレジストリ エントリに影響します。
レジストリ キー 1
- 値の名前:
AllowOnlySecureRpcCalls
- 値の型: REG_DWORD
- 値のデータ: 1
- 値の名前:
レジストリ キー 2
- 値の名前:
FallbackToUnsecureRPCIfNecessary
- 値の型: REG_DWORD
- 値のデータ: 0
- 値の名前:
レジストリ キー 3
- 値の名前:
TurnOffRpcSecurity
- 値の型: REG_DWORD
- 値のデータ: 0
- 値の名前:
Mutual Authentication Required を使用して設定される機能は、Incoming Caller Authentication Required を使用して設定される機能とは異なります。 Transaction Manager Communication に表示される 3 つのオプションは、次のように動作します。
Mutual Authentication Required トランザクション モードでは、ローカル コンピューターとの認証された接続を提供するために、リモートでアクセスするコンポーネントが必要です。 この認証は、ローカル コンピューターでの偽装によって検証されます。 さらに、2 つの DTC サービス間でリモート アクセス通信が実行される場合、この認証情報では、リモート トランザクション モードのコンピューターのホスト名と一致するコンピューター アカウントを指定する必要があります。
呼び出し元認証が必要ですトランザクション モードでは、リモート接続の認証のみが必要です。 さらに、リモートでアクセスするコンポーネントが DTC サービスである場合、認証情報はコンピューター アカウント用である必要があります。
認証が必要ありません トランザクション モードでは、認証された接続が検証されず、認証された接続が確立されているかどうかを確認しません。
クラスター化された環境では、DTC サービスのコンピューター アカウントによってクラスター ノードのホスト名が指定されます。 クラスター環境では、DTC 認証ではトランザクション モードのホスト名は使用されません。 クラスター環境では、トランザクション モードのホスト名は仮想サービスの名前です。 そのため、クラスター環境や、そのようなコンピューターとトランザクションをネゴシエートしているコンピューターでは、 Mutual Authentication Required トランザクション モードを使用できません。 Windows Server 2003 SP1 を実行している 2 台の非クラスター化コンピューター間、または Windows XP SP2 を実行している 2 台のコンピューター間で、 Mutual Authentication Required トランザクション モードを使用できます。
クラスター環境の Windows Server 2003 ベースのコンピューター間で Incoming Caller Authentication Required トランザクション モードを使用します。
認証不要トランザクション モードを使用します。このモードでは、次の条件のうち 1 つ以上が該当します。
- ネットワーク アクセスは、Microsoft Windows 2000 を実行しているコンピューター間にあります。
- ネットワーク アクセスは、相互信頼が構成されていない 2 つのドメイン間にあります。
- ネットワーク アクセスは、作業グループのメンバーであるコンピューター間で行われます。
着信呼び出し元認証が必要
着信呼び出し元認証が必要です では、暗号化されたメッセージのみを使用して、ローカル DTC サービスがリモート DTC サービスと通信する必要があります。 受信接続のみが認証されます。 この機能をサポートするのは、Windows Server 2003 SP1、Windows XP SP2、およびそれ以降のバージョンの Windows のみです。 そのため、リモート DTC サービスが Windows Server 2003 SP1、Windows XP SP2、またはそれ以降のバージョンの Windows を実行しているコンピューターで実行されている場合にのみ、このオプションを有効にします。
着信呼び出し元認証が必要です は、 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
の次のレジストリ エントリに影響します。
レジストリ キー 1
- 値の名前: AllowOnlySecureRpcCalls
- 値の型: REG_DWORD
- 値のデータ: 0
レジストリ キー 2
- 値の名前: FallbackToUnsecureRPCIfNecessary
- 値の型: REG_DWORD
- 値のデータ: 1
レジストリ キー 3
- 値の名前: TurnOffRpcSecurity
- 値の型: REG_DWORD
- 値のデータ: 0
呼び出し元認証の必須の詳細については、「Mutual Authentication Required」セクションを参照してください。
認証は必要ありません
認証は必要ありません 以前のバージョンの Windows オペレーティング システム間のオペレーティング システムの互換性を有効にします。 このオプションを有効にすると、DTC サービス間のネットワーク通信は、セキュリティで保護された通信チャネルを確立できない場合は、認証されていない通信または暗号化されていない通信にフォールバックできます。
Note
リモート DTC サービスが Microsoft Windows 2000 を実行しているコンピューター、または Windows XP SP2 より前のバージョンの Windows XP を実行しているコンピューターで実行されている場合は、この設定を使用することをお勧めします。
認証不要を使用して、信頼関係が確立されていないドメイン内のコンピューターで DTC サービスが実行されている状況を解決することもできます。 さらに、 認証不要 を使用して、作業グループのメンバーであるコンピューターで DTC サービスが実行されている状況を解決できます。
認証は必要ありません は、 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
の次のレジストリ エントリに影響します。
レジストリ キー 1
- 値の名前: AllowOnlySecureRpcCalls
- 値の型: REG_DWORD
- 値のデータ: 0
レジストリ キー 2
- 値の名前: FallbackToUnsecureRPCIfNecessary
- 値の型: REG_DWORD
- 値のデータ: 0
レジストリ キー 3
- 値の名前: TurnOffRpcSecurity
- 値の型: REG_DWORD
- 値のデータ: 1
Note
サーバー クラスターでは、これらのレジストリ エントリは共有クラスター レジストリにあります。
新しいオプションの重要性
[ セキュリティ構成 ] ダイアログ ボックスで使用できる新しいオプションを使用すると、送信または受信ネットワーク通信にセキュリティ設定を適用できます。 既定では、Windows をインストールした後、コンピューターはネットワーク トラフィックを受け入れません。 そのため、悪意のあるユーザーによるネットワーク アクセスに対するコンピューターの脆弱性は低くなります。 さらに、ネットワーク経由で送信されるプロトコルは、より安全に暗号化され、相互に認証された通信モードをサポートするように更新されます。 これにより、悪意のあるユーザーが DTC サービス間の通信を傍受して引き継ぐ可能性を減らすことができます。
Windows でのネットワーク通信の変更
DTC サービスから送信されるネットワーク通信または DTC サービスに入ってくるネットワーク通信が無効になっています。 たとえば、COM+ オブジェクトが DTC トランザクションを使用してリモート コンピューターにある Microsoft SQL Server データベースを更新しようとすると、このトランザクションは成功しません。 逆に、リモート コンピューターのコンポーネントが DTC トランザクションを使用してアクセスしようとする SQL Server データベースをコンピューターがホストしている場合、このトランザクションは成功しません。
次の問題は、DTC サービスに関連しています。
ネットワーク接続の問題が原因でトランザクションが失敗する
重要
このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 したがって、次の手順を注意深く実行してください。 保護のために、レジストリを変更する前に、バックアップします。 その後、問題が起こった場合は、レジストリを復元できます。 レジストリのバックアップと復元方法の詳細は、「Windows のレジストリのバックアップおよび復元の方法」を参照してください。
ネットワーク接続の問題が原因で DTC トランザクションが失敗した場合は、[ セキュリティ構成 ] ダイアログ ボックスで次のチェック ボックスをオンにします。
[ Network DTC Access ] チェック ボックスをオンにします。
Transaction Manager Communicationの要件に応じて、次のチェック ボックスの一方または両方をクリックして選択します。
- 受信を許可する
- 送信を許可する
Windows の一部としてこれらの設定をプログラムで変更する場合は、設定する設定に対応するレジストリ設定を直接変更できます。 レジストリ設定を変更した後、DTC サービスを再起動する必要があります。
これらの設定を変更するには、レジストリを手動で変更しないことをお勧めします。 これらのレジストリ設定を手動で変更すると、Windows Server 2003 SP1 ベースのサーバー クラスターのクラスター サービスで問題が発生する可能性があります。
Windows ファイアウォールによって DTC トラフィックがブロックされる
重要
これらの手順により、セキュリティ リスクが高まる可能性があります。 これらの手順により、コンピューターやネットワークが悪意のあるユーザーやウイルスなどの悪意のあるソフトウェアによる攻撃に対して脆弱になる可能性もあります。 この記事で説明するプロセスは、プログラムが設計されているとおりに動作できるようにするか、特定のプログラム機能を実装できるようにすることをお勧めします。 これらの変更を行う前に、特定の環境でのこのプロセスの実装に関連するリスクを評価することをお勧めします。 このプロセスを実装する場合は、システムの保護に役立つ適切な追加の手順を実行します。 このプロセスを実際に必要とする場合にのみ、このプロセスを使用することをお勧めします。
Windows ファイアウォールを使用する場合は、Windows ファイアウォール設定の例外リストに DTC サービスを追加する必要があります。 これを行うには、次の手順に従います。
- Startを選択し、実行を選択し、「firewall.cpl」と入力して、OK を選択します。
- [ Windows ファイアウォール ] ダイアログ ボックスで、[ Exceptions ] タブを選択し、[プログラムの追加] 選択。
- Browseを選択し、
C:\Windows\System32\msdtc.exe
を見つけて選択し、Open を選択します。 - [
OK を選択し、プログラムとサービスの一覧でmsdtc.exeチェック ボックスをオンにします (このチェック ボックスがまだオンでない場合)。次に、OK を選択します。
変更または追加された設定
次の表では、以前のバージョンの Windows から Windows XP SP2 以降に変更されたレジストリ エントリについて説明します。
エントリ名 | 場所 | 以前のデフォルト値 | Windows XP SP2 の既定値 | 有効値 |
---|---|---|---|---|
NetworkDtcAccess | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security |
1 | 0 | 0 または 1 |
NetworkDtcAccessTransactions | KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security |
1 | 0 | 0 または 1 |
NetworkDtcAccessInbound | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security |
適用なし | 0 | 0 または 1 |
NetworkDtcAccessOutbound | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security |
適用なし | 0 | 0 または 1 |
AllowOnlySecureRpcCalls | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC |
適用なし | 1 | 0 または 1 |
FallbackToUnsecureRPCIfNecessary | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC |
適用なし | 0 | 0 または 1 |
TurnOffRpcSecurity | HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC |
適用なし | 0 | 0 または 1 |
Note
これらの変更は、Windows Server 2003 SP1 ベースのサーバー クラスターの共有クラスター レジストリに表示されます。
DTC サービスの変更に関連付けられているエラー コード
コンピューター間で DTC トランザクションを実行すると、次のいずれかのエラー コードが表示されることがあります。
エラー コード 1
MessageId: XACT_E_NETWORK_TX_DISABLED
MessageText:
トランザクション マネージャーは、リモート/ネットワーク トランザクションのサポートを無効にしました。
#define XACT_E_NETWORK_TX_DISABLED HRESULT_TYPEDEF(0x8004D024L)エラー コード 2
MessageId: XACT_E_PARTNER_NETWORK_TX_DISABLED
MessageText:
パートナー トランザクション マネージャーは、リモート/ネットワーク トランザクションのサポートを無効にしました。
#define XACT_E_PARTNER_NETWORK_TX_DISABLED HRESULT_TYPEDEF(0x8004D025L)
適用対象
- Windows Server 2012 R2
- Windows 8.1
- Windows 8
- Windows 7
- Windows Vista
- Windows Server 2008
- Windows Server 2003
- Windows XP