次の方法で共有


Customer Engagement (on-premises) と SharePoint オンプレミスでのサーバーベース認証の構成

Note

統一インターフェイスのみモードを有効にしている場合、この記事の手順を使用する前に、次のことを行います:

  1. 選択 設定 (歯車アイコン。) ナビゲーション バーにあります。
  2. 詳細設定 を選択します。

    詳細設定。

このトピックでは、Dynamics 365 Customer Engagement (on-premises) と Microsoft SharePoint (設置型) との間でサーバーベース統合を構成する方法について説明します。

Customer Engagement (on-premises) および SharePoint でのサーバーベース統合の設定

指定された順序で手順を実行して、Customer Engagement (on-premises) を Microsoft SharePoint Server On-Premises に対して設定します。

重要

  • PowerShell コマンドは、管理者モードで実行する必要があります。 参照: PowerShell を起動するにはどうすればよいですか?
  • タスクが完了しない場合、たとえば PowerShell コマンドがエラーメッセージを返した場合は、次のコマンド、作業、またはステップに進む前に、問題を解決しておく必要があります。
  • サーバー ベースの SharePoint統合を有効にすると、以前のクライアントベースの認証方式に戻ることができなくなります。 したがって、サーバーベースの SharePoint 統合に Customer Engagement (on-premises) 組織を構成した後は、Microsoft Dynamics CRM リスト コンポーネントを使用することはできません。

前提条件の確認

サーバーベース統合用に Customer Engagement (on-premises) と SharePoint (設置型) を構成する前に、次のアクセス許可および前提条件が必要となります。

必要なアクセス許可

Customer Engagement (on-premises)

  • システム管理者のセキュリティ ロール - これは Customer Engagement (on-premises) でサーバーベースの SharePoint 統合ウィザードの有効化を実行するために必要です。

  • 評価目的で自己署名証明書を使用する場合は、Dynamics 365 Server が実行されているコンピューターのローカル管理者グループのメンバーシップが必要です。

SharePoint (設置型)

  • ファーム管理者グループのメンバーシップ - これは、SharePoint サーバー上で Windows PowerShell のほとんどのコマンドを実行するときに必要となります。

SharePoint の前提条件

  • 次の SharePoint バージョンのいずれか:

    • Sharepoint サービス サブスクリプション エディション。

    • SharePoint 2019 On-Premises.

      Dynamics 365 Customer Engagement (on-premises) と Microsoft SharePoint 2019 設置型間のサーバー ベースの統合には Microsoft Dynamics 365 Server、v9.0 (設置型) 更新 0.13、またはそれ以降のバージョンが必要です。

    • SharePoint 2016 On-Premises.

    • Microsoft SharePoint 2013 (設置型) の Service Pack 1 (SP1) または次の更新を含むそれ以降のバージョン。

      • SharePoint 2013 製品ファミリの 2019 年 4 月の累積的な更新プログラム (CU) をインストールする。 この 2019 年 4 月の CU には、SP1 以降にリリースされた SharePoint 2013 更新 (すべての SharePoint 2013 セキュリティ機能の更新を含む) が含まれます。 2019 年 4 月の CU には SP1 は含まれていません。 2019 年 4 月の CU をインストールする前に、SP1 をインストールする必要があります。

        • KB4464512 – SharePoint Foundation 2013 2019 年 4 月 CU

        • KB4464514 – SharePoint サーバー 2013 2019 年 4 月 CU

        • KB4464513 – プロジェクト サーバー 2013 2019 年 4 月 CU

  • SharePoint の構成

    • SharePoint は 1 つのファームの展開のみに構成する必要があります。

    • 既定のクレームベース認証のマッピングを使用するには、SharePoint サーバーと Dynamics 365 Server がある Active Directory ドメインが同じであるか、または SharePoint サーバーがあるドメインが Dynamics 365 Server があるドメインを信頼している必要があります。 詳細: クレームベース認証マッピングについて

    • SharePoint Web サイトは、 TLS/SSL (HTTPS) を使用するように構成する必要があり、証明書がパブリック ルート証明機関によって発行される必要があります。 詳細: SharePoint: セキュリティで保護されたチャネル SSL 証明書について

    • App Management Service アプリケーションのプロキシを作成および開始する必要があります。 詳細: SharePoint 用にアプリの環境を構成する

    • User Profile Service アプリケーションを構成および開始する必要があります。 詳細: SharePoint Server 2013 での User Profile サービスアプリケーションの作成、編集、または削除

    • ドキュメント共有については、 SharePoint 検索サービスを有効にする必要があります。 詳細: SharePoint Server での検索サービス アプリケーションの作成と構成

    • Microsoft Customer Engagement (on-premises) モバイル アプリを使用したドキュメント管理機能には、設置型 SharePoint サーバーがインターネット経由で使用可能である必要があります。

    • Customer Engagement (on-premises) からの SharePoint ドキュメント ライブラリの作成を機能させるために、次のアクセス許可および構成が必要になります。

      • Customer Engagement (on-premises) ユーザー Active Directory のアカウントは、ドキュメントが保存される SharePoint サイト コレクションのサイト メンバー グループのメンバーである必要があります。

      • 既定では、クレームベース認証のマッピングでは、Customer Engagement (on-premises) ユーザーの SharePoint 電子メール アドレスとユーザーの SharePoint (設置型) の勤務先の電子メール アドレスがマッピングに使用されます。 このマッピングを使用するとき、ユーザーの電子メール アドレスは、2 つのシステム間で一致する必要があります。 詳細: SharePoint 電子メール アドレスを使用したユーザー クレーム マッピング。

