【知识点】业务连接服务(BCS)认证概念整理
业务连接服务(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服务器在同一台机器上)。 |
|
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凭据对数据源有访问权限。
【知识点】业务连接服务(BCS)认证概念整理的更多相关文章
- BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第13章节--使用业务连接服务创建业务线解决方式 SP Apps中的BCS
BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第13章节--使用业务连接服务创建业务线解决方式 SP Apps中的BCS 之前的联系中,你安装了一个业 ...
- 微服务(Microservices)和服务网格(Service Mesh)架构概念整理
注:文章内容为摘录性文字,自己阅读的一些笔记,方便日后查看. 微服务(Microservices) 在过去的 2016 年和 2017 年,微服务技术迅猛普及,和容器技术一起成为这两年中最吸引眼球的技 ...
- 【Spring Cloud & Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权
一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证授权.鉴权的逻辑,结合 ...
- DNS,TCP,IP,HTTP,socket,Servlet概念整理
DNS,TCP,IP,HTTP,socket,Servlet概念整理 常见的协议虽然很容易理解,但是看了之后过一段时间不看还是容易忘,笔记如下,比较零碎,勉强供各位复习.如有错误欢迎指正. D ...
- 170122、Netty 长连接服务
推送服务 还记得一年半前,做的一个项目需要用到 Android 推送服务.和 iOS 不同,Android 生态中没有统一的推送服务.Google 虽然有 Google Cloud Messaging ...
- Netty 长连接服务
转自:https://www.dozer.cc/2014/12/netty-long-connection.html 推送服务 还记得一年半前,做的一个项目需要用到 Android 推送服务.和 iO ...
- 阿里云:面向5G时代的物联网无线连接服务
在4月24日落幕的2019中国联通合作伙伴大会“5G+物联网(IoT)论坛”上,阿里云高级运营专家李茁出席圆桌对话,分享了5G时代物联网如何更好地推动行业完成生产.管理和商业模式的创新,阿里云又会以何 ...
- 服务网格istio概念应知应会
一.背景 最近架构组基于istio开发了服务网格(Service Mesh)平台,借此机会把相关的背景知识做一次学习和记录,方便回头查看. 初版的效果: 二.istio 官方手册:https://is ...
- Java面试必会-微服务权限认证
微服务身份认证方案 1. 单点登录(SSO) 这种方案意味着每个面向用户的服务都必须与认证服务交互,这会产生大量非常琐碎的网络流量和重复的工作,当动辄数十个微应用时,这种方案的弊端会更加明显. 2. ...
随机推荐
- HDU 3397 Sequence operation
题目:下列操作 Change operations:0 a b change all characters into '0's in [a , b]1 a b change all character ...
- php max_input_vars限制数组大小
今天做一个项目需要post2000个数组过去,发现一直只能接到一半,后来发现是max_input_vars显示问题. 修改php.ini里面max_input_vars的大小就可以了
- 图表控件的学习===》hightChart 和 Chartjs的使用
hightChart : 比较旧的图表控件 商业需要授权 Chartjs 免费开源 刚开始使用了下 hightchart 然后参考示例 建了对应的参数配置的类, 也顺利的集合到后台动态传输. 后 ...
- 持续集成-sourcetree的安装、使用记录
1.参考 http://blog.sina.com.cn/s/blog_672143a30102vold.html 2.问题-安装sourcetree后,打开时提示下载但是连接不上相应链接 自行下载g ...
- 初始化脚本(Os_Init_Optimization.sh)
#!/bin/bash #解压缩startup.tar.gz包 cd /tmp && tar -zxf startup.tar.gz #初始化YUM源 rm -rf /etc/yum. ...
- tomcat一闪而过------Java EE环境部署
今天浪费了一个多钟头,tomcat一直一闪而过,最终原因让人哭笑不得,最后发现自己下载的是tomcat的源码版本....哎 部署环境步骤: 1.安装JDK 下载安装,JDK只需要配以下两个环境变量就可 ...
- [DS Basics] Data structures
1, LinkedList composed of one and one Node: [data][next]. [head] -> [data][next] -> [data][nex ...
- C#代码示例_函数
参数数组 C#允许为函数指定一个(只能指定一个)特定的参数,这个参数必须是函数定义中的最后一个参数,称为参数数组.参数数组可以使用个数不定的参数调用函数,可以使用params关键字定义它们. 参数数组 ...
- ActiveXObject函数详解
什么是 ActiveX 控件? ActiveX 控件广泛用于 Internet.它们可以通过提供视频.动画内容等来增加浏览的乐趣.不过,这些程序可能出问题或者向您提供不需要的内容.在某些情况下,这些程 ...
- 【转】LokiJS:纯JavaScript实现的轻量级数据库
原文转自:http://www.html5cn.org/article-7091-1.html LokiJS一个轻量级的面向文档的数据库,由JavaScript实现,性能高于一切.目的是把JavaSc ...