我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的微软最有价值专家(Microsoft MVP),欢迎关注我的微信公众号 MSFTDynamics365erLuoYong ,回复384或者20191215可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!

本文主要根据官方文档 Configure server-based authentication with Customer Engagement (on-premises) and SharePoint Online ,做了一些补充和说明,方便阅读者配置成功。

官方文档首先讲了 Permissions required ,可以看到需要一个具有System Administrator (中文版的话则是 系统管理员) 角色的Dynamics 365 Customer Engagement账号,我这里用的是 luoyong\crmadmin (或者说是 crmadmin@luoyong.me),还需要一个你要连接的SharePoint Online所在订阅的具有 Global Administrator 的账号,我这里用的是 admin@CRM558602.onmicrosoft.com 。还需要的工具就是要在Dynamics 365 Customer Engagement上安装 Microsoft Dynamics CRM Hybrid Connector 组件。这个组件是免费的,记得安装,安装时候的地区不要选China,选香港特别行政区或者其他地方。

还需要如下两个工具来辅助,请安装到Dynamics 365部署服务所在服务器:

Microsoft Online Services Sign-In Assistant for IT Professionals Beta

Azure Active Directory Module for Windows PowerShell (64-bit version)

开始第一个配置步骤,也就是官方配置手册中的 Prepare the certificate 步骤,到Dynamics 365部署服务所在服务器上执行如下的PowerShell命令 (我这里更改为了自己的命令):

$CertificateScriptWithCommand = ".\CertificateReconfiguration.ps1 -certificateFile c:\Personalcertfile.pfx -password yourpassword -updateCrm -certificateType S2STokenIssuer -serviceAccount luoyong\crmsvc -storeFindType FindBySubjectDistinguishedName"

Invoke-Expression -command $CertificateScriptWithCommand

你会发现执行报错,如下图:

怎么解决?需要切换到Dynamics 365 Customer Engagement的安装目录,例如使用 cd "C:\Program Files\Dynamics 365\Tools" 切换后就可以了:

然后以管理员身份打开PowerShell执行如下命令:

Import-Module MSOnline -force
Import-Module MSOnlineExt -force

然后执行如下命令连接到Office 365:

$msolcred = get-credential
connect-msolservice -credential $msolcred

然后再顺次执行如下命令:,当然c:\Personalcertfile.pfx 和 c:\Personalcertfile.cer 两个文件要存在,密码要正确。

$STSCertificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 -ArgumentList c:\Personalcertfile.pfx, F2HrCf3H
$PFXCertificateBin = $STSCertificate.GetRawCertData()
$Certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
$Certificate.Import(“c:\Personalcertfile.cer”)
$CERCertificateBin = $Certificate.GetRawCertData()
$CredentialValue = [System.Convert]::ToBase64String($CERCertificateBin)

下面代码中的 $RootDomain 的值请换成自己的。

$RootDomain = “CRM558602.onmicrosoft.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
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

剩下的就是Dynamics 365 Customer Engagement中的配置了,当然再配置之前现在SharePoint Online中新建一个站点,比如我这里是新建了 https://crm558602.sharepoint.com/sites/D365Demo 这个站点,通过如下PowerShell命令获取 tenant ID

$CRMContextId = (Get-MsolCompanyInformation).ObjectID
$CRMContextId

以具有系统管理员的角色登录到Dynamics 365 Customer Engagement,导航到 【设置】>【文档管理】,点击 启用基于服务器的 SharePoint 集成 ,对于 SharePoint 网站,选择联机,然后选择下一步。在“准备网站”阶段,输入以下信息。输入 SharePoint Online 网站集 URL,我使用的是 https://crm558602.sharepoint.com/sites/D365Demo ,输入租户 ID,我这里使用的是前面命令获取的 e44473fd-1587-4556-a3ce-1d1d6280b241 。如果配置的错误是 Failed to connect to SharePointSite 的话,根据我的文章 Dynamics 365 启用跟踪及读取跟踪文件工具 查看日志,若日志中说明是有类似下面的错误导致的:

Crm Exception: Message: At least 1 Claim must not be NULL, current claims are : smtp= , ErrorCode: -2147220970

