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 AzurePowerShell コマンドレットを実行するために必要です。
重要
この展開では 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
- Dynamics 365 (on-premises) と Exchange Online 間の認証に使用される、信頼された証明機関によって発行された X509 デジタル証明書。 証明書には、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 セッションを準備します。
次のコマンドレットにより、コンピューターがリモート コマンドを受け取り、 Office 365 モジュールを Windows PowerShell セッションに追加できます。 これらコマンドレットの詳細については、Windows PowerShell Core コマンドレットを参照してください。
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 コマンドを実行するとき、必要な Exchange Online ライセンスの Office 365 グローバル管理者メンバーシップを保持している有効な 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)
Azure Active Directory サービス プリンシパル名 (SPN) を Exchange Onlineで設定します。
* .contoso.com を Microsoft Dynamics 365 Server が配置されているドメイン名に置き換えます。
$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
重要
米国政府環境向けに Government Community Cloud (GCC) High で Exchange Online を使用しているお客様の場合、PowerShell スクリプトの S2SDefaultAuthorizationServerMetadataUrl を https://login.microsoftonline.us/metadata/json/1 に変更する必要があります。
Exchange Online テナント ID の設定
- Windows PowerShell シェルの Azure Active Directory モジュールで、次のコマンドを実行します。
$CRMContextId = (Get-MsolCompanyInformation).ObjectID
$CRMContextId
クリップボードに表示される GUID をコピーします。
以下のコマンドを実行して、組織の S2STenantId を更新します。OrganizationName には組織の一意の名前を、ExchangeOnlineTenantId には前のステップで取得した TenantId を指定します。
$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 電子メール サーバー プロファイルで、以下の情報を指定します。
フィールド | 説明 |
---|---|
Name | プロファイルに分かりやすい名前を指定します。 |
説明 | 電子メール サーバー プロファイルの目標に関する短い説明を入力します。 |
サーバーの種類 | Exchange Online (ハイブリッド) が事前に入力されます。 |
Owner | 電子メール サーバー プロファイルの所有者の名前が事前入力されます。 |
既定のテナント ID を使用 | 上記の PowerShell コマンドを使用して Exchange Online テナント ID を設定する場合 (推奨)、はい を選択してその ID を使用します。 いいえ を設定する場合、Exchange Online テナント ID を手動で指定する必要があります。 |
Exchange Online テナント ID | 上記の PowerShell コマンドを使用して Exchange Online テナント ID を設定する場合 (推奨)、このフィールドで ID が事前に入力されます。 |
サーバーの場所の自動検出 | Exchange Online URL が事前に入力されます。 サーバーの場所の検出に自動検出サービスを使用する場合は、はい を選択します (推奨)。 いいえを設定する場合、電子メール サーバーを手動で指定する必要があります。 |
受信サーバーの位置および送信サーバーの位置 | いいえをサーバーの場所の自動検出で選択する場合、受信サーバーの場所および送信サーバーの場所に URL を入力します。 |
追加設定 | |
次の差出人からの電子メールを処理する | 日時を選択します。 その日時以降に受信した電子メールは、このプロファイルと関連付けられたすべてのメールボックスに対し、サーバー側同期によって処理されます。 現在の日付より前の値をセットする場合、関連するすべての新しいメールボックスに変更が適用され、それより以前に処理された電子メールが取出されます。 |
最小ポーリング間隔 (分単位) | この電子メール サーバー プロファイルと関連するメールボックスのために、最小ポーリング間隔を分単位で入力します。 ポーリング間隔により、新しい電子メール メッセージのためにメールボックスにポーリングする、サーバー側の同期頻度が決定されます。 |
失敗した電子メールを配信不能フォルダーに移動する | 配送不可フォルダーに未配布の電子メールを移動するには、はい を選択します。 Dynamics 365 で電子メール アクティビティとして電子メール メッセージの追跡中にエラーが発生し、このオプションが Yes にセットされている場合、電子メール メッセージは配送不可フォルダーに移動されます。 |
- 保存を選択します。
- 接続テスト を選択して結果を確認します。 問題を診断するには、次のセクションを参照してください。
Exchange Online (ハイブリッド) プロファイル接続のトラブルシューティング
接続テスト を実行して Exchange Online (ハイブリッド) プロファイル接続に問題があった場合には、接続テスト ダイアログ ボックスの情報を使用して接続の診断と修正を行います。
繰り返し発生する問題に関する情報とその他のトラブルシューティング情報については、ブログ: Microsoft Dynamics CRM 2015 でのメールボックスのテストおよび有効化 および サーバー側同期のトラブルシューティングと監視 を参照してください。
既定の電子メールの処理と同期の構成
既定の構成方法としてサーバー側同期を設定します。
- 設定>電子メール アクセス構成>電子メール アクセス構成の設定に移動します。
- 処理と同期のフィールドを次のように設定します。
- サーバー プロファイル: 上記のセクションで作成したプロファイルです。
- 受信電子メール: サーバー側同期または E-mail Router
- 送信電子メール: サーバー側同期または E-mail Router
- 予定、取引先担当者、タスク: サーバー側同期または Email Router
Note
ユーザーがデスクトップ コンピューターで主に Dynamics 365 for Outlook を使用する場合は、Microsoft Dynamics 365 for Outlook が適切な選択でしょう。
[未承認のユーザーとキューの電子メール処理] を既定値 (選択された状態) のままにする場合、下記の「電子メールの承認」の指示に従ってユーザーのメールボックスの電子メールとキューを承認する必要があります。
- OK を選択します。
メールボックスの構成
メールボックスが既定のプロファイルを使用するように設定するには、まずサーバー プロファイルと電子メール、予定、取引先担当者、タスクの配信方法を設定する必要があります。
メールボックスの配信方法を設定するには、管理者権限に加えて、メールボックス エンティティの読み取りと書き込みの特権を所有している必要があります。
次のいずれかの方法を選択してください。
メールボックスを編集してプロファイルと配信方法を設定する
- 設定>電子メール アクセス構成>メールボックスに移動します。
- アクティブなメールボックス の選択
- 構成するメールボックスを選択して 編集 を選択します。
- 複数のレコードの変更 フォームの 同期方法 で、サーバー プロファイル を先に作成した Exchange Server プロファイルに設定します。
- 受信 および 送信メール を サーバー側同期 もしくは Email Router に設定します。
- 予定、取引先担当者、そして タスク を サーバー側同期 に設定します。
Note
ユーザーがデスクトップ コンピューターで主に Dynamics 365 for Outlook を使用する場合は、Microsoft Dynamics 365 for Outlook が適切な選択でしょう。
- 変更を選択します。
電子メールの承認
メールボックスで電子メールを処理できるようにするには、各ユーザーのメールボックスまたはキューを承認する必要があります。
- 設定>電子メール アクセス構成>メールボックスに移動します。
- アクティブなメールボックス の選択
- 承認するメールボックスを選択して、その他のコマンド (…)>電子メールの承認 を選択します。
- OK を選びます。
メールボックスの構成をテスト
- 設定>電子メール アクセス構成>メールボックスに移動します。
- アクティブなメールボックス の選択
- テストするメールボックスを選択し、メールボックスのテストと有効化 を選択します。
これにより、選択されたメールボックスの受信および送信電子メール アクセス構成がテストされ、電子メール処理に使用するメールボックスを有効にします。 メールボックスでエラーが発生した場合、警告はメールボックスとプロファイルの所有者の警告ウォールに表示されます。 エラーの種類によって、Microsoft Dynamics 365 は、後にもう一度電子メールの処理を試すか、電子メールを処理するメールボックスを無効にします。
電子メール アクセス構成テストの結果が、メールボックス レコードの受信電子メールの状態、送信電子メールの状態、および予定、取引先担当者、タスクの状態のフィールドに表示されます。 メールボックスのアクセス構成が正常に完了したときも、警告が生成されます。 この警告は、メールボックス所有者に表示されます。
チップ
メールボックスの連絡先、予定、タスクを同期できない場合、Exchange が別の組織と同期するように設定されている場合でも、この Dynamics 365 の組織からのみ Exchange とアイテムを同期するチェック ボックスを選択することができます。 このチェック ボックスに関する詳細を参照してください。
電子メール サーバー プロファイルに関連付けられているすべてのメールボックスの電子メール アクセス構成のテスト
- 設定>電子メール アクセス構成>電子メール サーバー プロファイルへ移動します。
- 作成したプロファイルを選択して、メールボックスのテストと有効化 を選択します。
電子メール アクセス構成をテストする際、非同期ジョブはバックグラウンドで実行されます。 このテストの完了まで数分かかる場合があります。 Microsoft Dynamics 365 は Exchange Server プロファイルに関連付けられているすべてのメールボックスの電子メール構成をテストします。 予定、タスク、および取引先担当者を同期するサーバー側の同期で構成されるメールボックスに対して、適切に構成されているかがチェックされます。
チップ
メールボックスの連絡先、予定、タスクを同期できない場合、Exchange が別の組織と同期するように設定されている場合でも、この Dynamics 365 の組織からのみ Exchange とアイテムを同期するチェック ボックスを選択することができます。 このチェック ボックスに関する詳細を参照してください。
非同期プロセス サービスのサービス アカウントに証明書への読み取りアクセスを許可する
この手順では、非同期処理サービスのサービス アカウントに、証明書のプライベート キーの読み取りアクセスを許可する方法を説明します。
- 証明書が存在するコンピューターで、検索ボックスに「mmc.exe」と入力し、Enter キーを押します。
- Microsoft Management Console で、ファイル を選択してから スナップインを追加/削除する を選択します。
- 証明書、追加、コンピューター アカウント、次へ、ローカル コンピューター、完了 の順にクリックします。
- OK を選択して、スナップインを追加/削除する ダイアログ ボックスを閉じます。
- 証明書 – (ローカル コンピューター)、個人用 の順に展開し、証明書 をクリックします。
- Exchange Online で認証に使用している証明書を右クリックして、すべてのタスク>秘密キーの管理 の順にクリックします。
- 追加 を選択し、非同期処理サービスを実行するサービス アカウントを検索して選択してから 読み取りを許可 権限を選択し、OK をクリックします。
- Microsoft Dynamics CRM 非同期処理サービス と Microsoft Dynamics CRM 非同期処理サービス (メンテナンス) を再起動します。