Microsoft Dynamics 365 Customer Engagement (online) per richiedere TLS 1.2 per la connettività

In Dynamics 365 versione (online) 9.x e Dynamics 365 (online) per enti pubblici versione 8.2, inizieremo a richiedere connessioni alle applicazioni di coinvolgimento dei clienti per usare la sicurezza TLS 1.2 (o superiore). Questo è in linea con i criteri di sicurezza e le procedure consigliate aggiornati di Microsoft e del settore e potrebbe essere necessario intraprendere azioni per mantenere la connettività alle applicazioni Dynamics 365 Customer Engagement. Esaminare le informazioni seguenti per identificare se si è interessati e quali passaggi potrebbe essere necessario eseguire.

Si applica a: Microsoft Dynamics 365
Numero KB originale: 4051700

Che cos'è TLS?

TLS è l'acronimo di Transport Layer Security ed è un protocollo che è uno standard del settore progettato per proteggere la privacy delle informazioni comunicate tramite Internet. TLS viene usato in molti Web browser e applicazioni che comunicano tramite HTTPS e TCP.

Che cosa sta cambiando?

Oggi, tutte le versioni online di Dynamics 365 Customer Engagement supportano TLS 1.0, 1.1 e 1.2, ma a partire dalla versione di Dynamics 365 (online) versione 9.x e Dynamics 365 (online) per enti pubblici versione 8.2, inizieremo a bloccare le connessioni al prodotto aggiornato da client o browser che usano TLS 1.0 e 1.1.

Nota

Questa modifica interessa solo Microsoft Dynamics 365 Online Customer Engagement, non le versioni locali.

In che modo l'utente o i clienti saranno interessati?

Le connessioni a Dynamics 365 (online) versione 9.x o Dynamics 365 (online) per enti pubblici versione 8.2 avranno esito negativo se non usano il protocollo di sicurezza TLS 1.2. Ciò influirà su diversi servizi Dynamics (elencati di seguito), incluso l'accesso all'applicazione Web Dynamics 365 Customer Engagement.

In che modo voi o i vostri clienti potete evitare di essere interessati?

Per i Web browser supportati

Tutti i browser supportati per Dynamics 365 Customer Engagement (versioni 7.x - versione 9.x) sono attualmente conformi agli standard TLS 1.2 e continueranno a funzionare come in precedenza. Tuttavia, se è stato disabilitato il protocollo TLS 1.2 nel browser, si verrà interessati e si perderà la connettività alle organizzazioni.

Per gli strumenti di sviluppo forniti da Microsoft

Vedere Novità della documentazione per sviluppatori di Customer Engagement nella versione 9.0 per ottenere le ultime informazioni sulla documentazione degli strumenti di sviluppo. Eseguire l'aggiornamento alla versione più recente degli strumenti, usata nello sviluppo, da NuGet. Esempi di strumenti di sviluppo includono lo strumento di registrazione plug-in e lo strumento di migrazione della configurazione. La versione 9.0 di questi strumenti è compatibile con le versioni precedenti e può essere usata per Dynamics 365 versione 8.2 per enti pubblici (online).

Per il codice compilato con Dynamics 365 SDK

Ricompilare le applicazioni client usando .NET Framework 4.6.2 o versione successiva. Se il codice è già compilato con .NET 4.6.2 o versione successiva, non è necessaria alcuna azione. Per i plug-in personalizzati e gli assembly del flusso di lavoro, .NET 4.5.2 deve continuare a essere usato.

Problema noto con Visual Studio 2015

Quando si esegue il progetto o la soluzione in Visual Studio 2015 in modalità di debug, esiste un problema noto per cui potrebbe non essere possibile connettersi a Dynamics 365 versione (online) 9.x o Dynamics 365 (online) versione 8.2 per enti pubblici. Ciò si verifica indipendentemente dal fatto che si usi un framework di destinazione 4.6.2 o versione successiva. Ciò può verificarsi perché il processo di hosting di Visual Studio viene compilato in .NET 4.5, ovvero per impostazione predefinita non supporta TLS 1.2. È possibile disabilitare il processo di hosting di Visual Studio come soluzione alternativa. Fare clic con il pulsante destro del mouse sul nome del progetto in Visual Studio e quindi scegliere Proprietà. Nella scheda Debug è possibile deselezionare l'opzione Abilita processo di hosting di Visual Studio .

Nota

Ciò influisce solo sull'esperienza di debug in Visual Studio 2015. Ciò non influisce sui file binari o sui file eseguibili compilati. Lo stesso problema non si verifica in Visual Studio 2017.

Una nota importante per le app basate su .NET

È possibile forzare il protocollo TLS 1.2 usando il comando seguente:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

In questo modo il protocollo di sicurezza TLS 1.2 viene forzato in qualsiasi momento. Questa operazione non è consigliata perché si corre il rischio di dover aggiornarlo quando esiste un protocollo di sicurezza più recente adottato dal settore.

Per il codice esistente che non può essere ricompilato