请参考 Mehmet Ozdemir 的文章CRM 2016 On-Premise to SharePoint Online Gotcha’s ,简单说就是为用户配置一个Office 365邮箱,例如,我的主要电子邮件配置为 admin@CRM558602.onmicrosoft.com :

这是验证通过的截图:

这是配置完成的截图:

点击上图中的【文档管理设置向导】连接,我的SharePoint站点设置如下:

完成后我上传一个文档看看:

上传成功后点击 【打开位置】按钮

的确在SharePoint Online中可以看到这个文档,URL是 https://crm558602.sharepoint.com/sites/D365Demo/account/Forms/AllItems.aspx?RootFolder=%2Fsites%2FD365Demo%2Faccount%2FA%2D%20Datum%20%E5%85%AC%E5%8F%B8%20%28%E7%A4%BA%E4%BE%8B%29%2Fincident%2F%E6%B5%8B%E8%AF%95%E6%A1%88%E4%BE%8B%5F4F76365F5A1BEA11A865000D3A6F652B&FolderCTID=0x01200007D8B02046624842A9980305B2591CA9 。

配置基于服务器认证的Dynamics 365 Customer Engagement和SharePoint Online集成的更多相关文章

  1. 更改Dynamics 365 Customer Engagement本地部署的高级配置

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  2. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之五:安装SQL Server

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  3. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之二:创建域控虚拟机

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  4. 如何让用户登录Dynamics 365 Customer Engagement后自动登录到Unified Interface App?

    微软动态CRM专家罗勇 ,回复324或者20190422可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...

  5. Dynamics 365 Customer Engagement安装FAQ

    微软动态CRM专家罗勇 ,回复310或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 本文参考了包括但不限 ...

  6. Dynamics 365 Customer Engagement V9 活动源功能报错的解决方法

    微软动态CRM专家罗勇 ,回复300或者20190120可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 安装好Dynamic ...

  7. Dynamics 365 Customer Engagement的标准导入不支持并行导入了吗?

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  8. Dynamics 365 Customer Engagement V9.X新引入的自动编号属性介绍

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  9. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之四:组织单位服务安装账号设置

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

随机推荐

  1. Chrome DevTools开发者工具调试

    1-1 Chrome DevTools 功能简介 (九大功能面板) (1)Elements元素面板 检查和调整页面,调试DOM,调试CSS (2)Network网络面板 调试请求,了解页面静态资源分布 ...

  2. 移动开发在路上-- IOS移动开发 五 网络请求封装

    接着上次的讲,这次我们讲 网络请求的封装  打开创建的项目,让我们一起来继续完成他, 上次我们说到GET请求地址的拼接: 我们接着上次的继续完善: 下边我们要定义的是 block //定义block ...

  3. C#语言和SQL Server数据库技术_前四章错题

      1.在C#中,如果让某个方法只能被它所在的程序集内的其他方法访问,可使用(C)修饰这个方法. (选择一项) A:private B:protected C:internal D:以上都不对 2.下 ...

  4. spring security 权限安全认证框架-入门(一)

    spring security 概述: Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架.它是保护基于spring的应用程序的实际标准. Spring Security ...

  5. Django 2.0.7 使用小知识

    Django 2.0.3 使用小知识 运行环境: Python 3.6.4 Django 2.0.7 Django Admin中model显示为中文 定义model时,定义一个Meta对象,设置需要显 ...

  6. 初步了解JVM第一篇

    大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 废话不多说,直接带大家来初步认识一下JVM. 什么是JVM? ...

  7. Cisco packet tracer 的手动添加模块

    在PacketTracer 里面,路由器都是基本配置,这和真实设备是相同的 基本配置里面2620只有一个以太网口: 而2621和2811在背板上有两个以太网接口 所以,你在show run里面可以看到 ...

  8. hdu 5532 Almost Sorted Array (水题)

    Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Ot ...

  9. django基础之day09,Forms组件在程序中做了哪些事? 校验数据、渲染标签、展示信息

    ******************************* Forms组件 *************************************************** Forms组件在 ...

  10. ClassNotFoundException------IDEA下的一种原因

    由于直接复制文件而未经过IDE造成次异常,需要修改程序入口: