配置 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

设置与 Dynamics 365 和 SharePoint 之间基于服务器的集成

按照提供的步骤顺序,使用 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 先决条件

其他必备条件和限制

  • 用于 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 服务器场。

准备 Microsoft Dynamics 365 Server 以用于基于服务器的集成

CertificateReconfiguration.ps1 是一个 Windows PowerShell 脚本,用于将一个证书安装到本地证书存储,授予指定的 Microsoft Dynamics 365 异步处理服务标识访问该证书的权限,并更新 Microsoft Dynamics 365 服务器 以使用该证书。

将服务器到服务器证书添加到本地证书存储和 Microsoft Dynamics 365 配置数据库中

  1. 在所有安装了 Microsoft Dynamics 365 服务器 完全服务器角色的服务器上打开一个 PowerShell 命令会话。 对于其他服务器角色部署,运行该 cmdlet 安装证书的位置取决于您的 Microsoft Dynamics 365 版本。

    • 对于 适用于 Microsoft Dynamics 365 的 2016 年 12 月 Service Pack(本地) 和更高版本,请在所有运行 Web 应用程序服务器 角色的服务器上运行此命令。

    • 对于 Microsoft Dynamics CRM 2016 Service Pack 1 和更低版本,请在所有运行 异步服务 服务器角色的服务器上运行此命令。

  2. 将您的位置更改为<驱动器:\Program Files\Microsoft Dynamics CRM\Tools 文件夹。

  3. 按照下面的说明运行 CertificateReconfiguration.ps1 Windows PowerShell 脚本:

    • certificateFilepath\Personalcertfile.pfx。 指定个人信息交换文件 (.pfx) 完整路径的必需参数。 更多信息:使用数字证书

    • passwordpersonal_certfile_password。 指定私有证书密码的必需参数。

    • certificateType S2STokenIssuer: 指定证书类型的必需参数。 对于 Microsoft Dynamics 365 和 SharePoint 基于服务器的集成,只有 S2STokenIssuer 受支持。

    • serviceAccountDomainName\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 服务器场以用于基于服务器的集成

获得 Dynamics 365 领域 ID

  1. 启动 启用基于服务器的 SharePoint 集成向导。转到“设置”>“文档管理”。(如何进入?)

  2. 依次单击“下一步”、“内部部署”、“下一步”。

  3. 该 ID 在页面上“Dynamics 365 领域 ID”旁显示。

    提示

    将“Dynamics 365 领域 ID”保存到安全网络共享或基于云的存储上的文本文件中。 然后,您可以轻松地从运行 启用基于服务器的 SharePoint 集成向导 的位置检索该 ID。

在 SharePoint 内部部署服务器上,在 SharePoint Management Shell 中,按给定顺序运行这些 PowerShell 命令。

准备 SharePoint 服务器以用于 Dynamics 365 Server 身份验证

  1. 如果您使用的 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()
    
  2. 创建受信任的安全令牌服务对象,其中 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
    
  3. 使用 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"
    
  4. 授予 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
    

运行 启用基于服务器的 SharePoint 集成向导。

  1. 在 Microsoft Dynamics 365 应用中,转至“设置”>“文档管理”。

  2. 在“文档管理”区域中,单击“启用基于服务器的 SharePoint 集成”。

  3. 检查信息,然后单击“下一步”。

  4. 对于 SharePoint 网站,请单击“内部部署”,然后单击“下一步”。

  5. 在“准备网站”阶段,输入以下信息:

  6. 单击“下一步”。

  7. 验证网站节出现。 如果所有网站都有效,请单击“启用”。 如果一个或多个站点无效,请参阅 Dynamics 365 Server(内部部署)到 SharePoint Server 内部部署基于服务器集成疑难解答。

选择您要放入“文档管理”的实体

默认情况下,包括客户、文章、潜在顾客、产品、报价单和销售宣传资料实体。 在 Microsoft Dynamics 365 的“文档管理设置”中,您可以添加或删除想用于 SharePoint 文档管理的实体。转到“设置”>“文档管理”。(如何进入?)详细信息:客户中心:启用实体的文档管理

添加 OneDrive for Business 集成

完成基于 Microsoft Dynamics 365 和 SharePoint 本地部署服务器的集成配置后,您还可以集成 OneDrive for Business。 利用 Microsoft Dynamics 365OneDrive for Business 集成,Microsoft Dynamics 365 用户可以使用 OneDrive for Business 创建和管理私人文档。 一旦系统管理员启用了 OneDrive for Business,用户便可以在 Dynamics 365 中访问这些文档。

启用 OneDrive for Business

在运行 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()

Dynamics 365 Server(内部部署)到 SharePoint Server 内部部署基于服务器集成疑难解答

有关 启用基于服务器的 SharePoint 集成向导 的故障排除方法和如何查看 SharePoint 监视日志的信息,请参阅 基于服务器的身份验证疑难解答

已知问题

有关 SharePoint 疑难解答和已知问题的文档管理,请参阅 基于服务器的身份验证疑难解答

关于基于声明的身份验证映射

默认情况下,Dynamics 365(本地) 和 SharePoint 内部部署之间基于服务器的身份验证使用用户的安全标识符 (SID) 验证每个用户的身份。 如果 Microsoft Dynamics 365 服务器 和 SharePoint 位于彼此间无信任的不同 Active Directory 域中,您必须使用自定义基于声明的身份验证映射,例如用户的电子邮件地址。详细信息:定义基于服务器的 SharePoint 集成的自定义声明映射

使用数字证书

以下过程创建个人信息交换文件 (.pfx)。

  1. 在拥有您希望用于服务器到服务器身份验证的证书访问权的计算机上,单击“开始”,单击“运行”,键入 MMC,然后按 Enter 键。

  2. 单击“文件”,然后单击“添加/删除管理单元”。

  3. 在“可用的管理单元”列表中依次单击“证书”、“添加”、“计算机帐户”、“下一步”,单击“完成”以选择本地计算机,最后单击“确定”。

  4. 展开“证书”,展开“个人”,然后单击“证书”。

  5. 右键单击要用于创建个人证书文件的证书,指向“所有任务”,然后单击“导出”。

  6. 单击“下一步”,单击“是”以导出私钥,确保选中以下选项,然后单击“下一步”。

    • 在证书路径中包括所有证书(如果可能)

    • 导出所有展开的属性

  7. 单击“浏览”,输入 .pfx 文件的位置和文件名,然后单击“保存”。

  8. 单击“下一步”,然后单击“完成”。

获得 SharePoint 领域 ID

在 SharePoint 命令行管理程序中运行以下 PowerShell 命令,其中 https://sharepoint.contoso.com/sites/crm/ 是 SharePoint 站点集的 URL。

Get-SPAuthenticationRealm -ServiceContext https://sharepoint.contoso.com/sites/crm/

也可以在 SharePoint 站点集的站点应用权限设置中找到 SharePoint 领域 ID。

  1. 登录到您将用于 Microsoft Dynamics 365 文档管理的 SharePoint 网站集。

  2. 转至“网站设置”>“网站应用程序权限”。

  3. 领域 ID 显示在“应用程序标识符”下方,@ 符号的右侧。 将其复制到剪贴板。 在 启用基于服务器的 SharePoint 集成向导 中,仅粘贴 GUID。 不要将标识符的任何部分粘贴到 @ 左侧。

© 2017 Microsoft。 保留所有权利。 版权