业务连接服务(BCS)认证概念整理

I. BDC认证模型

BDC服务支持两种认证模型:信任的子系统,模拟和代理。

在信任的子系统模型中,中间层(通常是Web服务器)通过一个固定的身份来向后端服务器取得认证。选项信任的子系统模型一般基于如下的原因:

· 拥有和管理后端服务器的组向一个它们管理的账号赋予了访问权限;
· 它提供连接池;
· 它减少了后端服务器的许可(licensing)成本;
· 它相对简单。

在模拟和代理模型中,客户端代理了中间层的认证,即中间层模拟客户端以客户端的身份取得后端服务器的认证。选择此认证模型一般基于如下原因:

· 适应后端服务器对于每用户授权的需求;
· 满足后端服务器审计需要。

II. 适用于数据库及Web服务的BDC认证模式

在通过BDC连接数据库或Web服务系统时,可选用如下模式:

1. Pass-Through Authentication (Database and Web Service Systems)

Pass-through认证是操作系统将客户端的认证信息直接传递给后端服务器。BDC对数据库和Web服务连接均支持Pass-through模式。当使用Pass-through模式时,后端认证对象即登录用户。

当BDC通过Web页面访问时,它运行在Web前端服务器的IIS工作进程w3wp.exe上。这个进程的身份是IIS应用池账号,而非模拟登录用户执行服务请求的线程。为避免在DBC向后端服务器认证时丢失了登录用户身份,你必须在运行IIS的服务与其他计算机之间启用Kerberos代理。Kerberos代理可以保证接收服务器将认证请求发送到正确的位置。

当BDC被用来爬网时,它运行在过滤器守护进程mssdmn.exe中。为访问后端的内容源,在过滤器守护进程中的线程模拟与后端内容源关联的内容访问账号。

然而,在使用pass-through认证时,操作系统仅仅暴露用户名和密码。因此,如果一个公司使用两因子(two-factor)认证(也就是说,除了用户名和密码,用户还被要求一些指定的或私有的信息),pass-through认证将不能工作。

尽管有这些不足,但由于使用的简单性,在测试环境或目标服务器使用匿名认证的情况下,pass-through都一个很好的选择。

2. RevertToSelf Authentication (Database and Web Service Systems)

如果一个用户使用Windows认证登录,IIS将模拟那个特殊的账号。因此,当IIS以应用池身份运行时,它模拟登录用户;并且,在被传递出去之前,请求(request)以用户的模拟身份运行。

RevertToSelf(停止模拟)认证使得你从模拟认证复原到IIS应用池的底层配置账号。

3. WindowsCredentials (Database and Web Service Systems)

SharePoint Server 2010通过从它的缺省安全存储服务(SSS)获得的Windows凭据进行认证。

4. RdbCredentials (Database Systems Only)

在数据库凭据模式中,SharePoint Server 2010通过从它的缺省安全存储服务(SSS)获得的数据库凭据进行认证。SharePoint服务器将数据库凭据添加到连接串中,并将此凭据传输到数据库服务器。

5. Credentials (Web Service Systems Only)

SharePoint Server 2010通过使用凭据而非从缺省安全存储服务获得的Windows凭据对Web服务系统进行认证。根据Web服务服务器的配置,这些凭据被用作基本或摘要认证。因为基本和摘要认证没有充分地保护凭据,所以你应当使用SSL,IPsec或同时使用两者在Web服务服务器和运行BDC的服务器之间实现安全通信。

6. DigestCredentials (WCF Web Service Systems Only)

在摘要凭据认证模式下,SharePoint Server 2010使用缺省安全存储服务将用户凭据映射到凭据而非Windows认证所使用的凭据。映射的凭据被用作摘要认证。因为摘要认证没有充分地保护凭据,所以你应当使用SSL,IPsec或同时使用两者在WCF Web服务服务器和运行BDC的服务器之间实现安全通信。

总结:

认证模式

适用于

使用场景

PassThrough

Databases and Web services

· 通过一个单一盒(single-box)配置用于测试环境(数据库服务器和SharePoint服务器在同一台机器上)。
· 所处的域允许Kerberos代理。
· 目的服务器或Web服务使用匿名认证或SSL连接。

RevertToSelf

Databases and Web services

需要将模拟账户复原为IIS配置的底层账号来认证。

WindowsCredentials

Databases and Web services

如果数据库服务器或Web服务使用Windows认证。你需要为这种模式设置安全存储服务。

