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

 

发布日期: 2017年2月

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

在 Microsoft Dynamics CRM Online 2015 更新 1 中引入,文档管理的基于服务器的 Microsoft SharePoint 集成可用于将 Microsoft Dynamics 365 (online) 与 SharePoint(本地)连接。 使用基于服务器的身份验证时,Azure AD 域服务被用作信任代理,因此用户无需登录到 SharePoint。

Dynamics 365(联机)和 SharePoint(本地)

本主题内容

所需权限

使用内部部署 Dynamics 365(在线)和 SharePoint 设置服务器到服务器身份验证

添加 OneDrive for Business 集成

选择一个基于声明的身份验证映射类型

所需权限

Office 365

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

Microsoft Dynamics 365 (online)

  • “运行 SharePoint 集成向导”特权。 这要求在 Microsoft Dynamics 365 中运行“启用基于服务器的身份验证”向导。

    默认情况下,系统管理员的安全角色有此权限。

SharePoint 内部部署

  • 服务器场管理员组成员资格 - 这是在 SharePoint 服务器上运行大多数 PowerShell 命令所必需的。

使用内部部署 Dynamics 365(在线)和 SharePoint 设置服务器到服务器身份验证

按照提供的步骤顺序使用 SharePoint 2013 内部部署设置 Dynamics 365(在线)。

重要

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

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

验证必备组件

在对基于服务器的身份验证配置 Microsoft Dynamics 365 (online) 和内部部署 SharePoint 之前,必须满足下列先决条件:

SharePoint 先决条件

其他先决条件

  • SharePoint Online 许可证。Microsoft Dynamics 365 (online) 至 SharePoint 内部部署的基于服务器的身份认证必须具有 Azure Active Directory 中注册的 SharePoint 服务主体名称 (SPN)。 为了实现此目的,至少需要一个 SharePoint Online 用户许可证。SharePoint Online 许可证可以派生自单个用户许可证并且通常来自以下操作之一:

    • SharePoint Online 订阅。 任何 SharePoint Online 计划都是足够的,即使许可证没有分派给用户。

    • 包含 SharePoint Online 的 Office 365 订阅。 例如,如果您拥有 Office 365 E3,您拥有合适的许可,即使许可证没有分派给用户。

    有关这些计划的详细信息,请参阅 Office 365:选择计划比较 SharePoint 选项

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

    重要

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

  • 使用相应的基于声明的身份验证类型在 Microsoft Dynamics 365 (online) 和 SharePoint 内部部署之间进行映射。 默认情况下,使用电子邮件地址。详细信息:授予 Microsoft Dynamics 365 权限访问 SharePoint 和配置基于声明的身份验映射

在 Azure Active Directory 域服务中更新 SharePoint Server SPN

在 SharePoint 内部部署服务器上的 SharePoint 2013 Management Shell 中,请给定顺序运行 PowerShell 命令。

  1. 准备 PowerShell 会话。

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

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

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

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

    $msolcred = get-credential
    connect-msolservice -credential $msolcred
    
  3. 设置 SharePoint 主机名称。

    对可变*“主机名”* 设置的值必须为 SharePoint 网站集的完整主机名。 主机名必须是该网站集 URL 派生出来的并区分大小写。 在此示例中,网站集 URL 是 *https://SharePoint.constoso.com/sites/salesteam*,因此,主机名应为 SharePoint.contoso.com

    $HostName = "SharePoint.contoso.com"
    
  4. 获取 Office 365 对象(租户)ID SharePoint Server 服务主体名称 (SPN)。

    $SPOAppId = "00000003-0000-0ff1-ce00-000000000000"
    $SPOContextId = (Get-MsolCompanyInformation).ObjectID
    $SharePoint = Get-MsolServicePrincipal -AppPrincipalId $SPOAppId
    $ServicePrincipalName = $SharePoint.ServicePrincipalNames
    
  5. 在 Azure Active Directory 中设置 SharePoint Server 服务主体名称 (SPN)。

    $ServicePrincipalName.Add("$SPOAppId/$HostName") 
    Set-MsolServicePrincipal -AppPrincipalId $SPOAppId -ServicePrincipalNames $ServicePrincipalName 
    

上述命令完成后不会关闭 SharePoint 2013 Management Shell,并继续执行下一步。

更新 SharePoint 领域以匹配 SharePoint Online

在 SharePoint 内部部署服务器上的 SharePoint 2013 Management Shell 中,运行 Windows PowerShell 命令。

以下命令要求 SharePoint 场管理员成员资格并设置 SharePoint 本地场的身份验证。

警告

运行此命令更改 SharePoint 本地场的身份验证领域。 对于使用现有安全令牌服务 (STS) 的应用程序,则会导致使用访问令牌的其他应用程序出现异常行为。 更多详细信息:Set-SPAuthenticationRealm

Set-SPAuthenticationRealm -Realm $SPOContextId

为 Azure Active Directory 在 SharePoint 上创建一个受信任安全令牌

在 SharePoint 内部部署服务器上的 SharePoint 2013 Management Shell 中,请给定顺序运行 PowerShell 命令。

以下命令需要 SharePoint 场管理员成员资格。

有关这些 PowerShell 命令的详细信息,请参阅使用 Windows PowerShell cmdlets 管理 SharePoint 2013 安全

  1. 启用 PowerShell 会话更改 SharePoint 场的安全令牌服务。

    $c = Get-SPSecurityTokenServiceConfig
    $c.AllowMetadataOverHttp = $true
    $c.AllowOAuthOverHttp= $true
    $c.Update()
    
  2. 设置元数据端点。

    $metadataEndpoint = "https://accounts.accesscontrol.windows.net/" + $SPOContextId + "/metadata/json/1"
    $acsissuer  = "00000001-0000-0000-c000-000000000000@" + $SPOContextId
    $issuer = "00000007-0000-0000-c000-000000000000@" + $SPOContextId
    
  3. 在 Azure Active Directory 中创建新令牌控制服务应用代理。

    New-SPAzureAccessControlServiceApplicationProxy -Name "Internal" -MetadataServiceEndpointUri $metadataEndpoint -DefaultProxyGroup
    

    备注

    New- SPAzureAccessControlServiceApplicationProxy 命令可能会返回一条错误消息,指示已经存在同名的应用程序代理。 如果已存在已命名的应用程序代理,则可以忽略此错误。

  4. 在 SharePoint 内部部署为 Azure Active Directory 创建新令牌控制服务颁发者。

    $ = New-SPTrustedSecurityTokenIssuer –Name "ACSInternal" –IsTrustBroker:$true –MetadataEndpoint $metadataEndpoint -RegisteredIssuerName $acsissuer 
    

授予 Microsoft Dynamics 365 权限访问 SharePoint 和配置基于声明的身份验映射

在 SharePoint 内部部署服务器上的 SharePoint 2013 Management Shell 中,请给定顺序运行 PowerShell 命令。

以下命令需要 SharePoint 网站集管理成员资格。

  1. 使用 SharePoint 网站集注册 Microsoft Dynamics 365。

    输入 SharePoint 内部部署网站集 URL。 在此示例中,使用 *https://sharepoint.contoso.com/sites/crm/*。

    重要

    若要完成此命令,SharePoint 应用程序管理业务应用程序代理必须存在并运行。 有关如何启动和配置这项服务的详细信息,请参阅为 SharePoint (SharePoint 2013) 应用程序配置环境中的配置订阅设置和应用管理服务应用程序子主题。

    $site = Get-SPSite "https://sharepoint.contoso.com/sites/crm/"
    Register-SPAppPrincipal -site $site.RootWeb -NameIdentifier $issuer -DisplayName "crm"
    
  2. 授予 Microsoft Dynamics 365 应用程序对 SharePoint 网站的访问权限。 用您的 SharePoint 网站 URL 替换 *https://sharepoint.contoso.com/sites/crm/*。

    备注

    在下面的示例中,通过使用 Scope 网站集参数, Dynamics 365 应用程序被授予对指定 SharePoint 网站集的访问权限。 Scope 参数接受以下选项: 选择最适合 SharePoint 配置的范围。

    • site。 仅授予 Dynamics 365 应用程序对指定 SharePoint 网站的访问权限。 不授予对已命名网站下任何子网站的访问权限。

    • sitecollection。 授予 Dynamics 365 应用程序对指定 SharePoint 网站集内所有网站和子网站的访问权限。

    • sitesubscription。 授予 Dynamics 365 应用程序对指定 SharePoint 场内所有网站(包括所有网站集、网站和子网站)的访问权限。

    $app = Get-SPAppPrincipal -NameIdentifier $issuer -Site "https://sharepoint.contoso.com/sites/crm/"
    Set-SPAppPrincipalPermission -AppPrincipal $app -Site $site.Rootweb -Scope "sitecollection" -Right "FullControl"
    
  3. 设置基于声明的身份验证映射类型。

    重要

    默认情况下,基于声明的身份验证映射会使用用户的 Microsoft 帐户 电子邮件地址和用户的 SharePoint 内部部署“工作电子邮件”地址进行映射。 当您使用时,该用户的电子邮件地址必须在这两个系统之间匹配。 有关详细信息,请参阅选择一个基于声明的身份验证映射类型。

    $map1 = New-SPClaimTypeMapping -IncomingClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "EmailAddress" -SameAsIncoming
    

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

在 Microsoft Dynamics 365 应用程序中,请执行以下步骤:

  1. 转到“设置”>“文档管理”。(如何进入?)

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

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

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

  5. 输入 SharePoint 内部部署网站集 URL,例如 *https://sharepoint.contoso.com/sites/crm*。 网站必须为 SSL 配置。

  6. 单击“下一步”。

  7. 验证网站节出现。 如果所有网站都确定为有效,请单击“启用”。 如果一个或多个网站都判定无效,请参阅 基于服务器的身份验证疑难解答

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

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

添加 OneDrive for Business 集成

完成基于 Microsoft Dynamics 365 和本地 SharePoint 服务器的身份验证配置后,您还可以集成 OneDrive for Business。 利用 Microsoft Dynamics 365 和 OneDrive for Business 的集成,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()

选择一个基于声明的身份验证映射类型

默认情况下,基于声明的身份验证映射会使用用户的 Microsoft 帐户 电子邮件地址和用户的 SharePoint 本地工作电子邮件地址用于映射。 请注意,任何基于声明的身份验证类型的值(如电子邮件地址),在 Microsoft Dynamics 365 (online) 和 SharePoint 之间必须匹配。Office 365 目录同步可以提供帮助。详细信息:在 Microsoft Azure 中部署 Office 365 目录同步 (DirSync) 使用不同类型的基于声明的身份验证映射,请参阅为 SharePoint 基于服务器的集成定义自定义声明映射

重要

若要启用工作电子邮件属性,SharePoint 本地需已配置和启动 User Profile Service 应用程序。 要在 SharePoint 中启用 User Profile Service 应用程序,请参阅在 SharePoint Server 2013 中创建、编辑或删除 User Profile Service 应用程序。 若要更改用户属性(如工作电子邮件),请参阅编辑用户配置文件属性。 有关 User Profile Service 应用程序的详细信息,请参阅SharePoint Server 2013 中的 User Profile Service 应用程序概述

另请参阅

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

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