共用方式為


Microsoft Dynamics 365 Customer Engagement (在線) 要求 TLS 1.2 才能連線

在 Dynamics 365 (線上) 9.x 版和 Dynamics 365 (在線) 政府 8.2 版中,我們將開始要求客戶參與應用程式的連線,以利用 TLS 1.2(或更好的)安全性。 這符合更新的Microsoft和產業安全策略和最佳做法,您可能需要採取動作來維護 Dynamics 365 Customer Engagement 應用程式的連線。 檢閱下列資訊,以協助您識別您是否受到影響,以及可能需要採取哪些步驟。

適用於: Microsoft Dynamics 365
原始 KB 編號: 4051700

什麼是 TLS?

TLS 代表 傳輸層安全性,而且是一種業界標準,其設計目的是保護透過因特網通訊的資訊隱私權。 透過 HTTPS 及 TCP 進行通訊的許多網頁瀏覽器與應用程式,都使用 TLS。

變更內容為何?

目前,所有 Dynamics 365 Customer Engagement 在線版本都支援 TLS 1.0、1.1 和 1.2,但從 Dynamics 365 (在線) 9.x 版和 Dynamics 365 版 (在線) 政府版 8.2 開始,我們會從使用 TLS 1.0 和 1.1 的用戶端或瀏覽器封鎖更新產品的聯機。

注意

這項變更只會影響 Dynamics 365 Online Customer Engagement Microsoft,而不會影響內部部署版本。

您或您的客戶將受到怎樣的影響?

如果 Dynamics 365 (線上) 9.x 版或 Dynamics 365 (在線) 政府版 8.2 的任何連線未使用 TLS 1.2 安全性通訊協定,將會失敗。 這會影響數個 Dynamics 服務(如下所列),包括存取 Dynamics 365 Customer Engagement Web 應用程式。

您或您的客戶如何避免受到影響?

針對支援的網頁瀏覽器

Dynamics 365 Customer Engagement 的所有支持瀏覽器(版本 7.x - 9.x 版)目前都符合 TLS 1.2 標準,並且將繼續如前運作。 不過,如果您已在瀏覽器中停用 TLS 1.2 通訊協定,您將會受到影響,並失去與組織的連線。

針對Microsoft提供的開發人員工具

請參閱 9.0 版的 Customer Engagement 開發人員檔的新功能,以取得我們開發人員工具檔的最新資訊。 從 NuGet 更新為 用於開發的最新版工具。 開發人員工具的範例包括外掛程式註冊工具和組態移轉工具。 這些工具 9.0 版相容,可用於 Dynamics 365(在線)8.2 版政府版。

針對使用 Dynamics 365 SDK 建置的程式代碼

使用 .NET Framework 4.6.2 或更高版本重新編譯客戶端應用程式。 如果您的程式代碼已經使用 .NET 4.6.2 或更高版本進行編譯,則不需要採取任何動作。 針對自定義外掛程式和工作流程元件,應該繼續使用 .NET 4.5.2。

Visual Studio 2015 的已知問題

當您在 Visual Studio 2015 中以偵錯模式執行專案/解決方案時,有一個已知問題,您可能無法連線到 Dynamics 365 9.x 版或 Dynamics 365(在線)8.2 版 Government。 不論您使用的是 4.6.2 或更高版本的目標 Framework,都會發生這種情況。 這是因為 Visual Studio 主控進程是針對 .NET 4.5 編譯,這表示預設不支援 TLS 1.2。 您可以停用 Visual Studio 裝載程式作為因應措施。 以滑鼠右鍵按兩下 Visual Studio 中項目的名稱,然後按兩下 [屬性]。 在 [ 偵錯] 索引標籤上,您可以取消核取 [ 啟用 Visual Studio 裝載行程 ] 選項。

注意

這隻會影響 Visual Studio 2015 中的偵錯體驗。 這不會影響建置的二進位檔或可執行檔。 Visual Studio 2017 中不會發生相同的問題。

