將 Customer Engagement (on-premises) 連線至 Exchange Online
本文說明如何設定 Dynamics 365 (on-premises) 和 Exchange Online 之間的伺服器架構驗證。 下圖說明 Dynamics 365 (on-premises)、Azure Active Directory 和 Exchange Online 之間的通訊。
需要的權限
Microsoft Dynamics 365
- 系統管理員資訊安全角色。
- 如果為評估用途使用自我簽署憑證,您必須擁有執行 Microsoft Dynamics 365 Server 所在電腦的本機系統管理員群組成員資格。
- 用來登入 CRM 部署伺服器的帳戶必須有完整的本機系統管理員權限。
Exchange Online
- Office 365 全域管理員成員資格。 這對 Office 365 訂閱進行管理層級存取,以及執行 Microsoft Azure PowerShell Cmdlet 來說有其必要。
重要
在此部署中,Dynamics 365 系統管理員可以核准信箱。
設定 Microsoft Dynamics 365 和 Exchange Online 的伺服器型驗證
依提供的順序執行步驟,以設定 Dynamics 365 (on-premises) 與 Exchange Online。
重要
必須依照提供的順序完成此處所述的步驟。 如果未完成工作 (例如傳回錯誤訊息的 Windows PowerShell 命令),必須先將目標解決,才能繼續執行下一個命令、工作或步驟。
確認先決條件
在您設定 Dynamics 365 (on-premises) 和 Exchange Online 進行伺服器架構驗證之前,必須符合下列先決條件:
- Microsoft Dynamics 365 Hybrid Connector。 Microsoft Dynamics 365 Hybrid Connector 是免費連接器,可讓您用於 Microsoft Dynamics 365 (on-premises) 和 Exchange Online 的伺服器架構驗證。 其他資訊:Microsoft Dynamics 365 Hybrid Connector
- 由信任的憑證授權單位發行的 x509 數位憑證,將用於 Dynamics 365 (on-premises) 和 Exchange Online之間的驗證。 憑證的 KeySpec 值必須為 1。 如果您評估伺服器架構驗證,您可以使用自我簽署憑證。
- 確認所有執行非同步處理服務的伺服器都有用於伺服器對伺服器驗證的憑證。
- 確認執行非同步處理服務的帳戶擁有憑證私密金鑰的讀取權限。 其他資訊:將憑證的讀取權限授與非同步處理服務的服務帳戶
設定伺服器型驗證
在部署工具伺服器角色執行的 Microsoft Dynamics 365 Server 上,啟動適用於 Windows PowerShell 的 Azure Active Directory 模組。
準備憑證。
將目錄變更至 CertificateReconfiguration.ps1 檔案位置 (預設為 C:\Program Files\Microsoft Dynamics CRM\Tools)。
$CertificateScriptWithCommand = ".\CertificateReconfiguration.ps1 -certificateFile c:\Personalcertfile.pfx -password personal_certfile_password -updateCrm -certificateType S2STokenIssuer -serviceAccount contoso\CRMAsyncService -storeFindType FindBySubjectDistinguishedName"
Invoke-Expression -command $CertificateScriptWithCommand
準備 Windows PowerShell 工作階段。
下列 Cmdlet 可讓電腦接收遠端命令,並將 Office 365 模組新增至 Windows PowerShell 工作階段。 如需這些 Cmdlet 的詳細資訊,請參閱 Windows PowerShell 核心 Cmdlet。
Enable-PSRemoting -force
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-Module MSOnline
Install-Module MSOnlineExt
Import-Module MSOnline -force
Import-Module MSOnlineExt -force
連線至 Office 365。
執行 Connect-MsolService 命令時,您必須提供具備 Office 365 全域管理員成員資格所需 Exchange Online 授權的有效 Microsoft 帳戶。 如需此處所列其中每個 Azure Active Directory PowerShell 命令的詳細資訊,請參閱 MSDN:使用 Windows PowerShell 管理 Azure AD。
$msolcred = get-credential
connect-msolservice -credential $msolcred
- 設定憑證。
$Certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$Certificate.Import("c:\Personalcertfile.cer")
$CERCertificateBin = $Certificate.GetRawCertData()
$CredentialValue = [System.Convert]::ToBase64String($CERCertificateBin)
在 Exchange Online 中設定 Azure Active Directory 服務主體名稱 (SPN)。
以 Microsoft Dynamics 365 Server 所在的網域名稱來取代 *.contoso.com。
$RootDomain = "*.contoso.com"
$CRMAppId = "00000007-0000-0000-c000-000000000000"
New-MsolServicePrincipalCredential -AppPrincipalId $CRMAppId -Type asymmetric -Usage Verify -Value $CredentialValue
$CRM = Get-MsolServicePrincipal -AppPrincipalId $CRMAppId
$ServicePrincipalName = $CRM.ServicePrincipalNames
$ServicePrincipalName.Remove("$CRMAppId/$RootDomain")
$ServicePrincipalName.Add("$CRMAppId/$RootDomain")
Set-MsolServicePrincipal -AppPrincipalId $CRMAppId -ServicePrincipalNames $ServicePrincipalName
- 針對 Exchange 的伺服器型驗證設定 Microsoft Dynamics 365 Server。
Add-PSSnapin Microsoft.Crm.PowerShell
$setting = New-Object "Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity"
$setting.LogicalName = "ServerSettings"
$setting.Attributes = New-Object "Microsoft.Xrm.Sdk.Deployment.AttributeCollection"
$attribute1 = New-Object "System.Collections.Generic.KeyValuePair[String, Object]" ("S2SDefaultAuthorizationServerPrincipalId", "00000001-0000-0000-c000-000000000000")
$setting.Attributes.Add($attribute1)
$attribute2 = New-Object "System.Collections.Generic.KeyValuePair[String, Object]" ("S2SDefaultAuthorizationServerMetadataUrl", "https://accounts.accesscontrol.windows.net/metadata/json/1")
$setting.Attributes.Add($attribute2)
Set-CrmAdvancedSetting -Entity $setting
重要
對於將 Exchange Online 與美國政府環境的政府社群雲端 (GCC High) 搭配使用的客戶,必須將 PowerShell 指令碼中的 S2SDefaultAuthorizationServerMetadataUrl 變更為 https://login.microsoftonline.us/metadata/json/1。
設定 Exchange Online 用戶識別碼
- 在適用於 Windows PowerShell 命令介面的 Azure Active Directory 模組中,執行以下命令。
$CRMContextId = (Get-MsolCompanyInformation).ObjectID
$CRMContextId
將顯示的 GUID 複製道剪貼簿。
執行下列命令 (其中 OrganizationName 是組織的唯一名稱,而ExchangeOnlineTenantId 是先前步驟中所擷取的 TenantId),以更新組織的 S2STenantId。
$organizationName = "OrganizationName"
$CRMContextId = "ExchangeOnlineTenantId"
$orgInfo = Get-CrmOrganization -Name $organizationName
$ID = $orgInfo.id
if($ID)
{
Set-CrmAdvancedSetting -ID $orgInfo.ID -configurationEntityName "Organization" -setting "S2STenantId" -value $CRMContextId
}
啟用伺服器型驗證精靈期間收到的錯誤
錯誤:失敗的驗證。 用於伺服器對伺服器驗證的憑證遺失或無效時,可能傳回此錯誤。 若要解決,請更新或安裝憑證,然後再試一次。
建立電子郵件伺服器設定檔
- 移至設定>電子郵件組態>電子郵件伺服器設定檔。
- 選取新增>Exchange Online (混合式)。
- 如需 Exchange 電子郵件伺服器設定檔,請指定下列詳細資料。
欄位 | 描述 |
---|---|
名字 | 指定有意義的設定檔名稱。 |
描述 | 輸入有關電子郵件伺服器設定檔之目標的簡短描述。 |
伺服器類型 | 預先填入 Exchange Online (混合式)。 |
所有人 | 預先填入電子郵件伺服器設定檔的負責人名稱。 |
使用預設用戶識別碼 | 如果您已使用上述 PowerShell 命令設定 Exchange Online 用戶識別碼 (建議),請選取是以使用該識別碼。 如果您將此項設定為否,就必須手動指定 Exchange Online 用戶識別碼 (不建議!)。 |
Exchange Online 用戶識別碼 | 如果您已使用上述 PowerShell 命令設定 Exchange Online 用戶識別碼 (建議),識別碼會預先填入此欄位中。 |
自動探索伺服器位置 | 預先填入 Exchange Online URL。 如果您想要使用自動探索服務來決定伺服器位置,請選取是 (建議)。 如果您將此項設定為 否,就必須手動指定電子郵件伺服器位置。 |
接收伺服器位置和寄出伺服器位置 | 如果您已在自動探索伺服器位置中選取 否,請輸入接收伺服器位置和寄出電子郵件伺服器的 URL: |
其他設定 | |
處理此日期起的電子郵件 | 選取期日及時間。 在此日期及時間之後接收的電子郵件,將會由與此設定檔相關聯之所有信箱的伺服器端同步處理來處理。 如果您設定小於目前日期的值,則會將變更套用至所有新近產生關聯的信箱,並提取其先前已處理的電子郵件。 |
最小輪詢間隔 (以分鐘計) | 輸入與此電子郵件伺服器設定檔相關聯之信箱的最小輪詢間隔 (以分鐘計)。 輪詢間隔會決定伺服器端同步處理輪詢信箱是否有新電子郵件訊息的頻率。 |
將失敗的電子郵件移到 [無法傳遞] 資料夾 | 若要將未傳遞的電子郵件移至 [無法傳遞] 資料夾,請選取是。 如果在 Dynamics 365 中視為電子郵件活動進行的電子郵件訊息追蹤發生錯誤,而且此選項設定為是時,電子郵件訊息將會移至 [無法傳遞] 資料夾。 |
- 選取儲存。
- 選取測試連線並檢閱結果。 若要診斷問題,請參閱後續章節。
疑難排解 Exchange Online (混合式) 設定檔連線
如果您已執行測試連線且 Exchange Online (混合式) 設定檔連線發生問題,請使用測試連線對話方塊中的資訊診斷和修復連線。
您可以在部落格:測試和啟用 Microsoft Dynamics CRM 2015 中的信箱和疑難排解和監控伺服器端同步處理中找到有關重複再發問題及其他疑難排解的資訊。
設定預設電子郵件處理與同步處理
設定伺服器端同步處理,成為預設設定方法。
- 移至設定>電子郵件組態>電子郵件組態設定。
- 設定處理與同步處理欄位如下:
- 伺服器設定檔:在上一節中建立的設定檔。
- 接收電子郵件:伺服器端同步處理或電子郵件路由器
- 寄出電子郵件:伺服器端同步處理或電子郵件路由器
- 約會、連絡人和工作:伺服器端同步處理或電子郵件路由器
Note
如果使用者主要使用其桌上型電腦的 Dynamics 365 for Outlook,Microsoft Dynamics 365 for Outlook 可能是較好的選擇。
如果您保留 [程序表單未核准使用者和佇列的電子郵件] 的預設值 (已選取),則必須依照以下核准電子郵件中的說明,核准使用者信箱的電子郵件和佇列。
- 選取確定。
設定信箱
若要設定信箱使用預設設定擋,您必須先設定伺服器設定檔,以及電子郵件、約會、連絡人和工作傳送方式。
除了系統管理員權限之外,您也必須有信箱實體的 [讀取] 及 [寫入] 權限,才能設定信箱的傳送方式。
選取下列其中一種方法:
編輯信箱以設定設定檔和傳送方式
- 移至設定>電子郵件組態>信箱。
- 選取使用中信箱。
- 選取要設定的信箱,然後選取編輯。
- 在變更多筆記錄表單的同步處理方法底下,將伺服器設定檔設定為您稍早建立的 Exchange Server 設定檔。
- 將接收和寄出電子郵件設定為伺服器端同步處理或電子郵件路由器。
- 將約會、連絡人和工作設定為伺服器端同步處理。
Note
如果使用者主要使用其桌上型電腦的 Dynamics 365 for Outlook,Microsoft Dynamics 365 for Outlook 可能是較好的選擇。
- 選取變更。
核准電子郵件
您必須核准每個使用者信箱或佇列後,該信箱才能處理電子郵件。
- 移至設定>電子郵件組態>信箱。
- 選取使用中信箱。
- 選取您要核准的信箱,然後選取更多命令 (...)>核准電子郵件。
- 選取確定。
測試信箱組態
- 移至設定>電子郵件組態>信箱。
- 選取使用中信箱。
- 選取要測試的信箱,然後選取測試和啟用信箱。
這會測試所選信箱的接收和寄出電子郵件組態,並啟用這些信箱以進行電子郵件處理。 如果信箱中發生錯誤,警示會顯示在信箱與設定檔負責人的警示留言板。 視錯誤的性質而定,Microsoft Dynamics 365 會嘗試在一段時間後重新處理電子郵件,或停用信箱的電子郵件處理。
電子郵件組態測試結果會顯示在信箱記錄的接收電子郵件狀態、寄出電子郵件狀態和約會、連絡人和工作狀態欄位中。 當信箱的組態設定順利完成時,也會產生警示。 此警示會顯示給信箱負責人。
小費
如果您無法同步處理信箱的連絡人、約會和工作,您可能需要選取使用 Exchange 僅同步處理此 Dynamics 365 組織中的項目,即使已設定 Exchange 與不同組織進行同步處理核取方塊。 進一步了解此核取方塊。
測試與電子郵件伺服器設定檔相關聯之所有信箱的電子郵件組態
- 移至設定>電子郵件組態>電子郵件伺服器設定檔。
- 選取您建立的設定檔,然後選取測試和啟用信箱。
當您測試電子郵件組態時,非同步工作會在背景中執行。 測試可能需要數分鐘的時間才能完成。 Microsoft Dynamics 365 會測試與 Exchange Server 設定檔相關聯之所有信箱的電子郵件設定。 對於設定為使用伺服器端同步處理以同步處理約會、工作和連絡人的信箱,也會檢查這些信箱以確定其設定正確。
小費
如果您無法同步處理信箱的連絡人、約會和工作,您可能需要選取使用 Exchange 僅同步處理此 Dynamics 365 組織中的項目,即使已設定 Exchange 與不同組織進行同步處理核取方塊。 進一步了解此核取方塊。
將憑證的讀取權限授與非同步處理服務的服務帳戶
此程序說明如何將憑證私密金鑰的讀取權限授與非同步處理服務的服務帳戶。
- 在憑證所在的電腦,於搜尋方塊中輸入 mmc.exe,然後按 Enter。
- 在 Microsoft Management Console 中,選取檔案,然後選取新增/移除嵌入式管理單元。
- 依序選取憑證、新增、電腦帳戶、下一步、本機電腦,然後選取完成。
- 選取確定關閉新增或移除嵌入式管理單元對話方塊。
- 依序多展開憑證 – (本機電腦)、個人,然後選取憑證。
- 以滑鼠右鍵按一下您用於對 Exchange Online 進行驗證,然後選取所有工作>管理私密金鑰。
- 選取新增、搜尋並選取選取執行非同步處理服務的服務帳戶、允許讀取權限,然後選取確定。
- 重新啟動 Microsoft Dynamics CRM 非同步處理服務和 Microsoft Dynamics CRM 非同步處理服務 (維護) 服務。