Compartir a través de


Microsoft Dynamics 365 Customer Engagement (en línea) para requerir TLS 1.2 para la conectividad

En Dynamics 365 (en línea) versión 9.x y Dynamics 365 (en línea) Government versión 8.2, comenzaremos a exigir conexiones a aplicaciones de interacción con el cliente para usar la seguridad TLS 1.2 (o superior). Esto se alinea con las directivas de seguridad y procedimientos recomendados actualizados de Microsoft y del sector, y es posible que tenga que realizar acciones para mantener la conectividad con Dynamics 365 aplicaciones de Customer Engagement. Revise la siguiente información para ayudarle a identificar si se ve afectado y qué pasos debe seguir.

Se aplica a: Microsoft Dynamics 365
Número de KB original: 4051700

¿Qué es TLS?

TLS significa Seguridad de la capa de transporte y es un protocolo que es un estándar del sector diseñado para proteger la privacidad de la información comunicada a través de Internet. TLS se usa en muchos exploradores web y aplicaciones que se comunican a través de HTTPS y TCP.

¿Qué está cambiando?

En la actualidad, todas las versiones en línea de Dynamics 365 Customer Engagement admiten TLS 1.0, 1.1 y 1.2, pero a partir de la versión 9.x de Dynamics 365 (en línea) y Dynamics 365 versión 8.2 de Government, comenzaremos a bloquear las conexiones al producto actualizado desde clientes o exploradores que usan TLS 1.0 y 1.1.

Nota:

Este cambio solo afecta a Microsoft Dynamics 365 Online Customer Engagement, no a las versiones locales.

¿Cómo se verán afectados usted o sus clientes?

Las conexiones a Dynamics 365 (en línea) versión 9.x o Dynamics 365 versión 8.2 de Government (en línea) producirán un error si no usan el protocolo de seguridad TLS 1.2. Esto afectará a varios servicios de Dynamics (que se enumeran a continuación), incluido el acceso a la aplicación web Dynamics 365 Customer Engagement.

¿Cómo puede usted o sus clientes evitar verse afectados?

Para exploradores web admitidos

Todos los exploradores admitidos para Dynamics 365 Customer Engagement (versiones 7.x - versión 9.x) cumplen actualmente con los estándares TLS 1.2 y seguirán funcionando como antes. Sin embargo, si ha deshabilitado el protocolo TLS 1.2 en el explorador, se verá afectado y perderá la conectividad con las organizaciones.

Para las herramientas de desarrollo proporcionadas por Microsoft

Consulte Novedades de la documentación para desarrolladores de Customer Engagement en la versión 9.0 para obtener las últimas novedades de nuestra documentación de herramientas para desarrolladores. Actualice a la versión más reciente de las herramientas, usadas en el desarrollo, desde NuGet. Entre los ejemplos de herramientas para desarrolladores se incluyen la herramienta de registro de complementos y la herramienta de migración de configuración. La versión 9.0 de estas herramientas es compatible con versiones anteriores y se puede usar para Dynamics 365 (en línea) versión 8.2 Government.

Para el código creado con el SDK de Dynamics 365

Vuelva a compilar las aplicaciones cliente con .NET Framework 4.6.2 o posterior. Si el código ya está compilado con .NET 4.6.2 o posterior, no es necesario realizar ninguna acción. Para complementos personalizados y ensamblados de flujo de trabajo, .NET 4.5.2 debe seguir utilizándose.

Problema conocido con Visual Studio 2015

Al ejecutar el proyecto o la solución en Visual Studio 2015 en modo de depuración, hay un problema conocido en el que es posible que no pueda conectarse a Dynamics 365 versión 9.x (en línea) o Dynamics 365 (en línea) versión 8.2 Government. Esto sucede independientemente de si usa una plataforma de destino de 4.6.2 o posterior. Esto puede ocurrir porque el proceso de hospedaje de Visual Studio se compila en .NET 4.5, lo que significa que de forma predeterminada no admite TLS 1.2. Puede deshabilitar el proceso de hospedaje de Visual Studio como solución alternativa. Haga clic con el botón derecho en el nombre del proyecto en Visual Studio y, a continuación, haga clic en Propiedades. En la pestaña Depurar , puede desactivar la opción Habilitar el proceso de hospedaje de Visual Studio .

