[ SharePoint ADFS 开发部署系列 (一)]
前言
本文完全原创,转载请说明出处,希望对大家有用。
随着企业信息化建设逐渐成熟,基于微软体系的企业内部系统架构在众多企业中得到应用,随之而来的用户统一身份认证(SSO)问题成为企业IT部门急需解决的问题。本期主题围绕Active Directory Federation Services与SharePoint Server 2013集成,理解ADFS的实现方式,同时实现以SharePoint企业门户为中心的企业级办公平台,解决基于微软AD身份验证的统一身份认证问题。接下来我们从ADFS的安装、部署、集成等方面,以三篇博客完成整个系列。
正文
ADFS介绍
Active Directory Federation Services是一种标准的基础服务, 它允许在外部网络之间安全共享可信任伙伴的身份信息。ADFS是基于Web的单点登录(Single Sign-On (SSO))的标准, 它通过实现了foreast间的claim based authentication而了开启了联合身份(federated identity).Claim based authentication是一种认证用户的过程, 它的实现基于装在trusted token中的关于用户身份的一系列claims。这样的一个token通常是由一个能够通过其他途径来认证用户的一个实体来生成并赋予的, 并且这个实体还得被实现了claim based authentication的实体所信任。在ADFS中, 身份的联合(identity federation )是通过在两个组织的安全边界间建立信任关系来实现的. 在一端(account side)的federation server 负责通过在Active Directory domain services中的标准方式认证一个用户, 然后生成一个包含一系列包含有关这个用户的claims的token, 包括federation server的实体本身. 另一端(resource side), 另一个federation server会校验这个token, 然后生成另一个token供本地服务器接受claimd identify所用. 这允许系统为它的资源提对另外一个安全边界的某用户供可控制的访问权限, 而不需要让这个用户直接登录系统, 也不需要两个系统共享用户的identify和密码。此方式下需要在客户环境安装ADFS服务,同时需要第三方应用集成ADFS认证,从而实现用户的单点登录。ADFS验证流程如下:
ADFS验证方式下的身份信息传递步骤:
- 用户打开浏览器访问Web资源
- Web应用根据当前用户信息返回是否已登陆的标识符
- 如未登陆,则页面跳转至ADFS验证页面,要求用户输入凭据(AD账号密码)
- 验证通过,则返回有效的Token到客户端
- 客户端携带该Token的请求再次发送到Web资源,Web应用程序成功返回请求的资源信息
如何安装部署
ADFS 3.0的安装官方提供了完整的安装部署文档:
https://msdn.microsoft.com/en-us/library/azure/dn528857.aspx
以Windows Server 2012 R2为例,开启ADFS功能,并连接相应的数据库即可。安装完成后,通过浏览器访问https://your_adfs_server_url/federationmetadata/2007-06/federationmetadata.xml查看元数据文件:
本次主题围绕与SharePoint Server 2013的集成,秉承前人栽树后人乘凉的原则,同时配置也不是本文的重点内容,所以请参考以下配置文档:
https://technet.microsoft.com/zh-cn/library/hh305235.aspx(官方文档)
http://blog.csdn.net/duanchuanttao/article/details/51374678
与SharePoint集成中所用的证书
在安装和部署过程中,我们参考上面的安装配置文档即可以正常的完成,但经常会遇到证书的各种问题,如无法信任、导入版本异常等。下面我们针对配置过程中使用到的证书逐一进行分析讲解。
1. ADFS Signing证书
ADFS Signing证书是用于验证令牌颁发者的身份是否合法,ADFS所支持的SSL传输协议,为了保证正确解码,我们需要将Signing证书导入到SharePoint中。在使用过程中,请注意证书的有效期限,如果在使用中证书过期,SharePoint会报无法解析令牌的错误。证书在绑定前,请注意将该证书所属证书链上的所有证书都导入计算机证书管理中。比如根证书导入到根证书信任机构,中间证书导入到中间证书信任机构。如果导入的证书链不正确,会导致系统请求证书验证错误,具体错误我们会在系统优化时来讲解。
2. SharePoint 前端服务器SSL证书
ADFS 3.0支持的信任伙伴必须使用SSL协议,故我们安装的SharePoint Server 2013中Web服务器必须安装私有或共有的SSL证书。证书在绑定前,请注意将该证书所属证书链上的所有证书都导入计算机证书管理中。比如根证书导入到根证书信任机构,中间证书导入到中间证书信任机构。
3. SharePoint Root Authority certificate
这个证书是SharePoint自动生成的根证书,在Windows 验证下,我们无需使用到该证书。当SharePoint 与 ADFS集成后,系统会使用该证书,并验证其有效性,具体使用方式,我们在后续系统优化时讲解。
结束语
先简单开个头,下一篇写由ADFS返回的Claims,SharePoint又如何使用和保存这些Claims,请继续关注后续博客。
[ SharePoint ADFS 开发部署系列 (一)]的更多相关文章
- Sharepoint 2013 安装部署系列篇 第三篇 -- 安装和配置网络负载均衡在前端web服务器
第一部分 系统集群安装 第二部分 SQL集群安装 第四部分 安装和配置sharepoint 场(三层拓扑部署) 接下来一步一步开始配置NLB吧, 以下开始讲解如何配置NLB集群作为sharepoint ...
- Sharepoint 2013 安装部署系列篇 第二篇 -- SQL集群安装
第一部分 系统集群安装. 第三部分 安装和配置网络负载均衡在前端web服务器 第四部分 安装和配置sharepoint 场(三层拓扑部署) 以下图片均为sharepoint 2010..由于本人的笔记 ...
- Sharepoint 2013 安装部署系列篇 第一篇 -- 系统集群安装
这部分讲述怎样配置两台服务器作为sql集群. 准备 *你需要两个网卡在每台服务器上,一个是共有,另一个是私有的(heartbreak通信)*共享存储如SAN存储需要至少如下配置,并且需要连接到每台节点 ...
- SharePoint 2013 开发——开发并部署第一个APP
博客地址:http://blog.csdn.net/FoxDave 本篇我们开始对开发APP应用程序进行了解. 本篇基于本地SharePoint环境(如果是Office 365的话会方便许多),需 ...
- 转载 SharePoint开发部署WSP解决方案包
转载原出处: http://642197992.blog.51cto.com/319331/1582731 注:本文所讲内容以SharePoint2013版本为例,开发工具以VS2013为基础.历史版 ...
- 【Xamarin开发 Android 系列 13】 应用打包部署
原文:[Xamarin开发 Android 系列 13] 应用打包部署 开始倒叙咯................ 先更新大宝部署吧,这个章节比较的Easy,童鞋们不用费脑筋.点解?从界面上填写几个参 ...
- 【Xamarin开发 Android 系列 1】环境部署搭建
原文:[Xamarin开发 Android 系列 1]环境部署搭建 开篇自然先扯一段,近几年移动互联网如果熊猫零食一样,蔓延迅速.楼主身为一个微软忠实的粉丝,无奈,老爹不给力.Silverlight开 ...
- 系列文章--SharePoint 2013 开发教程
做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...
- C#开发BIMFACE系列47 IIS部署并加载离线数据包
BIMFACE二次开发系列目录 [已更新最新开发文章,点击查看详细] 在前两篇博客<C#开发BIMFACE系列45 服务端API之创建离线数据包>与<C#开发BIMFACE系 ...
随机推荐
- Ajax基础与登入
Ajax 是 Asynchronous JavaScript and XML的缩写. Ajax的优点: 优点:减轻服务器的负担,按需取数据,最大程度的减少冗余请求 局部刷新页面,减少用户心理和实际的等 ...
- PHP随机数安全
0x00 rand()函数 rand()的随机数默认最大32767,可以用于爆破这里不再举例. 0x01 mt_rand()和mt_srand()函数 mt_srand()函数用于播种,PHP 4.2 ...
- 使用RecyclerView实现的分组列表。
项目介绍: StickyHeaders使用RecyclerView实现的分组列表
- canvas基础—图形变换
1.canvas转换方法 1.1canvas转换方法 二.canvas实现图形的中心点旋转 step1:获取canva元素并指定canvas的绘图环境 var canvas=document.getE ...
- Java中反射与常用方法
java通常是先有类再有对象,有对象我就可以调用方法或者属性. 反射其实是通过Class对象来调用类里面的方法.通过反射可以调用私有方法和私有属性.大部分框架都是运用反射原理. 如何获得Class ...
- less可以做什么?less详解!(less嵌套选择器实现纯CSS二级导航)
前端技术众多,作为一名前端工程师,我们每接触新技术首先要懂得此技术的优势和劣势,这是最基本的.往深入了说还需要懂得技术的应用场景,配合的技术等,方便为以后架构做准备.而less作为一门CSS预处理语言 ...
- 编写PHP代码总结
1- 编写模块化代码 良好的PHP代码应该是模块化代码.PHP的面向对象的编程功能是一些特别强大的工 具,可以把你的应用程序分解成函数或方法.你应该尽可能多的从你的应用程序的服务器端分开前端的HTML ...
- shell脚本监控目录下文件被篡改时报警
思路: 目录下文件被篡改的几种可能: 1.被修改 2.被删除 3.新增文件 md5命令详解 参数: -b 以二进制模式读入文件内容 -t 以文本模式读入文件内容 -c 根据已生成的md5值,对现存文件 ...
- oracle事物总结(转)
关于Oracle事务的总结 1.什么是事务,事务的特性是什么? 事务的任务便是使数据库从一种状态变换成为另一种状态,这不同于文件系统,它是数据库所特用的.它的特性有四个:TOM总结为ACID即原子性a ...
- 重温Javascript(一)
工作中要用到JavaScript,一组复习笔记. 一些看法 1. 想想JavaScript目前最常用的宿主环境,浏览器或者服务端V8,都是单线程,所以不用过多的考虑并发的问题,如果是协程来实现异步的方 ...