配置基于服务器认证的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方面 ...
随机推荐
- Chrome DevTools开发者工具调试
1-1 Chrome DevTools 功能简介 (九大功能面板) (1)Elements元素面板 检查和调整页面,调试DOM,调试CSS (2)Network网络面板 调试请求,了解页面静态资源分布 ...
- 移动开发在路上-- IOS移动开发 五 网络请求封装
接着上次的讲,这次我们讲 网络请求的封装 打开创建的项目,让我们一起来继续完成他, 上次我们说到GET请求地址的拼接: 我们接着上次的继续完善: 下边我们要定义的是 block //定义block ...
- C#语言和SQL Server数据库技术_前四章错题
1.在C#中,如果让某个方法只能被它所在的程序集内的其他方法访问,可使用(C)修饰这个方法. (选择一项) A:private B:protected C:internal D:以上都不对 2.下 ...
- spring security 权限安全认证框架-入门(一)
spring security 概述: Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架.它是保护基于spring的应用程序的实际标准. Spring Security ...
- Django 2.0.7 使用小知识
Django 2.0.3 使用小知识 运行环境: Python 3.6.4 Django 2.0.7 Django Admin中model显示为中文 定义model时,定义一个Meta对象,设置需要显 ...
- 初步了解JVM第一篇
大家都知道,Java中JVM的重要性,学习了JVM你对Java的运行机制.编译过程和如何对Java程序进行调优相信都会有一个很好的认知. 废话不多说,直接带大家来初步认识一下JVM. 什么是JVM? ...
- Cisco packet tracer 的手动添加模块
在PacketTracer 里面,路由器都是基本配置,这和真实设备是相同的 基本配置里面2620只有一个以太网口: 而2621和2811在背板上有两个以太网接口 所以,你在show run里面可以看到 ...
- hdu 5532 Almost Sorted Array (水题)
Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Ot ...
- django基础之day09,Forms组件在程序中做了哪些事? 校验数据、渲染标签、展示信息
******************************* Forms组件 *************************************************** Forms组件在 ...
- ClassNotFoundException------IDEA下的一种原因
由于直接复制文件而未经过IDE造成次异常,需要修改程序入口: