Nuove funzionalità nel servizio Distributed Transaction Coordinator in Windows

Questo articolo descrive alcuni aggiornamenti e modifiche correlati alla sicurezza di Windows e come influiscono sul servizio Microsoft Distributed Transaction Coordinator (MS DTC).

              Versione originale del prodotto: Windows
Numero KB originale: 899191

Riepilogo

A partire da Windows Server 2003 Service Pack 1 (SP1) e Windows XP Service Pack 2 (SP2), alcuni aggiornamenti e modifiche correlati alla sicurezza sono stati introdotti in Windows e influiscono sul servizio MS DTC.

Per accedere a queste modifiche, è possibile usare la finestra di dialogo Configurazione sicurezza aggiornata disponibile nello strumento di amministrazione di Servizi componenti.

Queste modifiche vengono apportate alle impostazioni di sicurezza predefinite che causano il failover del traffico DTC sulla rete. In questo caso, è possibile ricevere uno o più messaggi di errore o codici di errore.

Modificando le impostazioni nella finestra di dialogo Configurazione sicurezza , è possibile controllare il modo in cui il servizio DTC comunica con i computer remoti in rete.

Questo articolo descrive le nuove funzionalità del servizio MS DTC nei sistemi operativi seguenti:

  • 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

Il servizio DTC coordina le transazioni che aggiornano due o più risorse protette da transazioni. Le risorse protette da transazioni includono database, code di messaggi e file system. Queste risorse protette da transazioni possono trovarsi in un singolo computer o essere distribuite tra molti computer di rete.

Gestire le comunicazioni di rete tramite Configurazione di sicurezza

In Windows, il servizio DTC offre un maggiore controllo sulla comunicazione di rete tra computer. Per impostazione predefinita, tutte le comunicazioni di rete sono disabilitate. La finestra di dialogo Configurazione sicurezza DTC è stata migliorata in modo da poter gestire queste impostazioni di comunicazione. Per visualizzare la finestra di dialogo Configurazione sicurezza , seguire questa procedura:

  1. Avviare lo strumento di amministrazione di Servizi componenti. A tale scopo, selezionare Start, selezionare Esegui, digitare dcomcnfg.exee quindi selezionare OK.
  2. Nell'albero della console dello strumento di amministrazione di Servizi componenti espandere Servizi componenti, computer, fare clic con il pulsante destro del mouse su Risorse del computer e quindi scegliere Proprietà.
  3. Selezionare la scheda MSDTC e quindi Selezionare Configurazione sicurezza.

Nuove opzioni in Configurazione sicurezza

Le informazioni seguenti descrivono le nuove opzioni disponibili nella finestra di dialogo Configurazione sicurezza . Queste informazioni descrivono anche le voci del Registro di sistema interessate dalle nuove opzioni nella finestra di dialogo Configurazione sicurezza .

Accesso DTC di rete

La casella di controllo Accesso DTC di rete consente di determinare se il servizio DTC può accedere alla rete. La casella di controllo Accesso DTC di rete deve essere selezionata insieme a una delle altre caselle di controllo nella casella di controllo Accesso DTC di rete per abilitare le transazioni DTC di rete.

La casella di controllo Accesso DTC di rete influisce sulla voce del Registro di sistema seguente:

  • Percorso del Registro di sistema: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
  • Nome valore: NetworkDtcAccess
  • Tipo di valore: REG_DWORD
  • Dati valore: 0 (impostazione predefinita)

Nota

In un cluster server, la casella di controllo Accesso DTC di rete influisce su un valore nella chiave del Registro di sistema del cluster condiviso nella chiave del Registro di sistema delle risorse MS DTC. La chiave del Registro di sistema del cluster condiviso per MS DTC si trova nel HKEY_LOCAL_MACHINE\Cluster\Resources\<MSDTC resource GUID> percorso.

Per impostazione predefinita, il valore della voce del NetworkDtcAccess Registro di sistema è impostato su 0. Il valore 0 disattiva la voce del NetworkDtcAccess Registro di sistema. Per attivare la voce del NetworkDtcAccess Registro di sistema, impostare questo valore del Registro di sistema su 1.

Consenti in ingresso

La casella di controllo Consenti in ingresso consente di determinare se consentire l'esecuzione di una transazione distribuita originata da un computer remoto nel computer locale. Per impostazione predefinita, questa impostazione è disattivata. Per abilitare questa impostazione, fare clic per selezionare la casella di controllo Accesso DTC di rete per impostare la voce del Registro di sistema seguente su 1:

  • Percorso del Registro di sistema: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
  • Nome valore: NetworkDtcAccess
  • Tipo di valore: REG_DWORD

