配置 Microsoft Dynamics 365(内部部署)和 SharePoint 内部部署的基于服务器的身份验证
发布日期: 2017年2月
适用于: Dynamics 365 (on-premises),Dynamics CRM 2016
本主题介绍如何在 Dynamics 365(本地) 和 Microsoft SharePoint 内部部署之间配置基于服务器的集成。
设置与 Dynamics 365 和 SharePoint 之间基于服务器的集成
添加 OneDrive for Business 集成
Dynamics 365 Server(内部部署)到 SharePoint Server 内部部署基于服务器集成疑难解答
关于基于声明的身份验证映射
使用数字证书
获得 SharePoint 领域 ID
按照提供的步骤顺序,使用 Microsoft SharePoint Server 内部部署设置 Dynamics 365(本地)。
重要
-
如果某个任务未完成,例如,PowerShell 命令返回了一条错误消息,则必须先解决该问题,然后才能继续下一命令、任务或步骤。
-
启用基于服务器的 SharePoint 集成后,不能恢复到之前的基于客户的授权方法。 因此,配置基于服务器的 SharePoint 集成的 Dynamics 365 组织后,不能使用 Microsoft Dynamics CRM 列表组件。
在配置 Dynamics 365(本地) 和 SharePoint 内部部署以进行基于服务器的集成之前,需要获得下列权限并满足必备条件。
Microsoft Dynamics 365
系统管理员安全角色 - 这是在 Microsoft Dynamics 365 中运行 启用基于服务器的 SharePoint 集成向导 所必需的。
如果您将自签名证书用于评估目的,则必须在运行 Microsoft Dynamics 365 服务器 的计算机上拥有本地管理员组成员资格。
SharePoint 内部部署
- 服务器场管理员组成员资格 - 这是在 SharePoint 服务器上运行大多数 Windows PowerShell 命令所必需的。
以下 SharePoint 版本的其中一种:
SharePoint 2016 本地部署。
备注
适用于 Dynamics 365 的 2016 年 12 月更新(联机和本地) 是将 SharePoint 2016 与 Dynamics 365(本地) 结合使用所必需的。详细信息:Dynamics 365(在线和本地部署)的 2016 年 12 月更新
具有 Service Pack 1 (SP1) 的 Microsoft SharePoint 2013 内部部署或者使用以下更新的最新版本。
SharePoint配置
必须仅为单个服务器场部署配置 SharePoint。
若要使用基于声明的默认身份验证映射,SharePoint 服务器和 Microsoft Dynamics 365 服务器所在的 Active Directory 域必须是相同域,或者 SharePoint 服务器所在的域必须信任 Microsoft Dynamics 365 服务器 所在的域。 更多信息:关于基于声明的身份验证映射
SharePoint 网站必须配置为使用 TLS/SSL (HTTPS),并且必须由公共根证书颁发机构颁发证书。详细信息:SharePoint:关于安全通道 SSL 证书
必须创建并启动 App Management Service Application Proxy。详细信息:为 SharePoint 应用程序配置环境
必须配置和启动 User Profile Service 应用程序。详细信息:在 SharePoint Server 2013 中创建、编辑或删除 User Profile Service 应用程序
若要共享文档,必须启用 SharePoint 搜索服务。详细信息:创建和配置 SharePoint 服务器中的搜索服务应用程序
对于使用 Microsoft Dynamics 365 移动应用程序时的文档管理功能,本地 SharePoint 服务器必须通过互联网可用。
若要允许用户从 Dynamics 365 创建 SharePoint 文档库,必须具备以下权限和配置:
Dynamics 365 用户 Active Directory 账户必须是文档所存储的 SharePoint 网站集上的网站成员组的成员。
默认情况下,基于声明的身份验证映射会使用用户的 Dynamics 365 主要电子邮件地址和用户的 SharePoint 本地部署工作电子邮件”地址进行映射。 使用此映射时,用户的电子邮件地址必须在这两个系统之间匹配。 更多信息:关于基于声明的身份验证映射
用于 Microsoft Dynamics 365 服务器 和 SharePoint 服务器之间基于服务器的身份验证的 X509 数字证书。 证书密钥必须采用至少 2048 位的加密。 大多数情况下都必须由受信任的证书颁发机构颁发该证书,但出于评估目的,您可以使用自签名证书。
CRMAppPool 应用程序池的标识必须具有 x509 证书的读访问权限,该证书将用于对 Microsoft Dynamics 365 服务器 和 SharePoint 服务器执行基于服务器的身份验证。 可使用 Certificates MMC 管理单元授予此访问权限。
如果使用 Microsoft SharePoint 2013,对于每个 SharePoint 场,只能为基于服务器的集成配置一个 Microsoft Dynamics 365 组织。 但是,您可以将多个 Microsoft Dynamics 365 组织连接到 SharePoint 2016 服务器场。
CertificateReconfiguration.ps1 是一个 Windows PowerShell 脚本,用于将一个证书安装到本地证书存储,授予指定的 Microsoft Dynamics 365 异步处理服务标识访问该证书的权限,并更新 Microsoft Dynamics 365 服务器 以使用该证书。
在所有安装了 Microsoft Dynamics 365 服务器 完全服务器角色的服务器上打开一个 PowerShell 命令会话。 对于其他服务器角色部署,运行该 cmdlet 安装证书的位置取决于您的 Microsoft Dynamics 365 版本。
对于 适用于 Microsoft Dynamics 365 的 2016 年 12 月 Service Pack(本地) 和更高版本,请在所有运行 Web 应用程序服务器 角色的服务器上运行此命令。
对于 Microsoft Dynamics CRM 2016 Service Pack 1 和更低版本,请在所有运行 异步服务 服务器角色的服务器上运行此命令。
将您的位置更改为<驱动器:\Program Files\Microsoft Dynamics CRM\Tools 文件夹。
按照下面的说明运行 CertificateReconfiguration.ps1 Windows PowerShell 脚本:
certificateFilepath\Personalcertfile.pfx。 指定个人信息交换文件 (.pfx) 完整路径的必需参数。 更多信息:使用数字证书
passwordpersonal_certfile_password。 指定私有证书密码的必需参数。
certificateType S2STokenIssuer: 指定证书类型的必需参数。 对于 Microsoft Dynamics 365 和 SharePoint 基于服务器的集成,只有 S2STokenIssuer 受支持。
serviceAccount ‘DomainName\UserName’ 或 ‘Network Service’。
对于 适用于 Microsoft Dynamics 365 的 2016 年 12 月 Service Pack(本地) 和更高版本:
serviceAccount 'contoso\CRMWebAppServer' 或 ‘Network Service’。 用于指定 Web 应用程序服务器 角色的标识的必需参数。 该标识为域用户帐户(如 contoso\CRMWebAppServer)或网络服务。 该标识将被授予证书权限。
对于 Microsoft Dynamics CRM 2016 Service Pack 1 和更低版本:
serviceAccount 'contoso\CRMAsyncService' 或 ‘Network Service’。 用于指定 异步服务 的标识的必需参数。 该标识为域用户帐户(如 contoso\CRMAsyncService)或网络服务。 该标识将被授予证书权限。
updateCrm: 将证书信息添加到 Microsoft Dynamics 365 配置数据库。
重要
即使部署了多个 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 集成向导。转到“设置”>“文档管理”。(如何进入?)
依次单击“下一步”、“内部部署”、“下一步”。
该 ID 在页面上“Dynamics 365 领域 ID”旁显示。
提示
将“Dynamics 365 领域 ID”保存到安全网络共享或基于云的存储上的文本文件中。 然后,您可以轻松地从运行 启用基于服务器的 SharePoint 集成向导 的位置检索该 ID。
在 SharePoint 内部部署服务器上,在 SharePoint Management Shell 中,按给定顺序运行这些 PowerShell 命令。
如果您使用的 SharePoint Management Shell 不是 PowerShell Management Shell,则必须使用以下命令注册 SharePoint 模块。
Add-PSSnapin Microsoft.SharePoint.PowerShell
启用 PowerShell 会话更改 SharePoint 场的安全令牌服务。
$c = Get-SPSecurityTokenServiceConfig $c.AllowMetadataOverHttp = $true $c.AllowOAuthOverHttp= $true $c.Update()
创建受信任的安全令牌服务对象,其中 OrganizationName 是 Microsoft Dynamics 365 组织的唯一名称,CrmServer 是安装了 Microsoft Dynamics 365 Web 应用程序服务器角色的 IIS Web 服务器的名称,-名称“crm”用于为安全令牌服务器 (STS) 命名。
重要
-
不支持将多个 Microsoft Dynamics 365 组织连接到一个 Microsoft SharePoint 2013 服务器场。 但是,您可以将多个 Microsoft Dynamics 365 组织连接到 SharePoint 2016 服务器场。
-
如果 Microsoft Dynamics 365 应用程序网站仅采用了 HTTPS 绑定或同时采用了 HTTPS 和 HTTP 绑定(如以下示例),运行 New-SPTrustedSecurityTokenIssuer PowerShell 命令时,必须为 Microsoft Dynamics 365 元数据终结点指定 HTTPS。
New-SPTrustedSecurityTokenIssuer –Name "crm" –IsTrustBroker:$false –MetadataEndpoint https://CrmServer/XrmServices/2015/metadataendpoint.svc/json?orgName=OrganizationName
-
使用 SharePoint 网站集注册 Microsoft Dynamics 365。
若要运行以下命令,必须指定两个参数:
SharePoint 内部部署网站集 URL。 在本示例中,https://sharepoint.contoso.com/sites/crm/ 用作网站集 URL。
CrmRealmId 是您想用于 SharePoint 文档管理的 Microsoft Dynamics 365 组织的 ID。详细信息:获得 Dynamics 365 领域 ID
重要
若要完成这些命令,SharePoint App Management Service Application Proxy 必须存在并正在运行。 有关如何启动和配置这项服务的详细信息,请参阅为 SharePoint (SharePoint 2013) 应用程序配置环境中的配置订阅设置和应用管理服务应用程序主题。
$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"
授予 Microsoft Dynamics 365 应用程序访问 SharePoint 网站的权限。
备注
在下面的示例中,通过使用 –Scope sitecollection 参数,Microsoft Dynamics 365 应用程序被授予对指定 SharePoint 网站集的访问权限。 Scope 参数接受以下选项: 使用最适合您的 SharePoint 配置的范围:
-
site。 授予 Dynamics 365 应用程序仅指定 SharePoint 网站的访问权限。 不授予对已命名网站下任何子网站的访问权限。
-
sitecollection。 授予 Dynamics 365 应用程序对指定 SharePoint 网站集内所有网站和子网站的访问权限。
-
sitesubscription。 授予 Dynamics 365 应用程序对指定 SharePoint 场内所有网站(包括所有网站集、网站和子网站)的访问权限。
$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
-
在 Microsoft Dynamics 365 应用中,转至“设置”>“文档管理”。
在“文档管理”区域中,单击“启用基于服务器的 SharePoint 集成”。
检查信息,然后单击“下一步”。
对于 SharePoint 网站,请单击“内部部署”,然后单击“下一步”。
在“准备网站”阶段,输入以下信息:
SharePoint 内部部署网站集 URL,例如 *https://sharepoint.contoso.com/sites/crm*。 网站必须为 TLS/SSL 配置。
“SharePoint 领域 ID”。获得 SharePoint 领域 ID
单击“下一步”。
验证网站节出现。 如果所有网站都有效,请单击“启用”。 如果一个或多个站点无效,请参阅 Dynamics 365 Server(内部部署)到 SharePoint Server 内部部署基于服务器集成疑难解答。
默认情况下,包括客户、文章、潜在顾客、产品、报价单和销售宣传资料实体。 在 Microsoft Dynamics 365 的“文档管理设置”中,您可以添加或删除想用于 SharePoint 文档管理的实体。转到“设置”>“文档管理”。(如何进入?)详细信息:客户中心:启用实体的文档管理
完成基于 Microsoft Dynamics 365 和 SharePoint 本地部署服务器的集成配置后,您还可以集成 OneDrive for Business。 利用 Microsoft Dynamics 365OneDrive for Business 集成,Microsoft Dynamics 365 用户可以使用 OneDrive for Business 创建和管理私人文档。 一旦系统管理员启用了 OneDrive for Business,用户便可以在 Dynamics 365 中访问这些文档。
在运行 SharePoint Server 内部部署的 Windows Server 上,打开 SharePoint Management Shell 并运行以下命令。
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()
有关 启用基于服务器的 SharePoint 集成向导 的故障排除方法和如何查看 SharePoint 监视日志的信息,请参阅 基于服务器的身份验证疑难解答。
有关 SharePoint 疑难解答和已知问题的文档管理,请参阅 基于服务器的身份验证疑难解答。
默认情况下,Dynamics 365(本地) 和 SharePoint 内部部署之间基于服务器的身份验证使用用户的安全标识符 (SID) 验证每个用户的身份。 如果 Microsoft Dynamics 365 服务器 和 SharePoint 位于彼此间无信任的不同 Active Directory 域中,您必须使用自定义基于声明的身份验证映射,例如用户的电子邮件地址。详细信息:定义基于服务器的 SharePoint 集成的自定义声明映射
以下过程创建个人信息交换文件 (.pfx)。
在拥有您希望用于服务器到服务器身份验证的证书访问权的计算机上,单击“开始”,单击“运行”,键入 MMC,然后按 Enter 键。
单击“文件”,然后单击“添加/删除管理单元”。
在“可用的管理单元”列表中依次单击“证书”、“添加”、“计算机帐户”、“下一步”,单击“完成”以选择本地计算机,最后单击“确定”。
展开“证书”,展开“个人”,然后单击“证书”。
右键单击要用于创建个人证书文件的证书,指向“所有任务”,然后单击“导出”。
单击“下一步”,单击“是”以导出私钥,确保选中以下选项,然后单击“下一步”。
在证书路径中包括所有证书(如果可能)
导出所有展开的属性
单击“浏览”,输入 .pfx 文件的位置和文件名,然后单击“保存”。
单击“下一步”,然后单击“完成”。
在 SharePoint 命令行管理程序中运行以下 PowerShell 命令,其中 https://sharepoint.contoso.com/sites/crm/ 是 SharePoint 站点集的 URL。
Get-SPAuthenticationRealm -ServiceContext https://sharepoint.contoso.com/sites/crm/
也可以在 SharePoint 站点集的站点应用权限设置中找到 SharePoint 领域 ID。
登录到您将用于 Microsoft Dynamics 365 文档管理的 SharePoint 网站集。
转至“网站设置”>“网站应用程序权限”。
领域 ID 显示在“应用程序标识符”下方,@ 符号的右侧。 将其复制到剪贴板。 在 启用基于服务器的 SharePoint 集成向导 中,仅粘贴 GUID。 不要将标识符的任何部分粘贴到 @ 左侧。
© 2017 Microsoft。 保留所有权利。 版权