その他の前提条件と制限事項

  • Dynamics 365 Server と SharePoint サーバーとの間で使用されるサーバーベース認証に使用される X509 デジタル証明書。 証明書キーには少なくとも、2048 ビットの暗号化を指定する必要があります。 ほとんどの場合、信頼された証明機関によってこの証明書が発行される必要がありますが、評価用では自己署名証明書を使用することができます。

  • CRMAppPool アプリケーション プールの識別には、Dynamics 365 Server と SharePoint サーバーでのサーバーベース認証に使用される x509 証明書への読み取りアクセス権を持っている必要があります。 証明書 MMC スナップインを使用してこのアクセスを許可できます。

  • Microsoft SharePoint 2013 を使用する場合、各 SharePoint ファームで 1 つのみの Customer Engagement (on-premises) 組織をサーバーベース統合用に構成できます。 ただし、単一の SharePoint 2016 サーバー ファームに、複数の Customer Engagement (on-premises) 組織を接続することができます。

サーバーベース統合用に Dynamics 365 Server を準備する

CertificateReconfiguration.ps1 は、ローカル証明書ストアに証明書をインストールし、その証明書に対して指定された Microsoft Dynamics 365 非同期処理サービス ID アクセスを許可し、証明書を使用するために Dynamics 365 Server を更新する Windows PowerShell スクリプトです。

ローカル証明書ストアと Customer Engagement (on-premises) 構成データベースへのサーバー間証明書の追加

  1. Dynamics 365 Server フル サーバー ロールがインストールされているすべてのサーバー上の PowerShell コマンド セッションを開きます。

重要

Webアプリケーション サーバー ロールを実行しているすべてのサーバーでここに記載されているコマンドを実行する必要があります。

  1. 場所を <にドライブ>アドレスに変更:\プログラムファイル\Microsoft Dynamics CRM\ツール フォルダーに変更します。

  2. ここで説明されるように CertificateReconfiguration.ps1 Windows PowerShell スクリプトを実行します:

    • certificateFilepath\Personalcertfile.pfx . 個人情報交換ファイル (.pfx) の完全なパスを指定する必須のパラメーターです。 詳細: デジタル証明書を使用して作業する

    • passwordpersonal_certfile_password. プライベート証明書のパスワードを指定する必須のパラメーターです。

    • certificateType S2STokenIssuer: 証明書の種類を指定する必須のパラメーターです。 Customer Engagement (on-premises) と SharePoint サーバーベース統合の場合、S2STokenIssuer のみがサポートされています。

    • serviceAccountDomainName\UserName’ または ‘Network Service’.

    serviceAccount 'contoso\\CRMWebAppServer' or ‘Network Service’. Required parameter that specifies the identity for the Web Application Server role. The identity is either a domain user account, such as *contoso\\CRMWebAppServer*, or Network Service. The identity will be granted permission to the certificate.
    
    • updateCrm: 証明書の情報を Microsoft Customer Engagement (on-premises) 構成データベースに追加します。

      重要

      複数の Web アプリケーション サーバーまたは非同期サービスのロールが展開されている場合でも、updateCrm パラメーターを一度指定してコマンドを実行するだけで済みます。

    • storeFindType FindBySubjectDistinguishedName. 証明書ストアの種類を指定します。 既定では、この値は FindBySubjectDistinguishedName であり、スクリプトを実行する場合に推奨されます。

    重要

    updateCrm と StoreFindType のパラメーターはコマンドを実行する上でオプションとなりますが、証明書の情報を証明書データベースに追加するために、これらのパラメーターはサーバーベースの SharePoint 統合に対して必要です。

    .\CertificateReconfiguration.ps1 -certificateFile c:\Personalcertfile.pfx -password personal_certfile_password -updateCrm -certificateType S2STokenIssuer -serviceAccount Domain\UserName -storeFindType FindBySubjectDistinguishedName
    

サーバーベース統合のための SharePoint ファームの準備

Dynamics 365 領域 ID の取得

  1. サーバーベースの SharePoint 統合 ウィザードの有効化を開始します。 設定>ドキュメント管理に移動します。

  2. 次へ を選択して、設置型、その後 次へ を選択します。

  3. ID は、ページの Dynamics 365 レルム ID の横に表示されます。

    チップ

    Dynamics 365 領域 ID をセキュリティ保護されたネットワーク共有またはクラウドベースのストレージ上のテキスト ファイルに保存します。 その後、サーバーベース認証有効化 SharePoint 統合ウィザードを実行する場所から簡単に取得できます。

SharePoint 設置型サーバー上の SharePoint 管理シェル内で、これらの PowerShell コマンドを指定された順序で実行します。

Dynamics 365 Server 認証用 SharePoint サーバーの準備

  1. SharePoint 管理シェルでない PowerShell 管理シェルを使用している場合、次のコマンドを使用して SharePoint モジュールを登録する必要があります。

    Add-PSSnapin Microsoft.SharePoint.PowerShell
    

    SharePoint ファームのセキュリティ トークン サービスを変更する PowerShell セッションを有効にします。

    $c = Get-SPSecurityTokenServiceConfig
    $c.AllowMetadataOverHttp = $true
    $c.AllowOAuthOverHttp= $true
    $c.Update()
    
  2. 信頼された セキュリティ トークン サービス オブジェクトを作成します。ここで、OrganizationName は Customer Engagement (on-premises) 組織の一意の名前であり、CrmServer は Customer Engagement (on-premises) Web アプリケーション サーバーの役割がインストールされている IIS Web サーバーの名前です。さらに -Name “crm” はセキュリティ トークン サーバー (STS)を名付けて使用されます。

    重要

    • 複数の Customer Engagement (on-premises) 組織を単一の Microsoft SharePoint 2013 サーバー ファームに接続することはサポートされません。 ただし、単一の SharePoint 2016 サーバー ファームに、複数の Customer Engagement (on-premises) 組織を接続することができます。

    • New-SPTrustedSecurityTokenIssuer PowerShell コマンドを実行するとき、次の例のように、Customer Engagement (on-premises) Web サイトに HTTPS のみまたは HTTPS と HTTP の両方のバインディングがある場合は、Customer Engagement (on-premises) メタデータ エンドポイント 用  HTTPS を指定する必要があります。

    New-SPTrustedSecurityTokenIssuer –Name "crm" –IsTrustBroker:$false –MetadataEndpoint https://CrmServer/XrmServices/2015/metadataendpoint.svc/json?orgName=OrganizationName
    
  3. Customer Engagement (on-premises) を SharePoint サイト コレクションに登録します。

    次のコマンドを実行するには、2 つのパラメーターを指定する必要があります。

    • SharePoint (設置型) サイト コレクション URL。 ここの例では、サイト コレクションURLに https://sharepoint.contoso.com/sites/crm/ が使用されています。

    • CrmRealmId は、SharePoint でドキュメント管理に使用する Customer Engagement (on-premises) 組織の ID です。 詳細: Dynamics 365 領域 IDを取得

    重要

    これらのコマンドを実行するには、SharePoint App Management Service アプリケーションのプロキシが存在し、実行されている必要があります。 サービスの開始と構成の方法の詳細については、SharePoint のためにアプリの環境を構成する でサブスクリプション設定の構成とアプリ管理サービス アプリケーションのトピックをご覧ください。

    $CrmRealmId = "CRMRealmId"
    $Identifier  = "00000007-0000-0000-c000-000000000000@" + $CrmRealmId
    $site = Get-SPSite "https://sharepoint.contoso.com/sites/crm/"
    Register-SPAppPrincipal -site $site.RootWeb -NameIdentifier $Identifier -DisplayName "crm"
    
  4. Customer Engagement (on-premises) のアクセスを SharePoint サイトに付与します。

    Note

    以下の例では、–Scope sitecollection パラメーターを使用して、指定した SharePoint のサイト コレクションに対するアクセス許可が Customer Engagement (on-premises) に付与されます。 スコープ パラメーターは、次のオプションを受入れます。 SharePoint 構成に最適なスコープを使用します:

    • site. 選択した SharePoint Web サイトにのみ Customer Engagement (on-premises) のアクセス許可を付与します。 名前付きサービス拠点の下のサブサイトにはアクセス許可が付与されません。

    • sitecollection. 指定した SharePoint サイト コレクション内のすべての Web サイトおよびサブサイトに対し、Customer Engagement (on-premises) のアクセス許可を付与します。

    • sitesubscription. すべてのサイト コレクション、Web サイト、およびサブサイトを含む、SharePoint ファーム内のすべての Web サイトに対し、Customer Engagement (on-premises) のアクセス許可を付与します。

    $app = Get-SPAppPrincipal -NameIdentifier $Identifier -Site $site.Rootweb
    Set-SPAppPrincipalPermission -AppPrincipal $app -Site $site.Rootweb -Scope "sitecollection" -Right "FullControl" -EnableAppOnlyPolicy
    #"Set up claims-based authentication mapping"
    New-SPClaimTypeMapping -IncomingClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
    

