我是微软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. Pycharm常见快捷键

    Ctrl+/注释(取消注释)选择的行 Shift + Enter开始新行 Ctrl + Enter智能换行 TAB Shift+TAB缩进/取消缩进所选择的行 Ctrl + Alt + I自动缩进行 ...

  2. Hive Hadoop 解析 orc 文件

    解析 orc 格式 为 json 格式: ./hive --orcfiledump -d <hdfs-location-of-orc-file> 把解析的 json 写入 到文件 ./hi ...

  3. luogu P2740 [USACO4.2]草地排水Drainage Ditches |网络流

    题目背景 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没 ...

  4. luogu P1850 换教室

    题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有 2n 节课程安排在 n 个时间段上.在第 i (1 ≤ i ≤ n)个时间段上,两节内容 ...

  5. docker等文档

    docker strapi koa express

  6. java之JVM内存模型

    简而言之: 基础数据类型,值是保存在栈中: 引用数据类型,值保存在堆中,栈中保存的是引用数据类型在堆中的地址: 方法区:保存所有的class和static变量:

  7. 基于STM32 HID 游戏手柄开发调试

    stm32自带usb接口,非常适合做hid设备,免驱开发也很方便. 使用stm32通过正确的报告描述符配置后,插入usb,电脑正确识别如下(设备和打印机) 可以通过右键,游戏控制器设置 通过选择属性 ...

  8. Callable接口实现线程

    public class CallableDemo { public static void main(String[] args) throws Exception, ExecutionExcept ...

  9. vue click.stop阻止点击事件继续传播

    <div id="app"> <div @click="dodo"> <button @:click="doThis&q ...

  10. django----聚合查询 分组 F与Q查询 字段 及其 参数

    目录 一.orm补充查询 聚合查询 1-1 分组查询 1-2 F与Q查询 1-3 二. 字段及其参数 常用字段 AutoField IntegerField CharField DateField D ...