在 SharePoint Server 中规划 Business Connectivity Services 解决方案
适用于:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
Microsoft Business Connectivity Services 解决方案将外部数据深入集成到 SharePoint Server 和 Office 中。 每个 Business Connectivity Services 解决方案都是使用 Visual Studio 自定义生成的。 没有现成的 Business Connectivity Services 配置或模板可供使用。
本文将帮助解决在开始设计 Business Connectivity Services 解决方案之前必须先回答的五个问题。 请务必收集此类所有信息并与所有主要利益干系人就其进行沟通以得到审阅及批准。 执行此操作时,你将帮助确保参与的每个人都对项目的需求以及解决方案的工作方式有相同的了解。
数据在什么位置?
规划 Business Connectivity Services 解决方案的第一步是了解您需要的外部数据的位置。 您需要从三个角度来了解此信息。
你需要知道谁对外部数据源负有日常管理责任。 这是你需要使用的组,以帮助设置与外部数据的连接。 他们将能够告诉你数据如何可供外部使用,如何保护数据,等等。 您可能需要这些信息来在外部系统中创建可供您使用的凭据。 请准备好回答他们有关您的 Business Connectivity Services 解决方案对其数据和外部系统的影响的问题。
网络注意事项
还需要注意外部数据源相对于 Business Connectivity Services 和用户所在的网络的位置。 为帮助搞清楚这一点,需要绘制出网络上的三个组件的关系图,并查看它们的位置。 例如,可以查看它们是否全部位于内部网络和防火墙内部。 或者,可以查看 Business Connectivity Services 基础结构和外部数据源是否被防火墙或边界网络隔开,以及它们是否位于完全独立的网络中。 以下是一些可用于指导设计的基本规则:
如果外部数据源位于网络外部,例如位于 Internet 上,则 Business Connectivity Services 将需要通过公司防火墙与外部数据源进行通信,而你则需要对该流量加以规划。
了解用户将从哪个位置访问 Business Connectivity Services 解决方案。 请务必考虑客户端与 Business Connectivity Services 解决方案之间的数据通信是否需要加密以及底层网络基础结构是否能够支持额外的负载。 还应确保浏览器和 Office 客户端支持解决方案提供的功能。
数据的呈现方式是什么?
Business Connectivity Services 解决方案可以通过 OData、SQL Server、Windows Communication Foundation (WCF) 服务和 .NET 程序集连接到外部数据源。 您需要知道(可从外部系统管理员那里了解此信息)如何呈现数据才能使其供外部使用。 外部数据的显示方式决定了你将使用哪些开发工具来创建外部内容类型。 下表显示了基于外部数据源要使用的工具。
保护数据的方式是什么?
Business Connectivity Services 处理对自身和外部系统之间通信的身份验证。 基本上,Business Connectivity Services 向外部系统提供允许外部系统进行身份验证的信息, (确定是否是你所说的你) 请求,然后授权访问外部系统中的数据。 Business Connectivity Services 支持多种身份验证类型。
对于 Business Connectivity Services 解决方案设计,您必须知道外部系统所需的身份验证机制。 这样,你将了解如何配置 Business Connectivity Services,以便它以外部系统所需的方式显示身份验证信息。 Business Connectivity Services 支持三种身份验证模式:
基于凭据的身份验证 在基于凭据的身份验证模式中,凭据从 Business Connectivity Services 传递到外部系统。 凭据是用户名和某些形式密码的组合。 Business Connectivity Services 有很多执行此操作的方法,包括传递登录用户的凭据、传递发出请求的服务的凭据,或将登录用户的凭据映射到外部系统识别的其他凭据集。
基于声明的身份验证 在某些身份验证方案中,外部系统不会直接接受来自 Business Connectivity Services 的凭据。 但是,外部系统会接受来自其信任的第三方身份验证服务的凭据。 该第三方身份验证服务(安全令牌提供程序)接受有关请求者的分组信息(称为断言)。 整个分组称为声明,声明可以包含有关请求者的详细信息,而不仅仅是用户名和密码。 例如,声明可以包含有关请求者的元数据,如请求者的电子邮件地址或请求者所属的安全组。 第三方身份验证服务基于声明中的断言执行请求者身份验证和创建安全令牌以供请求者使用。 然后,请求者(Business Connectivity Services)将安全令牌呈现给外部系统,外部系统查看已授权请求者访问的数据。
自定义身份验证 如果你使用的外部系统不支持基于凭据或基于声明的身份验证,则必须开发、测试并实现自定义解决方案,该解决方案采用 Business Connectivity Services 可以生成的凭据并将其转换为外部系统接受的格式。 您可以对受 OAuth 或自定义 ASP.NET HTTP 模块保护且位于本地的 OData 数据源实施自定义身份验证解决方案。
将如何使用数据?
作为要求收集的一部分,需要从业务利益干系人那里了解他们需要解决方案完成哪些工作以及他们需要用户如何与解决方案进行交互。 他们可能需要用户通过外部列表、外部 Web 部件和 Office 应用与 SharePoint Server 中的数据进行交互。 或者,他们可能需要解决方案来通过 Office 应用和 SharePoint 应用程序显示数据。 有关 Office 和 SharePoint 应用程序的详细信息,请参阅 (Old) SharePoint 2016 应用程序概述。 或者,解决方案可能需要浏览器、客户端和应用程序的一些其他组合来访问外部数据。
用户访问数据的方式会影响业务连接服务用于访问外部数据的外部内容类型的范围。 如果 Business Connectivity Services 解决方案需要 Office 和 SharePoint 相关应用程序应用程序,则必须将外部内容类型的范围指向该应用程序。 如果 Business Connectivity Services 解决方案不使用 Office 和 SharePoint 应用程序来访问外部数据,则外部内容类型的范围必须限定为 Business Data Connectivity 服务应用程序。
Business Connectivity Services 范围内的外部内容类型集中存储在 BDC 元数据存储中,并且由服务器场管理员管理他们的安全。 可以将这些外部内容类型与多个 Business Connectivity Services Web 应用程序共享。
Office 和 SharePoint 相关应用程序 范围内的外部内容类型以 XML 文件的形式存储在 Office 和 SharePoint 相关应用程序应用程序本身中。 外部内容类型不能供任何其他 Office 和 SharePoint 相关应用程序应用程序使用。
连接设置对象只能与 OData 数据源一起使用。 这些对象中包含连接信息,如呈现外部数据的服务的服务地址、要使用的身份验证类型、面向 Internet 的 URL 和任何所需证书的名称。 连接设置对象是独立于外部内容类型的单独对象。 当 Business Connectivity Services 解决方案需要连接到外部系统时,它会使用连接设置对象中的信息。 如果外部内容类型开发人员在开发外部内容类型时不知道所需连接信息或无权访问这些连接信息,则您通常可以选择定义独立于外部内容类型的连接信息。 应用程序范围内的外部内容类型和服务范围内的外部内容类型均可使用连接设置对象。 连接设置对象可由多个 Business Connectivity Services 解决方案使用。 每个解决方案均须授予使用连接设置对象的权限。
如何向解决方案分配权限?
在每个 Business Connectivity Services 解决方案中,必须规划哪些人员对哪些对象具有哪些权限。 即,如何以正确地方式向相应用户授予对解决方案的访问权限,以及如何限制其访问权限。 您必须与外部系统管理员和 SharePoint Server 场管理员、网站集管理员和网站管理员协作才能配置权限。 但在最基本的级别中,必须在规划期间考虑以下事项。
以下是每个 Business Connectivity Services 解决方案所涉及的三个基本角色:
管理角色 这些角色负责管理对外部系统的权限、创建和管理 Business Data Connectivity Service 应用程序、将 Business Data Connectivity (BDC) 模型导入 BDC 元数据存储以及管理对 BDC 元数据存储和其中所有对象的权限。 如果 SharePoint 相关应用程序使用的是 Business Connectivity Services,则 SharePoint Server 场管理员也会参与发布应用程序以及创建和管理连接对象。 通常,这些职责由 SharePoint Server 场管理员、外部系统管理员和被委派管理权限的任何人来承担。
开发人员或设计人员角色 这些角色负责创建外部内容类型、BDC 模型和使用 Business Connectivity Services 的 SharePoint 相关应用程序。 他们主要负责了解对解决方案的所有业务需求。
用户角色 具有这些角色的人员使用和处理 Business Connectivity Services 解决方案中的外部数据。 在您的解决方案中有多个用户角色,每个用户拥有不同级别的权限。 例如,在使用 Business Connectivity Services 将外部信息集成到解决方案的支持票证系统方案中,第一层技术支持人员可能仅有权在票证上读取和启动工作流,而第二层和第三层技术人员则能够更新票证。
每个 Business Connectivity Services 解决方案还有四个主要方面,你将管理其权限:
外部系统 每个外部系统都有用于执行身份验证和授权的方法。 (有关详细信息,请参阅本文前面的 数据是如何保护的? ) 你需要与外部系统管理员协作,以确定如何根据最小特权原则向解决方案用户授予访问权限。 通常,你将将一组用户从 Business Connectivity Services 端映射到外部系统端的单个帐户,并使用单个外部系统帐户来限制访问。 另一种方法是在每个系统上的单个帐户之间执行 1:1 映射。 在任一情况下,除非外部系统可以直接接受用户向 SharePoint Server 进行身份验证的凭据,否则您需要使用 安全存储服务。 有关 Business Connectivity Services 支持的身份验证模型的更深入信息,请参阅 Business Connectivity Services 安全概述 (SharePoint 2010) 。
Business Connectivity Services 集中基础结构 在 管理中心中,管理对 BDC 元数据存储的权限分配。 在 BDC 元数据存储中,管理 BDC 模型、外部系统和外部内容类型。 必须向所有要使用 Business Connectivity Services 解决方案的用户分配在外部内容类型上的执行权限。 下表提供了功能、权限和对象的详细映射。
BDC 元数据存储 这是一个 SQL Server 数据库,用于存储模型定义、外部内容类型和外部系统定义。
表:对 BDC 元数据存储映射权限
允许用户或组... | 向他们授予以下权限... | 上。。。 |
---|---|---|
通过传播对 BDC 元数据存储中包含的任意对象设置权限 | SetPermissions | BDC 元数据存储 |
模型 模型是一个 XML 文件,其中包含一个或多个外部内容类型、相关外部系统以及特定于环境的信息(如身份验证属性)的说明集。
表:映射模型上的权限
允许用户或组... | 向他们授予以下权限... | 上。。。 |
---|---|---|
新建模型 | 编辑 | BDC 元数据存储 |
编辑模型 | 编辑 | 模型 |
对模型设置权限 | SetPermissions | 模型 |
导入模型 | 编辑 | BDC 元数据存储 |
导出模型 | 编辑 | 模型和模型中的所有外部系统 |
BDC 元数据存储中的外部系统 外部系统是可建模的受支持数据源的元数据定义,例如数据库、Web 服务或 .NET 连接程序集。
表:对 BDC 元数据存储中的外部系统映射权限
允许用户或组... | 向他们授予以下权限... | 上。。。 |
---|---|---|
新建外部系统 | 编辑 | BDC 元数据存储 |
编辑外部系统 | 编辑 | 外部系统对象 |
对外部系统设置权限 | SetPermissions | 外部系统对象 |
外部内容类型 外部内容类型是元数据的可重用集合,用于定义来自一个或多个外部系统的一组数据、针对该数据可用的操作以及与该数据相关的连接信息。
表:对外部内容类型映射权限
允许用户或组... | 向他们授予以下权限... | 上。。。 |
---|---|---|
新建外部内容类型 | 编辑 | 外部系统 |
对外部内容类型执行操作 | 执行 | 外部内容类型(操作方法实例) |
创建外部内容类型的列表 | 在客户端中可选 | 外部内容类型 |
对外部内容类型设置权限 | SetPermissions | 外部内容类型 |
方法 业务数据连接方法是业务连接服务如何与外部数据源交互的 XML 定义。
表:对方法映射权限
允许用户或组... | 向他们授予以下权限... | 上。。。 |
---|---|---|
编辑方法 | 编辑 | 方法 |
对方法设置权限 | SetPermissions | 方法 |
方法实例 方法实例介绍(针对特殊方法)如何通过一组特定的默认值使用方法。
表:对方法实例映射权限
允许用户或组... | 向他们授予以下权限... | 上。。。 |
---|---|---|
编辑方法实例 | 编辑 | 方法实例 |
执行方法实例 | 执行 | 方法实例 |
对方法实例设置权限 | SetPermissions | 方法实例 |
开发环境 在开发 Business Connectivity Services 解决方案(包括外部内容类型以及任何 SharePoint 应用和连接设置对象)时,最佳做法是使用独立于生产环境的开发环境。 在开发环境中,可以授予开发人员高于通常在生产环境中授予的级别的权限。
用户环境 将通过外部列表、外部数据列、业务数据 Web 部件、SharePoint 相关应用程序或 Office 来访问所有外部数据。 对于 SharePoint 相关应用程序,可以选择让 Office 和 SharePoint 相关应用程序强制实施权限。 在此情况下,如果用户可以访问 Office 和 SharePoint 相关应用程序,则他们就可以访问 Office 和 SharePoint 相关应用程序中呈现的所有外部数据。 你必须与网站和网站集管理员协作,以规划和实现对解决方案中外部数据的权限。