BCS(Business Connectivity Services)是SharePoint 2010中用于替换原先Microsoft Office SharePoint Server 2007企业版的业务数据目录(Business Data Catalog ,简称BDC)的一项新服务。 BCS相比BDC而言有许多改进,包括回写到数据源的功能,通过类似SharePoint Workspace的Office套件提供脱机功能,增强的工具集以及外部列表等等。

在这篇文章中我们将探讨BCS认证的相关内容,包括你可能会遇到的一些问题,以及克服或解决其中的一些问题的若干方法。

谈到连接后端数据源进行认证,通常不外乎有两种身份验证的类型:用户身份标识和模拟用户权限提升。用户身份标识就是指我们登录网站实所使用的用户标识,直接把它传递给数据源,并返回数据到 SharePoint。用户会根据自身身份标识的不同看到基于该用户身份的内容;模拟用户权限提升时,用户登录时使用他们自己的凭据,但连接数据源时使用另一个用户的凭据,通过模拟其他有权限访问数据源的用户来获取数据。两者各有优缺点。

企业希望将用户的身份传递给数据源,这是一个很普遍的需求。 这种直接传递往往在开发环境中运行良好,可一旦迁移到生产环境就会遭遇失败。究其原因就是众所周知的双跃点问题(Double Hop Issue)。  双跃点问题在BDC时代就已经存在了,BCS中仍然存在该问题。这与其说是一个SharePoint的问题,倒不如说是浏览器/ IIS的问题。当我们通过直通(PassThrough)方式连接到数据源时, Windows身份验证的用户安全令牌只能进行一次跳跃。就是从浏览器到IIS的一跳。在一个开发环境,通常数据库服务器安装在与IIS同一台物理机器上,因此一跳就可以满足要求了。然而,在生产环境中,通常很难碰到只有一台机器的情况,因此凭据传递必须从浏览器到IIS再到SQL。用户因为这两次跳跃从而无法通过验证。

在仍然要保证用户身份的前提下,双跃点问题的一种解决方法是,配置我们的环境使用Kerberos认证。 如果你目前的配置架构中并没有使用Kerberos,想要突然改变一切,让用户都使用Kerberos进行SharePoint身份认证是很困难的,而且也很难得到你的管理员认可。Kerberos身份验证可以通过设置服务器间(比如IIS和SQL)的信任关系来避免双跃点问题。验证合格的凭证,会在IIS服务器上被续签(renew),进而继续用于SQL服务器。

如果传递用户身份对你来说并不重要,那么你可以使用模拟用户的方式进行数据源认证,从而克服双跃点问题。Business Connectivity Services认证中的一个选项是“RevertToSelf”。 当选择RevertToSelf时并不会以用户身份,而是使用了进程帐户(也就是BCS运行时服务所用的帐户)身份进行数据源验证。这也就是意味着,每个SharePoint用户无论其身份如何,都将使用相同的帐户连接到数据源。这听起来像一个安全问题,但实际上这种方式工作的非常好。因为你还可以在SharePoint级别上为每个用户或组指定权限。 比如你可以在SharePoint中指定执行功和写回的权限。这样就可以弥补安全方面的问题。这种方式确实可以称为最佳实践了。因为你可以在SQL里分配每个表,视图,存储过程的权限,然后将定制好的SQL权限直接分配到某个 SharePoint用户帐户。

Business Connectivity Services认证支持的另一种方法是使用安全存储服务(Secure Store Services ,简称SSS)。安全存储服务(SSS)是SharePoint 2007中的单点登录(Single Sign On ,简称SSO)的升级换代。 SSS为我们提供了一个选择,可以将凭据存储在安全存储数据库(驻留于SharePoint服务器)中。然后,凭据以“用户到用户”或“域组到用户”的方式进行映射。这样凭据就可以在SharePoint服务器上进行续签(renew)。 有关SSS 我们会单独在一篇博文中进行讨论。

我们无法做到真正推荐一种BCS认证机制可以用于所有的组织机构或企业公司。因为每个组织都有自己不同的环境配置和管理策略,因此只能提供若干种选择。

在SharePoint Designer 2010里,连接到SQL Server时界面提供了下列认证的选项:

  • 使用用户标识进行连接
  • 使用模拟Windows标识进行连接
  • 使用模拟自定义标识进行连接

以上我们介绍了BCS身份验证的类型。接下来我们将深入到每一种认证类型的细节,看一下具体如何在SharePoint Designer 2010中设置PassThrough 和 RevertToSelf身份验证模式。

首先介绍一下界面上的这些选择项:

用户标识

使用用户标识进行连接,其实就是曾在BDC认证中用过的名为直通(PassThrough)的验证方式。这意味着,Windows身份验证的用户安全令牌将被从浏览器传递给IIS,然后再传递到SQL。这个种方式在开发环境中往往没问题,但是部署到生产环境可能会遇到上面谈到的双跃点问题。

模拟Windows标识

剩下的两个选项都是指向安全存储服务(SSS)。SSS将会在接下来的博文中进行全面解释。 SSS允许我们通过Windows用户,或者某个自定义账户,比如一个联盟的SAML用户帐户进行数据源连接。

RevertToSelf