Nota:

Esto solo afecta a la experiencia de depuración en Visual Studio 2015. Esto no afecta a los archivos binarios o ejecutables que se compilan. El mismo problema no se produce en Visual Studio 2017.

Una nota importante para las aplicaciones basadas en .NET

Puede forzar el protocolo TLS 1.2 mediante el siguiente comando:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

Esto obliga al protocolo de seguridad TLS 1.2 en todo momento. Esto no se recomienda, ya que corre el riesgo de tener que actualizarlo cuando hay un protocolo de seguridad más reciente adoptado por el sector.

Para el código existente que no se puede volver a compilar

Puede usar una configuración del Registro en Windows que forzará a .NET a usar el estándar de seguridad más alto posible.

Nota:

Se trata de una configuración de toda la máquina y puede tener efectos no deseados. Se recomienda que usted o el cliente utilicen el método de recompilación a .NET 4.6.2 o superior.

Para actualizar la configuración del Registro que obliga a .NET 4.5.2 a preferir TLS 1.2 en todo el equipo, se documenta en el artículo Microsoft Security Advisory 2960358 . Consulte la sección Acciones sugeridas en "Deshabilitar manualmente RC4 en TLS en sistemas que ejecutan .NET Framework 4.5/4.5.1/4.5.2".

Para software que no es de .NET

Consulte con el proveedor cómo habilitar TLS 1.2. Para la mayoría de los idiomas, se puede hacer con una entrada de configuración simple.

Para PowerShell

Agregue [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12 al script de PowerShell antes de llamar a Get-CrmConnection.

Para Dynamics 365 para Microsoft Outlook

Dynamics 365 versión 8.2 de Government (en línea) y Dynamics 365 (en línea) versión 9.x

Para Unified Service Desk (USD)

Descargue la versión más reciente de Unified Service Desk (las versiones 3.1, 3.2 y 3.3 son compatibles con TLS 1.2).

Si desea seguir usando versiones anteriores de Unified Service Desk, deberá actualizar las entradas del Registro del escritorio del cliente.

Para Dynamics 365 para la creación de informes

Dynamics 365 (en línea) Versión 8.2 de Government

Dynamics 365 (en línea) versión 9.x

Para Dynamics 365 para Email Router

Dynamics 365 (en línea) Versión 8.2 de Government

Dynamics 365 (en línea) versión 9.x

Errores de ejemplo

A continuación se muestran algunos posibles errores de conectividad que puede encontrar cuando se usa el protocolo de seguridad que no es TLS 1.2:

Error del explorador

"No se puede conectar de forma segura a esta página
Esto puede deberse a que el sitio usa una configuración de seguridad TLS obsoleta o no segura. Esto sigue sucediendo, intente ponerse en contacto con el propietario del sitio web".

Error del conector

"Microsoft.Xrm.Tooling.CrmConnectControl Information: 8 : Login Status in Connect is = Validating connection to Microsoft Dynamics CRM...

Error Microsoft.Xrm.Tooling.Connector.CrmServiceClient: 2 : ERROR AL SOLICITAR el token DEL contexto de autenticación

Error Microsoft.Xrm.Tooling.Connector.CrmServiceClient: 2 : Source : mscorlib

Método : ThrowIfExceptional

Error: se han producido uno o varios errores.

Seguimiento de pila: en System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)

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

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

at 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)

Nivel de excepción interno 1 :

Origen: Microsoft.IdentityModel.Clients.ActiveDirectory

Método : Close

Error: referencia de objeto no establecida en una instancia de un objeto.

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

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

--- seguimiento del final de la pila desde la ubicación anterior donde se produjo la excepción ---

at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)

at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)

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

Herramientas de desarrollo error

"Nivel de excepción interno 1 :

Origen: Sistema

Método : GetResponse

Error: se cerró la conexión subyacente: se produjo un error inesperado en un envío.

Seguimiento de pila: en System.Net.HttpWebRequest.GetResponse()

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

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

Nivel de excepción interno 2 :

Origen: Sistema

Método : Read

Error: No se pueden leer datos de la conexión de transporte: el host remoto cerró forzadamente una conexión existente.

Seguimiento de pila: en System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

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

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

Información adicional