サーバーベースの SharePoint 統合ウィザード有効化の実行

  1. Customer Engagement (on-premises) で、設定>ドキュメント管理 に移動します。

  2. ドキュメント管理領域で、サーバーベースの SharePoint 統合の有効化 を選択します。

  3. 情報を確認し、 次へ を選択します。

  4. SharePoint サイトの場合、設置型 を選択し、次へ を選択します。

  5. サイトの準備 段階で、以下の情報を入力します:

    •  https://sharepoint.contoso.com/sites/crm などの、SharePoint On-Premises サイト コレクション URL。 サイトを SSL 用に構成する必要があります。

    • SharePoint 領域 ID。 SharePoint 領域 ID の取得

  6. 次へを選択します。

  7. サイトの検証セクションが表示されます。 すべてのサイトが有効である場合、有効化 をクリックします。 1 つまたは複数のサイトが無効の場合、Dynamics 365 Server と設置型 SharePoint Server のサーバーベース統合に関するトラブルシューティングを参照してください。

ドキュメント管理に含めるエンティティの選択

既定では、取引先企業、記事、潜在顧客、製品、見積もり、営業資料のエンティティが含まれます。 ドキュメント管理に使用できるエンティティを、SharePoint の Customer Engagement アプリの ドキュメント管理設定で追加や削除できます。 設定>ドキュメント管理に移動します。 詳細: 特定エンティティの SharePoint ドキュメント管理の有効化

OneDrive for Business 統合の追加

Customer Engagement (on-premises) と SharePoint 設置型サーバーベース統合の構成が完了したら、OneDrive for Business を統合することもできます。 Customer Engagement (on-premises) OneDrive for Business 統合を使用すると、Customer Engagement (on-premises) ユーザーは OneDrive for Business を使ってプライベート ドキュメントを作成、管理できます。 システム管理者が OneDrive for Business を有効にすると、Customer Engagement (on-premises) 内からこれらのドキュメントにアクセスできます。

OneDrive for Business の有効化

SharePoint Server On-Premises が実行されている Windows Server で、SharePoint 管理シェルを開き、次のコマンドを実行します。

Add-Pssnapin *
# Access WellKnown App principal
[Microsoft.SharePoint.Administration.SPWebService]::ContentService.WellKnownAppPrincipals
    
# Create WellKnown App principal
$ClientId = "00000007-0000-0000-c000-000000000000"
$PermissionXml = "<AppPermissionRequests AllowAppOnlyPolicy=""true""><AppPermissionRequest Scope=""https://sharepoint/content/tenant"" Right=""FullControl"" /><AppPermissionRequest Scope=""https://sharepoint/social/tenant"" Right=""Read"" /><AppPermissionRequest Scope=""https://sharepoint/search"" Right=""QueryAsUserIgnoreAppPrincipal"" /></AppPermissionRequests>"
    
$wellKnownApp= New-Object -TypeName "Microsoft.SharePoint.Administration.SPWellKnownAppPrincipal" -ArgumentList ($ClientId, $PermissionXml)
     
$wellKnownApp.Update()

Customer Engagement (on-premises) から SharePoint Server On-Premises サーバーベースの統合に関するトラブルシューティング

