前言

本文完全原创,转载请说明出处,希望对大家有用。

随着企业信息化建设逐渐成熟,基于微软体系的企业内部系统架构在众多企业中得到应用,随之而来的用户统一身份认证(SSO)问题成为企业IT部门急需解决的问题。本期主题围绕Active Directory Federation Services与SharePoint Server 2013集成,理解ADFS的实现方式,同时实现以SharePoint企业门户为中心的企业级办公平台,解决基于微软AD身份验证的统一身份认证问题。接下来我们从ADFS的安装、部署、集成等方面,以三篇博客完成整个系列。

阅读目录

  1. 什么是ADFS
  2. 如何安装部署
  3. 与SharePoint集成中所用的证书

正文

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验证方式下的身份信息传递步骤:

  1. 用户打开浏览器访问Web资源
  2. Web应用根据当前用户信息返回是否已登陆的标识符
  3. 如未登陆,则页面跳转至ADFS验证页面,要求用户输入凭据(AD账号密码)
  4. 验证通过,则返回有效的Token到客户端
  5. 客户端携带该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://sharepointpals.com/post/Configuring-ADFS-as-Authentication-Provider-For-SharePoint-2013-Web-Application

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,请继续关注后续博客。

转载于:https://www.cnblogs.com/renzh/p/6744449.html

[ SharePoint ADFS 开发部署系列 (一)]相关推荐

  1. 【基于Python+Flask项目部署系列--03】开发测试环境配置-基于Ubuntu16.04

    一.开发测试环境介绍 前提已经部署完[基于Python+Flask项目部署系列--02]Ubuntu16.04服务器安装.建议部署2套环境:开发测试环境+生产环境. 这篇文章主要讲解测试环境如何配置p ...

  2. SharePoint 2013 开发——开发并部署第一个APP

    博客地址:http://blog.csdn.net/FoxDave 本篇我们开始对开发APP应用程序进行了解. Office 365知识库彩蛋 本篇基于本地SharePoint环境(如果是Offi ...

  3. SharePoint开发部署WSP解决方案包

    注:本文所讲内容以SharePoint2013版本为例,开发工具以VS2013为基础.历史版本也可以参考本文. WSP:SharePoint Solution Package 解决方案包. 一.概念和 ...

  4. 转载 SharePoint开发部署WSP解决方案包

    转载原出处: http://642197992.blog.51cto.com/319331/1582731 注:本文所讲内容以SharePoint2013版本为例,开发工具以VS2013为基础.历史版 ...

  5. Sharepoint学习笔记—Ribbon系列-- 2. 在Ribbon中添加新Tab

    有了上面的基础,我们来看看如何向Sharepoint网站的Ribbon中添加我们定义的Tab. 直接进入操作步骤 一.创建 SharePoint 项目 要添加新选项卡,应首先创建一个空白 ShareP ...

  6. 这款 IDE 插件再次升级,让「小程序云」的开发部署提速 8 倍

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 今年3月份,在阿里云北京峰会上,阿里巴巴正式发布了"阿里巴巴小程序繁星计划&quo ...

  7. SharePoint 2010开发实例精选——“每日一句”WebPart

    本例将在SharePoint 2010站点上构建一个每日一句Web部件.如果你的电脑上还没有装SharePoint 2010环境,可以先从配置 SharePoint 2010开发环境开始做起.为了能够 ...

  8. 【Android Studio安装部署系列】目录

    概述 从刚开始使用Android Studio到现在,下面所有目录下的操作,当时习惯性的把每一个整理成一个文档(其实就是简单文字描述+截图):有些地方当时是一知半解,现在会稍微明白一些.正好赶上现在有 ...

  9. Sharepoint学习笔记—Ribbon系列

     为便于查阅,这里整理并列出了我的Sharepoint学习笔记中涉及Ribbon开发的关文章,有些内容可能会在以后更新. Sharepoint学习笔记-Ribbon系列-- 1. Ribbon的架构 ...

最新文章

  1. 博士申请 | ​香港中文大学LaVi实验室招收2022年秋季入学博士生、硕士生
  2. 数据库-优化-子查询优化
  3. python 输入文件名查找_python 查找文件名包含指定字符串的方法
  4. SpringCloud学习笔记026---SpringBoot中使用不同类型的数据库_MySql_PostGreSql_使用template
  5. vue入门:(组件)
  6. 将 75000 行原生 iOS 应用程序移植到 Flutter 后,结果太惊讶!
  7. linux 静态路由修改
  8. 在VS中使用独立的项目(Project)开发DNN模块
  9. 计算机成人本科学历,计算机专业成人本科
  10. Adobe DPS解决方案工作流程及其收费情况介绍
  11. 动手学深度学习v2-线性代数课后习题
  12. 如何在手机和电脑之间共享文件以及共享模拟器网络给电脑
  13. 关于山东大学(青岛)的吐槽
  14. 大学计算机教育国外著名教材系列 数据结构,经典数据结构(Java语言版)(影印版)——大学计算机教育国外著名教材系列...
  15. ecs共享型s6怎么样?
  16. 【dubbo系列001】dubbo是什么?dubbo解决什么问题?
  17. ibm远程服务器,Dell、IBM服务器配置远程管理卡
  18. “四大发明”活字印刷当排首位!
  19. stm32---DAC数模转换
  20. c#语言窗体运行暂停指令,C#线程启动、暂停、恢复、停止怎么实现

热门文章

  1. 【一盏灯】利用单片机点亮一盏灯
  2. 大连理工大学远程与继续教育学院生产实习报告报表
  3. 可以用python自定义一个正多边形函数
  4. 【项目二、蜂巢检测项目】一、串讲各类经典的卷积网络:InceptionV1-V4、ResNetV1-V2、MobileNetV1-V3、ShuffleNetV1-V2、ResNeXt、Xception
  5. 《悟透JavaScript》诞生历程精美配乐视频
  6. vue使用高德地图的行政区域浏览
  7. 腾讯云tcp架构考试涉及到哪些知识点?腾讯云是什么?
  8. 菜鸟零基础建站入门指引(仅供参考)
  9. Tubi 快讯|Tubi 原创剧拿了第一名
  10. 【Hadoop】运行MR任务,出现Container is running beyond physical memory limits错误