.NET 應用程式的重要注意事項

您可以使用下列命令強制 TLS 1.2 通訊協定:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

這會一直強制 TLS 1.2 安全性通訊協定。 當您在業界採用較新的安全性通訊協定時,不建議這麼做。

無法重新編譯的現有程序代碼

您可以在 Windows 上使用登錄設定,強制 .NET 使用最高可能的安全性標準。

注意

這是整部計算機的設定,而且可能會有不想要的影響。 建議您或您的客戶使用重新編譯至 .NET 4.6.2 或更高版本的方法。

若要更新強制 .NET 4.5.2 偏好使用 TLS 1.2 機器的登錄設定,請參閱 Microsoft Security Advisory 2960358 一文。 請參閱在執行 .NET Framework 4.5/4.5.1/4.5.2 的系統上手動停用 TLS 中的建議動作一節

針對非 .NET 軟體

請洽詢廠商如何啟用 TLS 1.2。 針對大部分的語言,可以使用簡單的組態專案來完成。

針對 PowerShell

在您呼叫 Get-CrmConnection之前,請先新增[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12至 PowerShell 腳本。

For Dynamics 365 for Microsoft Outlook

Dynamics 365 (在線) 政府 8.2 版和 Dynamics 365 (在線) 9.x 版

適用於統一服務台(美元)

下載最新版的 Unified Service Desk(3.1、3.2 和 3.3 版符合 TLS 1.2 規範)。

如果您想要繼續使用舊版的 Unified Service desk,您必須 更新用戶端桌面的登錄專案

適用於報表撰寫的 Dynamics 365

Dynamics 365 (在線) 政府 8.2 版

Dynamics 365 (在線) 9.x 版

  • 下載並安裝 9.0 版。

適用於電子郵件路由器的 Dynamics 365

Dynamics 365 (在線) 政府 8.2 版

Dynamics 365 (在線) 9.x 版

  • 下載並安裝 9.0 版。

範例錯誤

以下是使用非 TLS 1.2 安全性通訊協定時可能會遇到的一些潛在連線錯誤:

瀏覽器錯誤

「無法安全地連線到此頁面
這可能是因為網站使用過期或不安全的 TLS 安全性設定。 這種情況持續發生,請嘗試連絡網站的擁有者。

連接器錯誤

“Microsoft.Xrm.Tooling.CrmConnectControl 資訊:8:連線中的登入狀態 = 驗證 Microsoft與 Dynamics CRM 的連線...

Microsoft.Xrm.Tooling.Connector.CrmServiceClient 錯誤:2:從驗證內容要求令牌時發生錯誤

Microsoft.Xrm.Tooling.Connector.CrmServiceClient 錯誤: 2 : 來源: mscorlib

方法:ThrowIfExceptional

錯誤: 發生一或多個錯誤。

堆棧追蹤:在 System.Threading.Tasks.Task.ThrowIfExceptional(布爾值 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)

內部例外狀況層級 1 :

來源:Microsoft.IdentityModel.Clients.ActiveDirectory

方法: Close

錯誤: 對象參考未設定為 對象的實例。

堆棧追蹤:位於 Microsoft.IdentityModel.Clients.ActiveDirectory.HttpWebResponseWrapper.Close()

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

---從先前擲回例外狀況的位置結束堆疊追蹤---

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

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

at Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationParameters。<CreateFromResourceUrlAsync>d__8.MoveNext()”

開發人員工具 錯誤

「內部例外狀況層級 1 :

來源:系統

方法:GetResponse

錯誤: 基礎連線已關閉:傳送時發生未預期的錯誤。

堆棧追蹤:在 System.Net.HttpWebRequest.GetResponse()

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

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

內部例外狀況層級 2 :

來源:系統

方法:讀取

錯誤: 無法從傳輸連線讀取數據:遠端主機強行關閉現有的連線。

堆棧追蹤:在 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)”

其他資訊