配置 Microsoft Dynamics 365(内部部署)和 SharePoint Online 的基于服务器的身份验证

 

发布日期: 2017年2月

适用于: Dynamics 365 (on-premises),Dynamics CRM 2016

本主题介绍如何在 Dynamics 365(本地) 和 Microsoft SharePoint Online 之间配置基于服务器的身份验证。 下图展示了 Dynamics 365(本地)、Azure AD Domain Services 与 SharePoint Online 之间的通信。

CRM on-premises and SharePoint Online

本主题内容

所需权限

对 Microsoft Dynamics 365 和 SharePoint Online 设置基于服务器的身份验证

排查“启用基于服务器的身份验证”向导验证问题

所需权限

Microsoft Dynamics 365

  • 系统管理员安全角色。 这是在 Microsoft Dynamics 365 中运行“启用基于服务器的 SharePoint 集成”向导所必需的。

  • 如果您将自签名证书用于评估目的,则必须在运行 Microsoft Dynamics 365 服务器 的计算机上拥有本地管理员组成员资格。

SharePoint Online

  • Office 365全局管理员成员。 这是管理级人员访问 Office 365 订阅和运行 Microsoft AzurePowerShell cmdlet 所必需的。

对 Microsoft Dynamics 365 和 SharePoint Online 设置基于服务器的身份验证

按照提供的步骤顺序,设置 Dynamics 365(本地) 与 SharePoint Online 的通信。

重要

  • 必须完全按所述步骤顺序来完成。 如果未完成任务(如返回错误消息的 Windows PowerShell 命令),您必须解决问题,然后继续执行下一命令、任务或步骤。

  • 启用基于服务器的 SharePoint 集成后,您不能恢复到之前的基于客户的授权方法。 这意味着,配置基于服务器的 SharePoint 集成的 Dynamics 365 组织后,不能使用 Microsoft Dynamics CRM 列表组件。

  • 连接相同 Dynamics 365 部署中的多个 Dynamics 365(本地) 组织到多个 SharePoint Online 网站,SharePoint Online 网站必须位于同一 Microsoft Office 365 租户。

验证必备组件

在配置 Dynamics 365(本地) 和 SharePoint Online 以进行基于服务器的身份验证之前,必须满足下列必备条件:

  • 必须已经配置 Dynamics 365(本地) 部署并且可通过 Internet 获得部署。详细信息:配置适用于 Microsoft Dynamics 365 的 IFD

  • Microsoft Dynamics 365 混合连接器。 Microsoft Dynamics 365 混合连接器是可以将基于服务器的身份验证用于 Dynamics 365(本地) 和 SharePoint Online 的免费连接器。详细信息:Microsoft Dynamics CRM 混合连接器

  • 由受信任的证书颁发机构颁发并将用于 Dynamics 365(本地) 和 SharePoint Online 之间的身份验证的 x509 数字证书。 如果您在评估基于服务器的身份验证,则可以使用自签名证书。

以下软件功能要求运行本主题介绍的 Windows PowerShell cmdlets。

重要

在编写这个模块时,IT 专家 RTW 版的 Microsoft Online Services 登录助手是存在问题。 在解决问题前,建议您使用 Beta 版本。 更多信息:Microsoft Azure 论坛:无法安装用于 Windows PowerShell 的 Azure Active Directory 模块。MOSSIA 未安装

设置基于服务器的身份验证

  1. 在运行部署工具服务器角色的 Microsoft Dynamics 365 服务器 上,启动用于 Windows PowerShell 的 Azure Active Directory 模块。

    重要

    运行以下 PowerShell 命令的计算机必须具有 验证必备组件 中之前所述的必备软件功能。

  2. 准备证书。

    $CertificateScriptWithCommand = “.\CertificateReconfiguration.ps1 -certificateFile c:\Personalcertfile.pfx -password personal_certfile_password -updateCrm -certificateType S2STokenIssuer -serviceAccount contoso\CRMAsyncService -storeFindType FindBySubjectDistinguishedName”
    
    Invoke-Expression -command $CertificateScriptWithCommand
    
  3. 准备 PowerShell 会话。

    以下 cmdlet 使计算机接收远程命令和添加 Office 365 模块到 PowerShell 会话。 有关这些 cmdlet 的详细信息,请参阅 Windows PowerShell Core Cmdlets

    Enable-PSRemoting -force
    New-PSSession
    Import-Module MSOnline -force
    Import-Module MSOnlineExtended -force
    
  4. 连接到 Office 365。

    在运行 Connect-MsolService 命令时,必须提供一个有效的 Microsoft 帐户,该 ID 具有所需 SharePoint Online 许可证的 Office 365 全局管理员成员资格。

    有关此处所列每个 Azure Active DirectoryPowerShell 命令的详细信息,请参阅 MSDN:使用 Windows PowerShell 管理 Azure AD

    $msolcred = get-credential
    connect-msolservice -credential $msolcred
    
  5. 设置证书。

    $STSCertificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2 -ArgumentList c:\Personalcertfile.pfx, personal_certfile_password
    $PFXCertificateBin = $STSCertificate.GetRawCertData()
    $Certificate = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2
    $Certificate.Import(“c:\Personalcertfile.cer”)
    $CERCertificateBin = $Certificate.GetRawCertData()
    $CredentialValue = [System.Convert]::ToBase64String($CERCertificateBin)
    
  6. 在 SharePoint 中设置 Azure Active Directory 服务主体名称 (SPN)。

    *.contoso.com 替换为 Microsoft Dynamics 365 服务器 所在域的名称。

    $RootDomain = “*.contoso.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
    
  7. 配置 Microsoft Dynamics 365 服务器 以便与 SharePoint 进行基于服务器的身份验证。

    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
    

运行“启用基于服务器的 SharPoint 集成”向导

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

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

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

  4. 对于 SharePoint 网站,请单击“联机”,然后单击“下一步”。

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

  6. 单击“下一步”。

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

获取 SharePoint Online 租户 ID

使用 PowerShell

  1. 在用于 Windows PowerShell shell 的 Azure Active Directory 模块中,运行下列命令。

    $CRMContextId = (Get-MsolCompanyInformation).ObjectID
    $CRMContextId
    
  2. 将显示的 GUID 复制到剪贴板。

使用网站设置

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

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

    租户 ID 显示在“应用程序标识符”下方,@ 符号的右侧。 复制并仅粘贴此 GUID。 不要将标识符的任何部分粘贴到 @ 左侧。

排查“启用基于服务器的身份验证”向导验证问题

身份验证失败。 当用于服务器到服务器身份验证的证书缺失或无效时,返回此错误。

另请参阅

使用 Microsoft Dynamics 365 设置 SharePoint 集成
基于服务器的身份验证疑难解答

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