配置基于服务器认证的Dynamics 365 Customer Engagement和SharePoint Online集成
我是微软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集成的更多相关文章
- 更改Dynamics 365 Customer Engagement本地部署的高级配置
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 利用Azure虚拟机安装Dynamics 365 Customer Engagement之五:安装SQL Server
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 利用Azure虚拟机安装Dynamics 365 Customer Engagement之二:创建域控虚拟机
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 如何让用户登录Dynamics 365 Customer Engagement后自动登录到Unified Interface App?
微软动态CRM专家罗勇 ,回复324或者20190422可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! Dynamics 365 Customer Engagement ...
- Dynamics 365 Customer Engagement安装FAQ
微软动态CRM专家罗勇 ,回复310或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 本文参考了包括但不限 ...
- Dynamics 365 Customer Engagement V9 活动源功能报错的解决方法
微软动态CRM专家罗勇 ,回复300或者20190120可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 安装好Dynamic ...
- Dynamics 365 Customer Engagement的标准导入不支持并行导入了吗?
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- Dynamics 365 Customer Engagement V9.X新引入的自动编号属性介绍
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
- 利用Azure虚拟机安装Dynamics 365 Customer Engagement之四:组织单位服务安装账号设置
我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...
随机推荐
- python 协程与go协程的区别
进程.线程和协程 进程的定义: 进程,是计算机中已运行程序的实体.程序本身只是指令.数据及其组织形式的描述,进程才是程序的真正运行实例. 线程的定义: 操作系统能够进行运算调度的最小单位.它被包含在进 ...
- FF.PyAdmin 接口服务/后台管理微框架 (Flask+LayUI)
源码(有兴趣的朋友请Star一下) github: https://github.com/fufuok/FF.PyAdmin gitee: https://gitee.com/fufuok/FF.Py ...
- 【实用工具】使用Java封装可执行exe应用全过程
目录 编写java代码 打包 创建exe文件 压缩 总结 本文将使用exe4j将java项目封装为可以发送给他人使用的工具为例,来记录将java项目封装为exe文件的全过程 编写java代码 目标:创 ...
- 制作通用framework的几点注意
一.创建framework,调成静态的framework . 二.匹配bitcode 三.增加-ObjC 在BuildSettting ->Linking->Other Linker Fl ...
- ios 10 更新 新体验
1.使用手机登录开发者网站https://developer.apple.com/download/ 2.下载描述文件 3.安装描述文件,按照提示步骤操作 4.更新ios系统 下面的方法是连接电脑直接 ...
- 洛谷P2569 (BZOJ1855)[SCOI2010]股票交易 【单调队列优化DP】
Description 最近lxhgww又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,lxhgww预测到了未来T天内某只股票的走势,第i天的股票买入价 ...
- csuoj-1900 锋芒毕露
Description 小闪最近迷上了二刀流——不过他耍的其实是剑——新买了一个宝库用来专门存放自己收集的双剑.一对剑有两把,分只能左手用的和只能右手用的,各自有一个攻击力数值.虽然一对剑在小闪刚拿到 ...
- ARTS-S 最难的事情
小朋友不舒服,看了医生也开了药吃了.但还是一直闹,不睡觉,弄的我和我爱人精疲力尽. 现在看来,技术上的难题真不算什么.照顾小朋友才是这个世界上最难的事情.
- CSS修饰文档
定义字体类型 <html> <head> <meta http-equiv="Content-Type" content="text/htm ...
- Rabbitmq-单机安装
Rabbitmq介绍 官网地址:https://www.rabbitmq.com RabbitMQ是一款在全球范围内使用非常广泛的开源消息队列中间件.它轻量级.易部署.并支持多种协议.它基于Erl ...