Per disabilitare questa impostazione, fare clic per deselezionare la casella di controllo Accesso DTC di rete per impostare questa voce del Registro di sistema su 0.

La casella di controllo Consenti in ingresso interessa entrambe le voci del Registro di sistema REG_DWORD seguenti in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security:

  • NetworkDtcAccessTransactions
  • NetworkDtcAccessInbound

Consenti in uscita

La casella di controllo Consenti in uscita consente di determinare se consentire al computer locale di avviare una transazione ed eseguire tale transazione in un computer remoto. Per abilitare questa impostazione, selezionare la casella di controllo Accesso DTC di rete per impostare la voce del Registro di sistema seguente su 1:

  • Percorso del Registro di sistema: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security
  • Nome valore: NetworkDtcAccess
  • Tipo di valore: REG_DWORD

Per disabilitare questa impostazione, deselezionare la casella di controllo Accesso DTC di rete per impostare questa voce del Registro di sistema su 0.

La casella di controllo Consenti in uscita interessa entrambe le voci del Registro di sistema REG_DWORD seguenti in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security:

  • NetworkDtcAccessTransactions
  • NetworkDtcAccessOutbound

Autenticazione reciproca necessaria

L'opzione Autenticazione reciproca richiesta aggiunge il supporto per l'autenticazione reciproca in Windows. Autenticazione reciproca obbligatoria consente di impostare la modalità di sicurezza più avanzata attualmente disponibile per la comunicazione di rete. È consigliabile questa modalità di transazione per i computer client che eseguono Windows XP SP2 insieme ai computer server che eseguono Windows Server 2003 SP1.

Autenticazione reciproca richiesta influisce sulle voci del Registro di sistema seguenti in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC:

  • Chiave del Registro di sistema 1

    • Nome valore: AllowOnlySecureRpcCalls
    • Tipo di valore: REG_DWORD
    • Dati valore: 1
  • Chiave del Registro di sistema 2

    • Nome valore: FallbackToUnsecureRPCIfNecessary
    • Tipo di valore: REG_DWORD
    • Dati valore: 0
  • Chiave del Registro di sistema 3

    • Nome valore: TurnOffRpcSecurity
    • Tipo di valore: REG_DWORD
    • Dati valore: 0

La funzionalità impostata tramite l'autenticazione reciproca obbligatoria è diversa dalla funzionalità impostata tramite l'autenticazione del chiamante in ingresso obbligatoria. Le tre opzioni elencate in Comunicazione di Gestione transazioni si comportano come segue:

  • La modalità di transazione Autenticazione reciproca richiesta richiede il componente di accesso remoto per fornire una connessione autenticata con il computer locale. Questa autenticazione viene verificata dalla rappresentazione nel computer locale. Inoltre, se la comunicazione di accesso remoto viene eseguita tra due servizi DTC, queste informazioni di autenticazione devono specificare un account computer corrispondente al nome host del computer in modalità transazione remota.

  • La modalità di transazione Autenticazione chiamante in ingresso Richiesta richiede solo l'autenticazione della connessione remota. Inoltre, se il componente di accesso remoto è un servizio DTC, le informazioni di autenticazione devono essere relative a un account computer.

  • La modalità di transazione No Authentication Required non convalida una connessione autenticata o verifica se viene stabilita una connessione autenticata.

In un ambiente cluster, l'account computer per il servizio DTC specifica il nome host del nodo del cluster. In un ambiente cluster l'autenticazione DTC non usa il nome host della modalità transazione. In un ambiente cluster, il nome host della modalità transazione è il nome del servizio virtuale. Pertanto, non è possibile utilizzare la modalità di transazione Autenticazione reciproca richiesta in un ambiente cluster o in qualsiasi computer che negozia transazioni con tali computer. È possibile usare la modalità di transazione Autenticazione reciproca obbligatoria tra due computer non cluster che eseguono Windows Server 2003 SP1 o tra due computer che eseguono Windows XP SP2.

Usare la modalità di transazione Richiesta autenticazione chiamante in ingresso tra computer basati su Windows Server 2003 in un ambiente cluster.

Usare la modalità di transazione Nessuna autenticazione richiesta in cui sono vere una o più delle condizioni seguenti:

  • L'accesso alla rete è tra computer che eseguono Microsoft Windows 2000.
  • L'accesso alla rete si trova tra due domini che non hanno un trust reciproco configurato.
  • L'accesso alla rete è tra computer membri di un gruppo di lavoro.

Autenticazione del chiamante in ingresso necessaria

Autenticazione del chiamante in ingresso Obbligatoria richiede che il servizio DTC locale comunichi con un servizio DTC remoto usando solo messaggi crittografati. Verrà autenticata solo la connessione in ingresso. Questa funzionalità è supportata solo da Windows Server 2003 SP1, Windows XP SP2 e versioni successive di Windows. Pertanto, abilitare questa opzione solo se il servizio DTC remoto è in esecuzione in un computer che esegue Windows Server 2003 SP1, Windows XP SP2 o versione successiva di Windows.

Autenticazione del chiamante in ingresso Obbligatoria influisce sulle voci del Registro di sistema seguenti in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC:

  • Chiave del Registro di sistema 1

    • Nome valore: AllowOnlySecureRpcCalls
    • Tipo di valore: REG_DWORD
    • Dati valore: 0
  • Chiave del Registro di sistema 2

    • Nome valore: FallbackToUnsecureRPCIfNecessary
    • Tipo di valore: REG_DWORD
    • Dati valore: 1
  • Chiave del Registro di sistema 3

    • Nome valore: TurnOffRpcSecurity
    • Tipo di valore: REG_DWORD
    • Dati valore: 0

Per altre informazioni sull'autenticazione del chiamante in ingresso obbligatoria, vedere la sezione Autenticazione reciproca obbligatoria .

Nessuna autenticazione richiesta

Nessuna autenticazione richiesta consente la compatibilità del sistema operativo tra le versioni precedenti del sistema operativo Windows. Quando questa opzione è abilitata, la comunicazione di rete tra i servizi DTC può tornare alla comunicazione non autenticata o alla comunicazione non crittografata se non è possibile stabilire un canale di comunicazione sicuro.

Nota

È consigliabile usare questa impostazione se il servizio DTC remoto è in esecuzione in un computer che esegue Microsoft Windows 2000 o in un computer che esegue una versione di Windows XP precedente a Windows XP SP2.

È anche possibile usare Nessuna autenticazione necessaria per risolvere una situazione in cui i servizi DTC sono in esecuzione nei computer che si trovano in domini che non hanno una relazione di trust stabilita. Inoltre, è possibile usare Nessuna autenticazione necessaria per risolvere una situazione in cui i servizi DTC sono in esecuzione nei computer membri di un gruppo di lavoro.

Nessuna autenticazione richiesta influisce sulle voci del Registro di sistema seguenti in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC:

  • Chiave del Registro di sistema 1

    • Nome valore: AllowOnlySecureRpcCalls
    • Tipo di valore: REG_DWORD
    • Dati valore: 0
  • Chiave del Registro di sistema 2

    • Nome valore: FallbackToUnsecureRPCIfNecessary
    • Tipo di valore: REG_DWORD
    • Dati valore: 0
  • Chiave del Registro di sistema 3

    • Nome valore: TurnOffRpcSecurity
    • Tipo di valore: REG_DWORD
    • Dati valore: 1

Nota

In un cluster server queste voci del Registro di sistema si trovano nel Registro di sistema del cluster condiviso.

Significato delle nuove opzioni

Le nuove opzioni disponibili nella finestra di dialogo Configurazione sicurezza consentono di applicare le impostazioni di sicurezza alle comunicazioni di rete in uscita o in ingresso. Per impostazione predefinita, dopo aver installato Windows, il computer non accetta il traffico di rete. Pertanto, il computer è meno vulnerabile all'accesso alla rete da parte di un utente malintenzionato. Inoltre, i protocolli inviati in rete vengono aggiornati per supportare una modalità di comunicazione crittografata in modo più sicuro e autenticata reciprocamente. Ciò consente di ridurre la probabilità che un utente malintenzionato possa intercettare e rilevare le comunicazioni tra i servizi DTC.

Modifiche alla comunicazione di rete in Windows

La comunicazione di rete che esce dal servizio DTC o entra nel servizio DTC è disabilitata. Ad esempio, se un oggetto COM+ tenta di aggiornare un database di Microsoft SQL Server che si trova in un computer remoto usando una transazione DTC, questa transazione non riesce. Al contrario, se il computer ospita un database SQL Server a cui i componenti di un computer remoto tentano di accedere usando una transazione DTC, questa transazione non riesce.

I problemi seguenti sono correlati al servizio DTC:

Le transazioni hanno esito negativo a causa di problemi di connettività di rete

Importante

In questa sezione, metodo o attività viene illustrata la procedura per modificare il Registro di sistema. Poiché l'errata modifica del Registro di sistema può causare seri problemi, Di conseguenza, attenersi scrupolosamente alla procedura indicata. Per una maggiore protezione, eseguire il backup del Registro di sistema prima di modificarlo. In questo modo sarà possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire backup e ripristino del Registro di sistema, vedere Backup e ripristino del Registro di sistema in Windows.