È possibile utilizzare un'impostazione del Registro di sistema in Windows che impone a .NET di usare lo standard di sicurezza più elevato possibile.

Nota

Si tratta di un'impostazione a livello di computer e può avere effetti indesiderati. È consigliabile che l'utente o il cliente utilizzi il metodo di ricompilazione in .NET 4.6.2 o versione successiva.

Per aggiornare le impostazioni del Registro di sistema che impongono a .NET 4.5.2 di preferire TLS 1.2 a livello di computer, vedere l'articolo Microsoft Security Advisory 2960358 . Vedere la sezione Azioni suggerite in "Disabilitare manualmente RC4 in TLS nei sistemi che eseguono .NET Framework 4.5/4.5.1/4.5.2".

Per software non .NET

Verificare con il fornitore come abilitare TLS 1.2. Per la maggior parte delle lingue, può essere eseguita con una semplice voce di configurazione.

Per PowerShell

Aggiungere [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 allo script di PowerShell prima di chiamare Get-CrmConnection.

Per Dynamics 365 per Microsoft Outlook

Dynamics 365 (online) versione 8.2 e Dynamics 365 (online) versione 9.x

Per Unified Service Desk (USD)

Scaricare la versione più recente di Unified Service Desk (le versioni 3.1, 3.2 e 3.3 sono conformi a TLS 1.2).

Se si desidera continuare a usare versioni precedenti di Unified Service Desk, è necessario aggiornare le voci del Registro di sistema del desktop client.

Per Dynamics 365 per la creazione di report

Dynamics 365 (online) per enti pubblici versione 8.2

Dynamics 365 (online) versione 9.x

Per Dynamics 365 per il router Email

Dynamics 365 (online) per enti pubblici versione 8.2

Dynamics 365 (online) versione 9.x

Errori di esempio

Di seguito sono riportati alcuni potenziali errori di connettività che potrebbero verificarsi quando viene usato il protocollo di sicurezza non TLS 1.2:

Errore del browser

"Impossibile connettersi in modo sicuro a questa pagina
Questo potrebbe essere dovuto al fatto che il sito usa impostazioni di sicurezza TLS obsolete o non sicure. Questo continua a verificarsi, prova a contattare il proprietario del sito Web."

Errore del connettore

"Microsoft.Xrm.Tooling.CrmConnectControl Information: 8 : Lo stato dell'accesso in Connect è = Convalida della connessione a Microsoft Dynamics CRM...

Errore Microsoft.Xrm.Tooling.Connector.CrmServiceClient: 2 : ERRORE DURANTE LA RICHIESTA DI token DAL contesto di autenticazione

Errore Microsoft.Xrm.Tooling.Connector.CrmServiceClient: 2 : Origine : mscorlib

Metodo : ThrowIfExceptional

Errore: si sono verificati uno o più errori.

Traccia dello stack: in System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)

in System.Threading.Tasks.Task'1.GetResultCore(Boolean waitCompletionNotification)

in System.Threading.Tasks.Task'1.get_Result()

in Microsoft.Xrm.Tooling.Connector.CrmWebSvc.ExecuteAuthenticateServiceProcess(Uri serviceUrl, ClientCredentials clientCredentials, UserIdentifier user, String clientId, Uri redirectUri, PromptBehavior promptBehavior, String tokenCachePath, Boolean isOnPrem, String authority, Uri& targetServiceUrl, AuthenticationContext& authContext, String& resource)

Livello di eccezione interno 1:

Origine : Microsoft.IdentityModel.Clients.ActiveDirectory

Metodo : Close

Errore: riferimento all'oggetto non impostato su un'istanza di un oggetto.

Stack Trace : in Microsoft.IdentityModel.Clients.ActiveDirectory.HttpWebResponseWrapper.Close()

in Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationParameters.<CreateFromResourceUrlCommonAsync>d__0.MoveNext()

--- fine della traccia dello stack dalla posizione precedente in cui è stata generata un'eccezione ---

in System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task)

in System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task)

in Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationParameters.<CreateFromResourceUrlAsync>d__8.MoveNext()"

Strumenti di sviluppo errore

"Livello di eccezione interna 1 :

Origine: sistema

Metodo : GetResponse

Errore: la connessione sottostante è stata chiusa: si è verificato un errore imprevisto durante un'invio.

Traccia dello stack: in System.Net.HttpWebRequest.GetResponse()

in System.ServiceModel.Description.MetadataExchangeClient.MetadataLocationRetriever.DownloadMetadata(TimeoutHelper timeoutHelper)

in System.ServiceModel.Description.MetadataExchangeClient.MetadataRetriever.Retrieve(TimeoutHelper timeoutHelper)

Livello di eccezione interno 2 :

Origine: sistema

Metodo : Lettura

Errore: impossibile leggere i dati dalla connessione di trasporto: una connessione esistente è stata chiusa forzatamente dall'host remoto.

Stack Trace : in System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

in System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)

in System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)"

Informazioni aggiuntive