Microsoft Dynamics 365 Customer Engagement (在線) 要求 TLS 1.2 進行連線
在 Dynamics 365 (在線) 9.x 版和 Dynamics 365 (在線) Government 8.2 版中,我們將開始要求客戶參與應用程式的連線,以利用 TLS 1.2 (或更好的) 安全性。 這符合更新的 Microsoft 和業界安全策略和最佳做法,而且您可能需要採取動作來維持與 Dynamics 365 Customer Engagement 應用程式的連線能力。 請檢閱下列資訊,以協助您識別是否受到影響,以及可能需要採取哪些步驟。
適用於:Microsoft Dynamics 365
原始 KB 編號: 4051700
什麼是 TLS?
TLS 代表 傳輸層安全性,是一種業界標準的通訊協定,旨在保護透過因特網通訊之資訊的隱私權。 TLS 用於許多透過 HTTPS 和 TCP 通訊的網頁瀏覽器和應用程式。
有哪些變更?
現在,所有 Dynamics 365 Customer Engagement 在線版本都支援 TLS 1.0、1.1 和 1.2,但從 Dynamics 365 (在線) 9.x 版和 Dynamics 365 (Online) Government 8.2 版的版本開始,我們將開始封鎖使用 TLS 1.0 和 1.1 的用戶端或瀏覽器對更新產品連線。
注意事項
這項變更只會影響 Microsoft Dynamics 365 Online Customer Engagement,而不會影響內部部署版本。
您或您的客戶會如何受到影響?
如果連線到 Dynamics 365 (在線) 9.x 版或 Dynamics 365 (在線) Government 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 資訊安全諮詢2960358 一文。 See section Suggested Actions under "Manually disable RC4 in TLS on systems running .NET Framework 4.5/4.5.1/4.5.2".
針對非 .NET 軟體
請洽詢廠商,瞭解如何啟用 TLS 1.2。 對於大部分的語言而言,可以使用簡單的設定專案來完成。
針對 PowerShell
在呼叫 Get-CrmConnection
之前,請先將 新[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
增至 PowerShell 腳本。
適用於 Microsoft Outlook Dynamics 365
Dynamics 365 (在線) Government 8.2 版和 Dynamics 365 (在線) 9.x 版
- 下載並安裝 8.2.2.137 版。
針對 Unified Service Desk (美元)
下載 最新版的 Unified Service Desk (3.1、3.2 和 3.3 版符合 TLS 1.2 標準) 。
如果您想要繼續使用舊版的整合服務桌面,則必須 更新用戶端桌面的登錄專案。
針對報表撰寫 Dynamics 365
Dynamics 365 (在線) 政府版 8.2
Dynamics 365 (在線) 9.x 版
- 下載並安裝 9.0 版。
針對 Email 路由器的 Dynamics 365
Dynamics 365 (在線) 政府版 8.2
Dynamics 365 (在線) 9.x 版
- 下載並安裝 9.0 版。
範例錯誤
以下是使用非 TLS 1.2 安全性通訊協定時可能會遇到的一些潛在連線錯誤:
瀏覽器錯誤
「無法安全地連線到此頁面
這可能是因為網站使用過期或不安全的 TLS 安全性設定。 這種情況會持續發生,請嘗試連絡網站的擁有者。」
連接器錯誤
“Microsoft.Xrm.Tooling.CrmConnectControl Information: 8 : Connect 中的登入狀態是 = 驗證與 Microsoft Dynamics CRM 的連線...
Microsoft.Xrm.Tooling.Connector.CrmServiceClient 錯誤:2:從驗證內容要求令牌時發生錯誤
Microsoft.Xrm.Tooling.Connector.CrmServiceClient 錯誤: 2 : 來源 : mscorlib
方法:ThrowIfExceptional
錯誤: 發生一或多個錯誤。
堆棧追蹤:在 System.Threading.Tasks.Task.ThrowIfExceptional (Boolean includeTaskCanceledExceptions)
在 System.Threading.Tasks.Task'1.GetResultCore (Boolean waitCompletionNotification)
在 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 ()
在 Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationParameters。<CreateFromResourceUrlCommonAsync>d__0.MoveNext ()
---從先前擲回例外狀況的位置結束堆疊追蹤---
在 System.Runtime.CompilerServices.TaskKeyiter.ThrowForNonSuccess (工作工作)
在 System.Runtime.CompilerServices.TaskKeyiter.HandleNonSuccessAndDebuggerNotification (工作工作)
在 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[] 緩衝區、Int32 位移、Int32 大小)
at System.Net.FixedSizeReader.ReadPacket (Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security.SslState.StartReceiveBlob (Byte[] buffer, AsyncProtocolRequest asyncRequest) ”