规划 Duet Enterprise 的安全性

 

适用于: Duet Enterprise for Microsoft SharePoint and SAP

上一次修改主题: 2016-11-29

本文讨论如何规划 Duet Enterprise for Microsoft SharePoint and SAP 的安全部署和运行。其中介绍了 Duet Enterprise 安全体系结构、常见 Duet Enterprise 方案的安全配置策略、如何基于 SAP 角色在 Duet Enterprise 中配置权限、如何帮助实现 Duet Enterprise 环境的各个元素的安全性,以及要安全地管理 Duet Enterprise 所必需的角色和帐户。

重要

本文讨论 Microsoft SharePoint Server 服务器场上下文中的 Duet Enterprise 安全性规划。有关 SAP 环境中 Duet Enterprise 安全性的相关讨论,请参阅 SAP 支持门户(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=205294&clcid=0x804)(该链接可能指向英文页面) 上的“SAP Duet Enterprise 安全指南”。在 SAP 支持门户的左侧窗格中,依次展开“SAP 业务套件应用程序”、“Duet Enterprise”、“Duet Enterprise 1.0”,然后下载适用的指南。

SharePoint Server 中的 Duet Enterprise 安全性构建于 SharePoint Server 2010 的安全功能之上。除本文之外,我们还建议查看介绍如何规划和实施一般 SharePoint Server 安全性的内容。有关详细信息,请参阅安全性和身份验证资源中心 (https://go.microsoft.com/fwlink/?linkid=196792&clcid=0x804)。SharePoint Server 和 SAP 系统之间的许多通信以及 Duet Enterprise 身份验证和授权都是使用 Microsoft Business Connectivity Services实现的。因此,我们还建议查看有关 Microsoft Business Connectivity Services的内容。有关 Microsoft Business Connectivity Services安全性及相关领域的信息,请参阅 Business Connectivity Services 资源中心(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=190217&clcid=0x804)(该链接可能指向英文页面)。

本文内容:

  • Duet Enterprise 安全体系结构

  • 配置常用 Duet Enterprise 身份验证方案的安全性

  • 使用 SAP 角色授予用户访问 SharePoint 对象的权限

  • Duet Enterprise 中的 SharePoint Server 推荐安全做法

Duet Enterprise 安全体系结构

在 Duet Enterprise 中,SAP 系统中存储的业务流程和数据显示在 SharePoint Server 2010 网站和 Microsoft Office 2010 套件客户端(例如 Microsoft Outlook 和 SharePoint Workspace)中。不过,用于访问 SharePoint Server 2010 和 Microsoft Office 2010 套件客户端的用户帐户不能直接用于访问 SAP 中的信息。Duet Enterprise 安全体系结构通过配置 SharePoint Server 2010 中包括的 Microsoft Business Connectivity Services Windows Communications Foundation (WCF) 连接器解决了此问题。此 WCF 连接器与 SharePoint Server 2010 中的 Security Token Service 和 SAP 系统中的 SAP NetWeaver 交互。此实施的目的是将 SharePoint Server 2010 中的用户标识映射到 SAP 系统中的用户帐户,以便登录到 SharePoint Server 2010 网站的用户无需再次登录到 SAP 系统便可访问 SAP 系统中存储的外部数据。

下图演示了 Duet Enterprise 中的身份验证工作原理的高级视图。它演示了 SharePoint 用户从 SharePoint Server 中的 Duet Enterprise 网站访问 SAP 信息时执行的步骤。

Duet Enterprise 身份验证

  1. 将 SharePoint 用户的标识(登录时与用户相关的令牌)发送给 Microsoft Business Connectivity Services Windows Communication Foundation 连接器。

  2. 连接器将 SharePoint 用户标识发送到 SharePoint Security Token Service。

  3. SharePoint Security Token Service 会对用户进行身份验证并修改令牌以将 SharePoint 用户与 SAP 系统对应起来。然后,SharePoint Security Token Service 会将令牌返回给 WCF 连接器。

  4. 然后,通过 SOAP 请求数据包将修改后的令牌发送给 SAP NetWeaver。

  5. 因为在部署期间,在 SAP NetWeaver 和 Security Token Service 之间创建了信任关系,所以 SAP NetWeaver 可以使用令牌查找映射到令牌中标识的用户的 SAP 用户帐户。

  6. 映射到令牌中标识的用户的 SAP 用户帐户会返回到 SAP NetWeaver。

  7. SAP NetWeaver 使用 SAP 用户帐户请求访问 SAP 系统中的信息,如果用户帐户有权访问该信息,则会将请求的信息发送给 SAP NetWeaver。

  8. SAP NetWeaver 将请求的信息作为 SOAP 响应发送给 Microsoft Business Connectivity Services Windows Communications Foundation (WCF) 连接器。

  9. Microsoft Business Connectivity Services WCF 连接器将信息传递给 SharePoint 用户。

备注

Duet Enterprise 中的授权可以基于 SAP 角色。有关详细信息,请参阅使用 SAP 角色授予用户访问 SharePoint 对象的权限。

SAP 管理员首先将 SAP 系统中的用户帐户映射到 SharePoint 系统中的帐户。有关此过程的详细信息,请参阅 SAP Duet Enterprise 安全指南。

提示

常用的 Duet Enterprise 身份验证方案

本节介绍两个最常用的 Duet Enterprise 方案以及为每个方案推荐的身份验证配置。这两个方案的关键不同之处包括:

  • 将基于 Duet Enterprise 实施一个解决方案还是多个解决方案。

  • 加密信道是否需要安全套接字层。

如上一节中所述,Duet Enterprise 的安全性跨越 SAP 系统和 SharePoint Server 2010 系统中的角色和帐户。此集成的身份验证体系结构是通过结合使用基于声明的身份验证和 Windows 身份验证实现的,本节中介绍的两个方案都需要这些方法。

重要

此版本的 Duet Enterprise 不支持基于表单的身份验证。

提示

在您创建将包含 Duet Enterprise 解决方案的 Web 应用程序时,将执行这些方案中介绍的大多数配置步骤。若要查看配置 Web 应用程序的步骤,请参阅创建 Web 应用程序 (SharePoint Server 2010) (https://go.microsoft.com/fwlink/?linkid=202008&clcid=0x804)。

方案:使用 Microsoft Windows 身份验证提供程序的企业 Intranet

这是最典型的 Duet Enterprise 身份验证方案。例如,组织可能在远程 SAP 系统中保存其员工数据,例如考勤卡、薪金和福利信息。所有用户通过企业 Duet Enterprise Intranet 门户访问此数据。所有员工使用相同的 Active Directory 域服务提供程序访问该门户。

可通过以下方式配置该方案:

Web 应用程序数量

一个

区域

一个区域:Intranet

身份验证

基于声明的身份验证

声明身份验证类型

Windows 身份验证

安全套接字层?

方案:Intranet 中有两个 Duet Enterprise 解决方案

在大型企业中,两个工作组可能共享同一 SAP 系统,例如用于与其产品信息数据库进行交互。每个工作组将通过自己的 Duet Enterprise 解决方案与数据进行交互。SAP 系统中的信息在此企业中不敏感。因此,为提高 Duet Enterprise 网站的性能,该方案中没有使用安全套接字层。

可通过以下方式配置该方案:

Web 应用程序数量

两个

区域

每个 Web 应用程序一个区域:Intranet

身份验证

基于声明的身份验证

声明身份验证类型

两个 Web 应用程序中都是 Windows 身份验证

安全套接字层?

使用 SAP 角色访问 SharePoint 对象

在企业中,用户执行的任务通常与该用户的角色相关。因此,有关用户是否应拥有对对象的某种级别的权限的决定因素通常是该用户的角色本身。因此,角色是分配对对象(例如列表项、网站和文档)的权限的有用方法。

在 SAP NetWeaver 中,为用户分配了一个或多个角色,例如销售代表、项目经理、主管人员和人力资源专家。SAP 角色可以是宽泛的(例如所有销售经理),也可以是具体的(例如东部地区销售经理)。在 Duet Enterprise 中,这些 SAP 角色可用于访问 SharePoint Server 中的对象。可以使用 SAP 角色为 SharePoint Server 中可对其应用权限的任何对象分配权限。这包括与 Duet Enterprise 直接相关的对象(例如报告、外部列表和对外部内容类型的操作)以及任何一般的安全 SharePoint Server 对象(例如网站或文档库)。在授予角色对对象的权限后,分配到该角色的任何用户将有权使用该对象。

只能在 SAP NetWeaver 中为用户分配角色。Duet Enterprise 使用 Duet Enterprise 配置文件同步计时器作业功能将用户角色分配从 SAP 系统引入 SharePoint Server 中,并且它使用 Duet Enterprise 声明提供程序来帮助管理对 SharePoint Server 中的安全对象的基于角色的权限。

在角色同步期间,使用 Microsoft Business Connectivity Services 将一组 SAP 用户导入到 SharePoint 用户配置文件存储中。对于每个 SAP 用户,分配给该用户的所有 SAP 角色都列在用户配置文件存储中。角色同步从 SharePoint Server 连接到 SAP 端名为“SAPUsersService”的外部系统。此外部系统将用户到角色的映射发送到 SharePoint 用户配置文件存储。通常,使用 Duet Enterprise 配置文件同步计时器作业,按设置的时间间隔将角色同步作为部署后步骤执行。您可以指定同步角色的频率和一次导入的用户数量。

在角色同步完成后,用户可以为 SAP 角色分配对 SharePoint Server 中的对象的权限。使用从其中选择组和个人的相同人员选取界面,为对象分配角色。如图中所示,Duet Enterprise 声明提供程序使用 Business Data Connectivity Service 与 SAP 系统进行通信(1 和 2)来收集并列出用户可以在人员选取器中选择的所有 SAP 角色 (3)。然后,用户可以将这些角色分配给可以为其设置权限的任何对象 (4)。

在人员选取器中使用 Duet Enterprise 角色

在授予 SAP 角色对对象(例如列表项或文档)的权限后,可以授权用户基于其角色使用该对象。如图中所示,当用户第一次登录到 SharePoint 网站时 (1),会为该用户颁发一个 SAML 声明令牌 (2),该令牌由 Duet Enterprise 声明提供程序通过与用户配置文件存储通信将用户的 SAP 角色添加到 SAML 令牌中来扩大(3 和 4)。然后如果用户的角色之一具有对对象的权限,则 SharePoint Server 可以授予用户对对象的访问权限(5 和 6)。

Duet Enterprise 中基于角色的权限

备注

当用户角色在 SAP 系统中改变时,更改可能需要一些时间才会传播到 SharePoint 系统。这可能会临时阻止基于用户的新角色对用户进行授权。通过在 SharePoint 服务器场中每台前端服务器上执行 iisreset 命令可加速传播角色更改的过程。这将清除角色信息的缓存,并使用任何更新的角色分配进行刷新。

Duet Enterprise 中的 SharePoint Server 推荐安全做法

Duet Enterprise 部署在 SharePoint Server 场和 SAP NetWeaver 系统上。本节包含有关如何配置 SharePoint 场中的共享服务、Web 应用程序、丰富客户端、信道及其他元素以提高 Duet Enterprise 中的安全性的一般指南。

Security Token Service

Security Token Service 对 SharePoint 用户进行身份验证并修改其令牌以将其与 SAP 系统对应起来(请参阅 Duet Enterprise 安全体系结构)。它还将用户的角色添加到令牌中以支持基于角色的授权(请参阅使用 SAP 角色授予用户访问 SharePoint 对象的权限)。

出于性能原因,将缓存 Security Token Service 令牌,并且每 24 小时刷新一次缓存。当从缓存中刷新令牌时,在下次需要该令牌时,Security Token Service 将重新创建它。Security Token Service 缓存每天只刷新一次以防止服务过于频繁地创建令牌,这可能会影响系统性能。

缓存令牌会影响令牌中的角色信息的更新频率,因为只在创建或重新创建令牌时才添加角色信息。因此,在 SAP 系统中用户的 SAP 角色更改后,SharePoint Server 中代表该用户的令牌中反映该信息可能有长达 24 小时的延迟。在这段延迟期间,该用户可能无权访问基于用户角色其应有权访问的一些数据、文档或网站。

由 Duet Enterprise 管理员和解决方案架构师决定保持良好 Duet Enterprise 性能和通过保持用户到角色的映射最新来提供对对象的必要访问权限之间的最佳权衡。一般来说,建议不要更改默认的 24 小时的缓存周期;通知最终用户对角色进行的更改可能需要两天时间才能传播到整个 SharePoint 系统。不过,如果保持角色信息最新对您的解决方案非常重要,可以使用 Windows PowerShell 配置角色缓存时间间隔。

Secure Store Service

Secure Store Service 安全地存储 SharePoint 凭据到外部系统所需凭据的映射。在 Duet Enterprise 中,只在部署期间使用 Secure Store Service,那时将使用 DuetConfig.exe 实用工具将代表 SAP 对象的 Microsoft Business Connectivity Services 导入到 SharePoint Server 中。

在导入 BDC 模型之前,Secure Store Service 的管理员必须通过生成加密密钥来初始化该服务。有关如何生成加密密钥的详细信息,请参阅配置 Secure Store Service (SharePoint Server 2010) (https://go.microsoft.com/fwlink/?linkid=205440&clcid=0x804) 的“生成新加密密钥”一节。

Business Data Connectivity Service

在 Duet Enterprise 中,Microsoft Business Connectivity Services 为 Microsoft SharePoint Server 和 SAP 环境之间的通信提供了桥梁。这允许用户连接到 SAP 对象(例如销售联系人、任务和客户)并与之交互。在 Microsoft Business Connectivity Services 元数据存储中为对象进行了建模,Microsoft Business Connectivity Services 中的权限将个人帐户、组帐户或声明与元数据存储中对象上的一个或多个权限级别相关联。有关如何在元数据存储中的模型、外部系统、外部内容类型、方法和方法实例上设置权限的详细信息,请参阅 Business Connectivity Services 安全性概述 (SharePoint Server 2010) (https://go.microsoft.com/fwlink/?linkid=205679&clcid=0x804)。

如使用 SAP 角色授予用户访问 SharePoint 对象的权限中所述,Duet Enterprise 提供了其他权限功能。SAP 角色可用于授予访问 SharePoint Server 中的对象的权限,并且可以使用 SAP 角色来保护 SharePoint Server 中可对其应用权限的任何对象。

可以使用 SAP 角色来帮助为 Microsoft Business Connectivity Services 中建模的 SAP 对象实现安全性。通过执行此操作,可帮助确保没有所需角色的用户无法访问与其职责无关的对象。例如,可以将定义客户的所有外部内容类型配置为仅由 SAP_SALES_REP 角色访问和操作。

警告

Duet Enterprise 中包括的一些模型具有特定的权限要求,无法使用角色来保护。例如,在 Duet Enterprise 角色同步中使用的 SAPRoles 模型中,必须为特殊组 All Authenticated Users 提供对 SAPRoles 模型中的外部内容类型的方法实例的执行权限。

User Profile Service

Duet Enterprise 用户及其角色与 SAP 系统同步并存储在 SharePoint Server User Profile Service 的配置文件存储中。在 DuetConfig 实用工具中启动 Duet Enterprise 和 SAP 系统之间的用户到角色映射的同步过程。在运行 DuetConfig 以启动此任务之前,运行 DuetConfig 的服务器场管理员必须拥有对 User Profile Service 的完全控制权限。

在一些 Duet Enterprise 部署中,一个 SharePoint 场中的集中式 User Profile Service 将为多个其他承载 Duet Enterprise 解决方案的 SharePoint 场提供角色同步。在这些“联合”配置中,使用集中式 User Profile Service 的每个服务器场中都将有 Security Token Service。若要使角色同步从使用集中式 User Profile Service 的服务器场运行,该服务器场的 Security Token Service 的应用程序池帐户必须具有对集中式 User Profile Service 的读取权限。

Office 客户端应用程序

Office 客户端应用程序中的 Duet Enterprise 身份验证需要与 SharePoint Server 中运行的 Security Token Service 交互。因此,在从 Office 客户端应用程序连接到外部 SAP 系统时,需要 Office 客户端应用程序和 SharePoint Server 之间的通信。因为 Duet Enterprise 使用 Windows 身份验证,所以 Office 客户端应用程序和 SharePoint Server 之间的通信可以使用 http:// 地址安全地实现。它们不需要 https:// 地址。

为支持 SharePoint Server 的脱机功能,还需要 Office 客户端应用程序和 SAP 系统之间的通信。(这些连接在提供对 SAP 系统中可用的外部数据的访问权限的模型中定义。)为帮助确保有关访问 SAP 系统的安全性,Office 客户端和 SAP 系统之间的通信应使用安全套接字层和 https:// 地址来实现。

报告传送

Duet Enterprise 报告功能将 SAP 报告生成功能与 SharePoint Server 文档管理功能组合在一起。它使最终用户能够从 SharePoint Server 网站中请求 SAP 报告。这些报告是在 SAP 系统上生成的,然后正确传送并存储在 SharePoint Server 文档库中,以便授权用户可以查看它们。基于 Duet Enterprise 的解决方案可以根据需要将报告集成到任意数量的网站中。特定 Web 应用程序中网站的所有报告都通过 OBAFileReceiver Web 服务传送到该 Web 应用程序的相应库中,该 Web 服务在配置用于报告功能的 Web 应用程序时连接到该 Web 应用程序。

配置报告 (https://go.microsoft.com/fwlink/?linkid=205681&clcid=0x804) 中所述,应通过将 Web 应用程序扩展到服务可以在其中安全运行的其他区域来配置任何 Web 应用程序宿主报告。此区域必须具有以下特征:

  • 必须使用安全套接字层 (SSL)

  • 必须使用声明身份验证

  • 必须使用 Windows 身份验证和基本身份验证

  • 必须绑定到 SAP 系统信任的证书

基于角色的权限

如使用 SAP 角色访问 SharePoint 对象中所述,Duet Enterprise 使用 Duet Enterprise 声明提供程序来帮助管理对 SharePoint Server 中的安全对象的基于角色的权限。在解决方案中使用声明提供程序时,它会增加执行特定操作所需的时间。为帮助实现 Duet Enterprise 声明提供程序的最高效性能,建议执行下列操作:

  1. 配置 Duet Enterprise 声明提供程序,以便默认情况下不使用它。在执行此操作时,与 Duet Enterprise 无关的 Web 应用程序不会查询 Duet Enterprise 声明提供程序。若要配置声明提供程序以便默认情况下不使用它,请使用以下 Windows PowerShell 脚本:

    $myClaimPrMgr = Get-SPClaimProviderManager
    $TCP = $myClaimPrMgr.GetClaimProvider("DuetEnterpriseClaimsProvider")
    $TCP.IsUsedByDefault = False
    $myClaimPrMgr.Update()
    
  2. 将 Duet Enterprise 声明提供程序与属于您的 Duet Enterprise 解决方案一部分的每个 Web 应用程序相关联。为此,请为属于您的解决方案一部分的每个 Web 应用程序使用以下 Windows PowerShell 脚本:

    $web = Get-SPWebApplication "http://WebApplication"
    $iis = $web.GetIisSettingsWithFallback([Microsoft.SharePoint.Administration.SPUrlZone]::Default)
    $iis.ClaimsProviders.Add("DuetEnterpriseClaimsProvider")
    $web.Update()
    

    在上一个示例脚本中,将“http://WebApplication”替换为 Web 应用程序的 URL。

    若要删除 Web 应用程序与 Duet Enterprise 声明提供程序的关联,请使用以下脚本:

    $web = Get-SPWebApplication "http://Webapplication"
    $iis = $web.GetIisSettingsWithFallback([Microsoft.SharePoint.Administration.SPUrlZone]::Default)
    $iis.ClaimsProviders.Remove("DuetEnterpriseClaimsProvider")
    $web.Update()
    

    在上一个示例脚本中,将“http://Webapplication”替换为 Web 应用程序的 URL。

重要

在 SAP NetWeaver 中,SharePoint 计时器作业域帐户应映射到有权查询用户角色分配的 SAP 用户。