在上面的对话框中你不会看到“RevertToSelf”的选项。要配置RevertToSelf时,首先要选择 “使用用户标识进行连接”,然后点确定。当连接建立好后,再选择功能区中的“编辑连接属性”,修改身份验证的方式,如下图所示。

这里可以选择是用用户标识(PassThrough)还是BDC标识(RevertToSelf)进行连接。你要确保相应的标识对数据源具有读写权限。如果选择了SSS,你还要进行一些额外的配置步骤。

在接下来的博文中,我们将描述如何在SharePoint 2010中配置安全存储服务(SSS)。

参考资料

Business Connectivity Services Authentication

business connectivity services passthrough & reverttoself

转载于:https://www.cnblogs.com/Sunmoonfire/archive/2010/06/29/1767673.html

SharePoint 2010 中的BCS身份验证模式相关推荐

  1. 在 SharePoint 2010 中访问数据

    数据访问的关键方法有哪些? | 使用查询类 | 使用 SPQuery | 使用 SPSiteDataQuery | 使用 LINQ to SharePoint | LINQ to SharePoint ...

  2. 如何改变SQL SERVER的身份验证模式

    2007年07月09日 星期一 上午 10:10 1.点击"开始"-"运行",输入regedit,回车进入注册表编辑器       2.依次展开注册表项,浏览到 ...

  3. 如何修改SQL Server 2000身份验证模式和系统管理员

    大家安装SQL Server 2000时,很多人都习惯性的一路下一步,最后就会以windows身份验证作为登录数据库服务器的方式,假如有一天你后悔了,想以sql server的验证方式登陆,那怎么办呢 ...

  4. VSTO学习笔记(四)从SharePoint 2010中下载文件

    原文:VSTO学习笔记(四)从SharePoint 2010中下载文件 上一次我们开发了一个简单的64位COM加载项,虽然功能很简单,但是包括了开发一个64位COM加载项的大部分过程.本次我们来给CO ...

  5. 如何更改SQL Server 2005的身份验证模式

    安装MS SQL Server 2005时,缺省为Windows身份验证模式,刚开始不知道怎么修改为SQL Server和Windows混合身份验证模式,只好重装,然后选择为混合模式,后来发现,原来装 ...

  6. SQL Server 2005的身份验证模式修改步骤

    安装MS SQL Server 2005时,缺省为Windows身份验证模式,刚开始不知道怎么修改为SQL Server和Windows混合身份验证模式,只好重装,然后选择为混合模式,后来发现,原来装 ...

  7. 设置SQLSERVER的混合身份验证模式(SA账号)

    设置SQLSERVER的混合身份验证模式(SA账号) 2010-10-01 01:07:12|  分类: SqlServer|举报|字号 订阅 安装SQLSERVER的时候,没有设置混合验证模式,只用 ...

  8. SharePoint 2010中的客户端AJAX应用——ASP.NET AJAX模板

    WCF Data Services是SharePoint 2010中一个极具吸引力的新特性.然而,因为它的强大,直接对其进行编程仍然会有点痛苦.幸运的是,一个新的相关技术 -- ASP.Net AJA ...

  9. Introducing Document Management in SharePoint 2010 介绍SharePoint 2010中的文档管理

    Introducing Document Management in SharePoint 2010 介绍SharePoint 2010中的文档管理 This time I want to talk ...

最新文章

  1. 【廖雪峰python入门笔记】if语句
  2. 推荐一位玩自动化的 Python 爱好者
  3. 重构风险程序员一定要遵守的规则
  4. 目标还是中国人,纽约智慧城市项目想通过EB-5募资10亿
  5. Transformer t2t vit
  6. synchronized不能锁静态变量_多线程编程不可错过——彻底理解synchronized
  7. VTK:定向字形用法实战
  8. SQL Server 关于列的权限控制
  9. EditPlus构建轻量级编译环境
  10. 拯救者r7000怎么关闭触控板_联想拯救者R7000(2020版)上手体验,有没有AMD Yes?
  11. latex 子图_MATLAB学习笔记4:如何优雅地控制子图
  12. java 缓存行填充_缓存伪共享问题以及解决方案缓存行填充
  13. 大数据_Hbase-(概念补充_hbase中namespace的概念)---Hbase工作笔记0007
  14. kafka是什么_Kafka为什么快到根本停不下来?
  15. Windows XP Home Edition安裝 IIS 的方法
  16. 为什么Word字间距异常的大?怎么修正排版?
  17. c语言:输入三角形的三边,判断是否是直角三角形
  18. JAVA利用第三方平台发送短信验证码
  19. wps的linux文字显示模糊,WPS字体模糊不清晰怎么回事
  20. C语言实现过滤ASCII在0~127范围内的字符,并去除重复的字符

热门文章

  1. (2021年)IT技术分享社区个人文章汇总(数据库篇)
  2. 计算机网络基础:网络标准相关知识介绍
  3. 重磅!GitHub官方App官宣发布了
  4. 28家知名IT公司名称的由来
  5. 语音媒体和信令的测试软件,IP多媒体子系统信令分析工具的设计与实现
  6. JavaScript 第三课 DOM
  7. 源码编译安装Nginx
  8. 远程控制工具_不要让您的工具控制您
  9. swiftui_SwiftUI的混合包
  10. 字节面试官:如何实现Ajax并发请求控制