Business Connectivity Services 的标识委派 (SharePoint Server 2010)
适用于: SharePoint Server 2010
上一次修改主题: 2016-11-30
在本方案中,您将 Business Data Connectivity Service 应用程序配置为使用 Kerberos 约束委派向 SQL Server 进行身份验证。配置后,创建新的外部内容类型和外部列表来测试 SharePoint 网站中的身份验证和读取操作。
在本方案中,SharePoint Server 服务器场和 BCS 数据源位于同一域中。因此,我们将配置 Kerberos 约束委派以允许将标识委派给后端数据源。如果您需要向同一林内的其他域中的数据源进行身份验证,则必须配置基本(非约束)Kerberos 委派。请注意,BCS 没有利用 C2WTS;因此您可以使用基本委派。
备注
如果要在 Windows Server 2008 上安装,可能必须为 Kerberos 身份验证安装以下修补程序:
使用 AES 算法时,运行 Windows Server 2008 或 Windows Vista 的计算机上的 Kerberos 身份验证失败,并出现错误代码 0X80090302 或 0x8009030f (https://support.microsoft.com/kb/969083/zh-cn)
方案依赖关系
若要完成本方案,您必须已完成以下方案:
方案 1:核心配置
配置清单
配置区域 | 说明 |
---|---|
Active Directory 配置 |
创建 BCS 应用程序服务帐户 验证服务主体名称 配置委派 |
SharePoint Server 配置 |
启动 BCS 服务实例 创建 BCS 服务应用程序 |
验证 |
创建 BCS 外部内容类型 配置 BCS 安全性 创建 BCS 外部列表 在浏览器中打开外部列表 |
方案的环境详细信息
分步配置说明
Active Directory 配置
创建 BCS 应用程序服务帐户
作为最佳实践,Business Connectivity Services 应使用自己的域标识运行。若要配置 BCS 应用程序,必须创建 Active Directory 帐户。在本例中,创建了以下帐户:
SharePoint Server 服务 | IIS 应用程序池标识 |
---|---|
Business Connectivity Service |
vmlab\svcBDC |
验证服务主体名称
在 SharePoint 网站中使用 BCS 数据时,BCS 外部内容类型运行在使用 ECT 类型的 IIS 应用程序池的上下文中。若要 BCS 与外部数据源连接并使用 Kerberos 身份验证向其进行身份验证,IIS 应用程序池服务帐户和外部数据源的服务帐户必须配置了服务主体名称。请参阅本文档中的方案 1 和 2 来配置和验证 Web 应用程序上的必需 SPN 及 SQL Server 服务帐户。
配置委派
若要允许 BCS 委派客户端的标识,必须配置 Kerberos 委派。虽然从技术上讲不需要约束委派(例如 Excel Services,可以对 BCS 使用非约束委派),但最好限制允许服务执行的委派范围,因此将在本例中配置约束委派。
承载运行 ECT 的网站的每个 IIS 应用程序池服务帐户都必须配置为允许委派给后端服务。
在本例中,需要以下委派路径:
主体类型 | 主体名称 | 委派给服务 |
---|---|---|
用户 |
svcPortal10App |
MSSQLSVC/MySqlCluster.vmlab.local:1433 |
用户 |
svcTeams10App |
MSSQLSVC/MySqlCluster.vmlab.local:1433 |
配置约束委派
在“Active Directory 用户和计算机”中打开 Active Directory 对象的属性。
导航到“委派”选项卡。
SP2010 Kerberos Guide228.gif
选择“仅信任此用户作为指定服务的委派”。
备注
如果您需要 BCS 向位于同一林中但不在 SharePoint Server 所在域中的数据源进行身份验证,则需要选择“信任此计算机来委派任何服务”来配置基本委派而非约束委派。BCS 外部内容类型将在 Web 应用程序的 IIS 工作进程中执行,并且不利用 C2WTS。请注意,无法执行跨林 Kerberos 委派。
单击“添加”按钮选择允许委派给的服务主体。
选择“用户和计算机”。
选择运行您希望委派给的服务的服务帐户。在本例中,它是 SQL Server 服务的服务帐户。
备注
所选的服务帐户必须已应用 SPN。在本例中,此帐户的 SPN 是在之前的方案中配置的。
单击“确定”。
选择要委派的 SPN,然后单击“确定”。
选择 SQL Server 群集的服务,然后单击“确定”。
现在,应该会在“可以由此帐户提供委派凭据的服务”列表中看到所选的 SPN。
对本节前面提到的每个委派路径重复这些步骤。
验证在 SQL Server 上运行服务的服务帐户的 MSSQLSVC SPN(在方案 2 中执行)
使用以下 SetSPN 命令,验证 Analysis Services 服务帐户 (vmlab\svcSQL) 的 SPN 是否存在:
SetSPN -L vmlab\svcSQL
应看到以下内容:
MSSQLSVC/MySqlCluster
MSSQLSVC/MySqlCluster.vmlab.local:1433
SharePoint Server 配置
启动 BCS 服务实例
在创建 BCS 服务应用程序之前,启动指定的场服务器上的 BCS 服务。
打开管理中心。
在“服务”下,选择“管理服务器上的服务”。
在右上角的服务器选择框中,选择运行 Excel Services 的服务器。在此示例中为 VMSP10APP01。
启动“Business Data Connectivity Service”服务。
创建 BCS 服务应用程序
接下来,配置新的 BDC 服务应用程序和应用程序代理以允许 Web 应用程序使用 BDC 服务:
打开管理中心。
选择“应用程序管理”下的“管理服务应用程序”。
选择“新建”,然后选择“Business Data Connectivity Service”。
配置新服务应用程序。确保选择了正确的服务帐户(如果 BDC 服务帐户不在列表中,则创建一个新的托管帐户)。
验证
创建 BCS 外部内容类型
若要通过 BDC 访问外部数据,必须创建 BDC 外部内容类型。在本例中,我们将使用 SharePoint Designer 2010 在门户 Web 应用程序 (http://portal) 中创建外部内容类型:
打开 SharePoint Designer 2010。
打开 http://portal 中的测试网站集。
在左侧导航中,单击“外部内容类型”。
选择页面左上角的功能区的“新建”部分的“外部内容类型”。
为外部内容类型提供显示名称。
然后选择“单击此处发现外部数据源并定义操作”。
单击“添加连接”。
从“数据源类型”下拉列表中选择“SQL Server”并添加信息以连接到测试数据库。确保选择了“使用用户标识进行连接”以测试委派。
扩展新连接。右键单击测试表(“销售”)并选择“创建所有操作”。
您应该看到一条说明没有定义唯一标识符的错误。选择标识符列并选中“映射到标识符”复选框。单击“完成”接受默认选项并创建 ECT 操作。
单击“保存”(Ctrl+S)。这会将 ECT 发布到 BDC 服务应用程序元数据存储中。
配置 BCS 安全性
必须配置 BCS 权限,客户端才能使用门户 Web 应用程序中的 BCS 外部内容类型。BCS 支持粒度权限模型,但为了完成本演示,我们将在元数据存储级别上配置安全性,并将安全更改传播到存储中的所有对象。
打开管理中心。
选择“应用程序管理”下的“管理服务应用程序”。
单击新服务应用程序(在本例中为“Business Data Services”)的链接。
选择“设置元数据存储权限”。
在本例中,我们配置了具有所有权限的企业管理员和具有除“设置权限”权限以外的所有其他权限的所有验证用户。
确保选中“传播权限”复选框,然后单击“确定”以保存更改。
创建 BCS 外部列表
为了测试外部内容类型,我们将配置外部列表以便在门户应用程序中显示外部数据:
打开 SharePoint Designer 2010。
打开 http://portal 中的测试网站集。
选择左侧的“外部内容类型”。
单击您在前面创建的内容类型。
在功能区中,单击“创建列表和表单”。
如果提示您保存外部内容类型,请单击“是”。
在“创建列表和表单”对话框上的“列表名称”文本框中键入列表名称,然后单击“确定”。
在浏览器中打开外部列表
打开 SharePoint Designer 2010。
打开 http://portal 中的测试网站集。
单击左侧导航中的“列表和库”。
在“列表和库”列表的底部选择外部列表。
单击“在浏览器中预览”按钮。
Internet Explorer 将打开并显示选定网站和外部列表。
验证外部数据是否正确显示。若要进一步验证连接,请在 SQL Server Management Studio 中更改源数据,然后刷新浏览器页面。您应看到浏览器中反映了数据更改。