RdbCredentials

Database systems only

如果你的数据库服务器使用数据库凭据(比如,你的SQL Server服务器使用SQL Server认证而非Windows认证)。你需要为这种模式设置安全存储服务。

Credentials

Web service systems only

如果你的Web服务使用凭据而非Windows凭据。你需要为这种模式设置安全存储服务。

DigestCredentials

WCF Web service systems only

如果你的WCF Web服务使用凭据而非用于摘要认证的Windows凭据。你需要为这种模式设置安全存储服务。

III. 各认证模式所属的认证模型

模型(Pattern/Model)

PassThrough

RevertToSelf

凭据, 摘要凭据, 数据库凭据, Windows凭据 (安全存储个人应用)

凭据, 摘要凭据, 数据库凭据, Windows凭据 (安全存储组应用)

Trusted Subsystem

 

Yes

 

Yes

Impersonation and Delegation

Yes

 

Yes

 

参考:
http://msdn.microsoft.com/en-us/library/ms566523(v=office.14).aspx

IV. 身份验证模式 (外部内容类型 > 外部系统(数据源) > 数据库属性)

1. 用户标识

官方:BDC使用请求外部数据的SharePoint用户的标识来向数据源进行认证。

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

2. BDC标识(RevertToSelf)

官方:

补充:在新建的对话框中你不会看到“RevertToSelf”的选项,须按如下方式实现。首先,执行如下PowerShell脚本打开BCS的RevertToSelf开关:

$bdc = Get-SPServiceApplication | where {$_ -match "Business Data Connectivity"}
$bdc.RevertToSelfAllowed = $true
$bdc.Update()

然后,在创建数据连接时选择 “使用用户标识进行连接”。当连接建立好后,再选择功能区中的“编辑连接属性”,修改身份验证的方式为“BDC标识”。

3. 模拟(impersonated)Windows标识(identity)

官方:BDC将调用者的标识发送给安全存储服务(SSS)。SSS提供映射到调用者标识的Windows凭据。BDC使用映射的Windows凭据向数据源进行认证。

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

4. 模拟(impersonated)自定义标识(identity)

官方:BDC将调用者的标识发送给安全存储服务(SSS)。SSS提供映射到调用者标识的一套自定义凭据(比如表单认证用户名和密码)。BDC使用映射的自定义凭据向数据源进行认证。

补充:当安全存储服务(SSS)被选择作为访问外部数据源的认证用户,并且自定义账号被用于基于表单的认证(FBA)时,需要使用“通过模拟自定义标识连接”。

参考:
http://msdn.microsoft.com/en-us/library/ff798448.aspx
http://blogs.msdn.com/b/sridhara/archive/2010/03/10/bcs-and-external-list-learning-part2.aspx
http://www.cnblogs.com/Sunmoonfire/archive/2010/06/29/1767673.html
http://lightningtools.com/bcs/creating-an-external-content-type-with-sharepoint-designer-2013/

V. BDC访问权限与安全存储服务(SSS)模拟Windows凭据权限

在外部系统的身份验证模式为“模拟Windows标识”的情况下,用户从前端(SharePoint页面)请求外部列表数据,到返回列表数据会涉及到两种权限,一种是SharePoint用于对BDC元数据对象的访问权限,一种是模拟Windows凭据对数据源的访问权限。其中,模拟Windows凭据在“管理中心 > 管理服务应用程序 > Secure Storage Service”页面进行管理,如下图:

对BDC元数据对象的访问权限在“管理中心 > 管理服务应用程序 > Business Connectivity Service”页面配置,如下图:

也就是说,要保证外部列表有权限被读取,首先要保证当前SharePoint用户被授予BDC元数据对象的访问权限;其次要保证在SSS中添加的模拟Windows凭据对数据源有访问权限。

参考:
http://blogs.msdn.com/b/sridhara/archive/2010/01/27/setting-up-bcs-with-secure-store-application-impersonation.aspx

