前言

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

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

正文

ADFS介绍

[ SharePoint ADFS 开发部署系列 (一)]-LMLPHP

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验证流程如下:

[ SharePoint ADFS 开发部署系列 (一)]-LMLPHP

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 ADFS 开发部署系列 (一)]-LMLPHP

本次主题围绕与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,请继续关注后续博客。

05-04 05:37