サーバーベースの SharePoint 統合ウィザードの有効化と SharePoint 監視ログの表示に関するトラブルシューティングを行う方法についての詳細は、サーバーベース認証のトラブルシューティング

既知の問題

SharePoint トラブルシューティングでのドキュメント管理と既知の問題については、サーバーベース認証のトラブルシューティング を参照してください。

クレームベース認証のマッピングについて

クレームベース認証マッピングを使用する場合、SharePoint サーバーと Dynamics 365 Server が配置されている Active Directory ドメインは同じである必要があります。 異なる Active Directory フォレストまたはドメインにあるサーバーはサポートされていません。 同様に、Dynamics 365 Server または SharePoint Server の外部ドメインにいるユーザーは、ドキュメントにアクセスできません。

既定では、Customer Engagement (on-premises) と設置型 SharePoint 間のサーバーベース認証ではユーザーのセキュリティ識別子 (SID) を使用して各ユーザーを認証します。 ユーザーの電子メール アドレスなど、カスタムのクレームベース認証のマッピングを使用する場合は、サーバー ベースの SharePoint 統合に対するユーザー定義要求のマッピングの定義 を参照してください

SharePoint 電子メール アドレスを使用したユーザー クレーム マッピングの構成

  1. ユーザー フォームをカスタマイズするには、フォーム エディターを開きます。 それには、設定>セキュリティ>ユーザー へと移動してから、目的のユーザー レコードを開きます。

  2. ツールバーで、 を選択してから フォーム エディター を選択します。

    ユーザーフォーム用エディターを開く。

  3. フィールド エクスプローラー ウィンドウの SharePoint 電子メール アドレス フィールド上で、ユーザー フォームの ユーザー情報 フィールド上でそれをドラッグ アンド ドロップします。

    ユーザーフォームで SharePoint のメール アドレス フィールドを追加します。

  4. フォーム エディター ツールバーで 保存 を選択し、公開 を選択します。

  5. フォーム エディターを閉じ、Web ブラウザー タブを更新してユーザー レコードの新たに追加されたフィールドを表示します。

  6. ユーザー レコードの SharePoint 電子メール アドレス フィールドで、ユーザーの電子メール アドレスを SharePoint に表示されているのと同じように正確に入力します。

  7. 保存を選択します。

  8. ドキュメント管理が必要とするすべてのユーザーに対して前の二つの手順を繰り返します。

デジタル証明書の使用

次の手順では、個人情報交換ファイル (.pfx) を作成します。

  1. サーバー間認証に使用する証明書にアクセスできるコンピューターで、開始 を選択して、実行 を選択し、MMC と入力して [Enter] を押します。

  2. ファイル を選択してから、スナップインの追加と削除 を選択します。

  3. [利用できるスナップイン] 一覧で、証明書追加コンピューター アカウント次へ完了 の順にクリックしてローカル コンピューターを選択し、OK をクリックします。

  4. 証明書個人用 の順に展開し、証明書 をクリックします。

  5. 個人証明書ファイルの作成に使用したい証明書を右クリックして、すべてのタスク をポイントし、エクスポート を選択します。

  6. 次へはい の順にクリックして秘密キーをエクスポートし、次のオプションがチェックされていることを確認してから、次へ をクリックします。

    • 証明のパスにある証明書を可能であればすべて含む

    • すべての拡張プロパティをエクスポートする

  7. 参照 をクリックして .pfx ファイルの場所とファイル名を入力し、保存 をクリックします。

  8. 次へ を選択し、そして 閉じる を選択します。

SharePoint 領域 ID の取得

https://sharepoint.contoso.com/sites/crm/ が SharePoint サイト コレクションの URL となっている SharePoint 管理シェルで次の PowerShell コマンドを実行します。

Get-SPAuthenticationRealm -ServiceContext https://sharepoint.contoso.com/sites/crm/

また、SharePoint サイト コレクションのサイト アプリの権限設定で SharePoint 領域 ID を参照できます。

  1. Customer Engagement (on-premises) でのドキュメント管理に使用する SharePoint サイト コレクションにサインインします。

  2. サイトの設定>サイト アプリの権限 に移動します。

  3. 領域 ID が アプリ識別子 の下、@ 記号の右側に表示されます。 それをクリップボードにコピーします。 サーバー ベースの SharePoint 統合の有効化ウィザードで、GUID だけをコピーして貼り付けます。 @ の左側の識別子の部分は貼り付けないでください。