【知识点】业务连接服务(BCS)认证概念整理的更多相关文章

  1. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第13章节--使用业务连接服务创建业务线解决方式 SP Apps中的BCS

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第13章节--使用业务连接服务创建业务线解决方式  SP Apps中的BCS         之前的联系中,你安装了一个业 ...

  2. 微服务(Microservices)和服务网格(Service Mesh)架构概念整理

    注:文章内容为摘录性文字,自己阅读的一些笔记,方便日后查看. 微服务(Microservices) 在过去的 2016 年和 2017 年,微服务技术迅猛普及,和容器技术一起成为这两年中最吸引眼球的技 ...

  3. 【Spring Cloud & Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权

    一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证授权.鉴权的逻辑,结合 ...

  4. DNS,TCP,IP,HTTP,socket,Servlet概念整理

    DNS,TCP,IP,HTTP,socket,Servlet概念整理   常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正.   D ...

  5. 170122、Netty 长连接服务

    推送服务 还记得一年半前,做的一个项目需要用到 Android 推送服务.和 iOS 不同,Android 生态中没有统一的推送服务.Google 虽然有 Google Cloud Messaging ...

  6. Netty 长连接服务

    转自:https://www.dozer.cc/2014/12/netty-long-connection.html 推送服务 还记得一年半前,做的一个项目需要用到 Android 推送服务.和 iO ...

  7. 阿里云:面向5G时代的物联网无线连接服务

    在4月24日落幕的2019中国联通合作伙伴大会“5G+物联网(IoT)论坛”上,阿里云高级运营专家李茁出席圆桌对话,分享了5G时代物联网如何更好地推动行业完成生产.管理和商业模式的创新,阿里云又会以何 ...

  8. 服务网格istio概念应知应会

    一.背景 最近架构组基于istio开发了服务网格(Service Mesh)平台,借此机会把相关的背景知识做一次学习和记录,方便回头查看. 初版的效果: 二.istio 官方手册:https://is ...

  9. Java面试必会-微服务权限认证

    微服务身份认证方案 1. 单点登录(SSO) 这种方案意味着每个面向用户的服务都必须与认证服务交互,这会产生大量非常琐碎的网络流量和重复的工作,当动辄数十个微应用时,这种方案的弊端会更加明显. 2. ...

随机推荐

  1. Java 设计模式泛谈&装饰者模式和单例模式

    设计模式(Design Pattern) 1.是一套被反复使用.多人知晓的,经过分类编目 的 代码设计经验总结.使用设计模式是为了可重用代码,让代码更容易维护以及扩展. 2.简单的讲:所谓模式就是得到 ...

  2. My Game --背景

    在GitHub MyGame clone 代码,添加到配置并新建好的工程中运行下来就可以看到这个画面: 中间的小点是显示的当前触摸点,本文暂不讨论.图中的蓝天是蓝色的 LayerColor this- ...

  3. scp不可用:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! After doing ssh are you seeing this error.No proble ...

  4. debug实战:Unmanaged High Memory非托管高内存

    最近又监控到一个高内存的问题,周五下班把系统打开,周末2天没关,周一来看已经涨到5.2G,这次与以往不同,不是.net的内存泄漏,而是非托管引起的. 1. 抓dump,确定高内存的类型 //dump有 ...

  5. Appium移动自动化测试(一)--安装Appium

    Appium 自动化测试是很早之前就想学习和研究的技术了,可是一直抽不出一块完整的时间来做这件事儿.现在终于有了. 反观各种互联网的招聘移动测试成了主流,如果再不去学习移动自动化测试技术将会被淘汰. ...

  6. 【C语言学习】-06 函数

    函数分类.函数声明和定义.函数调用,形参实参.函数嵌套调用

  7. Hadoop 2.2.0 4结点集群安装 非HA

    总体介绍 虚拟机4台,分布在1个物理机上,配置基于hadoop的集群中包括4个节点: 1个 Master, 3个 Salve,i p分布为: 10.10.96.33 hadoop1 (Master) ...

  8. Linux内核分析——操作系统是如何工作的

    万子惠 + 原创作品转载请注明出处 + <Linux内核分析> 实验部分 使用实验楼的虚拟机打开shell 然后cd mykernel 您可以看到qemu窗口输出的内容的代码mymain. ...

  9. url中的百分号转译

    有一次发现自己输入的url中含有中文的时候,他会转化为%XXXX的格式. 于是想怎么把他给转换回去,于是使用了urllib库 #-*-coding:utf8 -*- import urllib url ...

  10. Map/Reduce 工作机制分析 --- 数据的流向分析

    前言 在MapReduce程序中,待处理的数据最开始是放在HDFS上的,这点无异议. 接下来,数据被会被送往一个个Map节点中去,这也无异议. 下面问题来了:数据在被Map节点处理完后,再何去何从呢? ...