Se le transazioni DTC hanno esito negativo a causa di problemi di connettività di rete, fare clic per selezionare le caselle di controllo seguenti nella finestra di dialogo Configurazione sicurezza :

  • Fare clic per selezionare la casella di controllo Accesso DTC di rete .

  • Fare clic per selezionare una o entrambe le caselle di controllo seguenti in Comunicazione di Gestione transazioni in base alle esigenze:

    • Consenti in ingresso
    • Consenti in uscita

Se si desidera modificare queste impostazioni a livello di codice come parte di windows, è possibile modificare direttamente le impostazioni del Registro di sistema che corrispondono alle impostazioni che si desidera impostare. Dopo aver modificato le impostazioni del Registro di sistema, è necessario riavviare il servizio DTC.

È consigliabile non modificare manualmente il Registro di sistema per modificare queste impostazioni. Se si modificano manualmente queste impostazioni del Registro di sistema, potrebbero verificarsi problemi con il servizio cluster nei cluster server basati su Windows Server 2003 SP1.

Windows Firewall blocca il traffico DTC

Importante

Questi passaggi possono aumentare il rischio per la sicurezza. Questi passaggi possono anche rendere il computer o la rete più vulnerabile agli attacchi da parte di utenti malintenzionati o da software dannoso come virus. È consigliabile usare il processo descritto in questo articolo per consentire ai programmi di funzionare come sono progettati per o per implementare funzionalità specifiche del programma. Prima di apportare queste modifiche, è consigliabile valutare i rischi associati all'implementazione di questo processo nel proprio ambiente specifico. Se si decide di implementare questo processo, seguire i passaggi aggiuntivi appropriati per proteggere il sistema. È consigliabile usare questo processo solo se è effettivamente necessario.

Se si usa Windows Firewall, è necessario aggiungere il servizio DTC all'elenco delle eccezioni nelle impostazioni di Windows Firewall. A tal fine, attenersi alla seguente procedura:

  1. Selezionare Start, selezionare Esegui, digitare firewall.cple quindi selezionare OK.
  2. Nella finestra di dialogo Windows Firewall selezionare la scheda Eccezioni e quindi selezionare Aggiungi programma.
  3. Selezionare Sfoglia, individuare e quindi selezionare C:\Windows\System32\msdtc.exe, quindi selezionare Apri.
  4. Selezionare OK, selezionare la casella di controllomsdtc.exe nell'elenco Programmi e servizi se questa casella di controllo non è già selezionata e quindi selezionare OK.

Impostazioni modificate o aggiunte

Nella tabella seguente vengono descritte le voci del Registro di sistema modificate dopo Windows XP SP2 rispetto alle versioni precedenti di Windows.

Nome voce Posizione Valore predefinito precedente Valore predefinito di Windows XP SP2 Valori possibili
NetworkDtcAccess HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security 1 0 0 o 1
NetworkDtcAccessTransactions KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security 1 0 0 o 1
NetworkDtcAccessInbound HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security Non applicabile 0 0 o 1
NetworkDtcAccessOutbound HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security Non applicabile 0 0 o 1
AllowOnlySecureRpcCalls HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC Non applicabile 1 0 o 1
FallbackToUnsecureRPCIfNecessary HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC Non applicabile 0 0 o 1
TurnOffRpcSecurity HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC Non applicabile 0 0 o 1

Nota

Queste modifiche vengono visualizzate nel Registro di sistema del cluster condiviso in un cluster server basato su Windows Server 2003 SP1.

Codici di errore associati alle modifiche del servizio DTC

Quando si eseguono transazioni DTC tra computer, è possibile che venga visualizzato uno dei codici di errore seguenti:

  • Codice di errore 1

    MessageId: XACT_E_NETWORK_TX_DISABLED
    MessageText:
    Il gestore transazioni ha disabilitato il supporto per le transazioni remote/di rete.
    #define XACT_E_NETWORK_TX_DISABLED HRESULT_TYPEDEF(0x8004D024L)

  • Codice di errore 2

    MessageId: XACT_E_PARTNER_NETWORK_TX_DISABLED
    MessageText:
    Il gestore transazioni partner ha disabilitato il supporto per le transazioni remote/di rete.
    #define XACT_E_PARTNER_NETWORK_TX_DISABLED HRESULT_TYPEDEF(0x8004D025L)

Si applica a

  • Windows Server 2012 R2
  • Windows 8.1
  • Windows 8
  • Windows 7
  • Windows Vista
  • Windows Server 2008
  • Windows Server 2003
  • Windows XP