APP下载

统一身份验证在微软云环境中的应用

2013-09-17

微型电脑应用 2013年2期
关键词:重定向身份验证云端

丛 林

0 引言

计算机技术的发展改变着人们的生活方式:互联网的出现加速了信息的传递;操作系统使工作,生活,学习更加的高效;现在,云计算来了,她的出现使公司的成本支出减少,同时提高了公司的生产力和可靠性。在云应用方面,Microsoft, IBM, Google都推出了自己的产品,Microsoft 的Office 365, IBM的Live Notes, Google的Google APPs。

与其他产品相比,Office 365 中国运营为国内客户提供在线办公、电子邮件、门户协作、统一通讯等服务。Office 365的真正优势在于其功能类型多样,如语音、电话会议、文件协作、电子邮件、日历等,拥有员工需要的一切。此外,Office 365可以与 Outlook、SharePoint、Office、Exchange、Lync和微软其他产品的本地模式协作。

1 现在的状态和问题

公司现有的本地验证体系和云端验证体系彼此孤立。导致多账号和无法统一管理的问题。比如:一个叫“小麦”的用户,在本地有自己的用户名和密码。同时,在云端也有自己用户名和密码。这两个用户名和密码是不同的,如图1所示:

问题1:小麦需要记忆两个用户名和复杂的密码。

问题2:小麦无法统一管理两个用户名和密码。

如何在本地环境和云环境(Office 365)共存的情况下,实现本地环境和云环境(Office 365)的统一身份验证?为了更好的和本地环境做整合和联盟,我们需要实现本地和云端的统一身份验证。首先,我们来介绍一下统一身份验证---SSO.

2 基本原理介绍

2.1 SSO的基本原理[3]

SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中,用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据-ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后,会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。

要实现SSO,需要以下主要的功能:

(1)所有应用系统共享一个身份认证系统: 统一的认证系统是 SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行校验,判断其有效性。

(2)所有应用系统能够识别和提取ticket信息。要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。

但是实现本地环境和云环境(Office 365)的统一身份验证时,我们遇到了问题。用户的信息在本地活动目录中,这是云端无法访问的。如何让两个不同的领域建立联系?

2.2 WS-Federation[4]

2.2.1.WS-Federation是一种机制。

用来实现不同领域之间的身份、属性、验证的联盟。她是一种身份联盟的规则, 由 BEA Systems, BMC Software,CA, Inc., IBM, Layer 7 Technologies, Microsoft, Novell, Ping Identity, and VeriSign公司共同开发。我们通过使用WS-Federation技术,实现现有本地环境和云环境的统一身份验证。在本地和云端分别安装一台服务器作为联盟服务器.本地联盟服务器从活动目录中验证账号,同时和云端联盟服务器建立联系。实现统一身份验证在微软云环境中的应用。

这个WS-Federation 规则,允许为不同安全领域建立联盟,从而实现了不同安全联盟之间的安全接入。使用了WS-Federation,可以简单化安全领域之间的联盟,如图2所示:

图2 联盟信任

2.2.2 WS- Federation 特性:

(1)联盟元数据- 当一个组织要建立联盟,联盟中的参与者需要建立一些服务和规则,这样可以让参与者接入联盟。为了实现这个目的,WS- Federation引入了元数据的概念。元数据模式描述联盟元数据相关的服务如何发现和整合的。元数据联盟文档描述一个服务如何参加在联盟和在联盟中被使用。

(2)授权服务- 提供决定中间人服务,被用于联盟中的用户建立连接。

(3)授权类型- 用于定义一些常用的验证类型和等级用于RST 和RSTR信息。

(4)属性服务- 一个已经接入联盟的参与者,需要额外的信息,这是就需要属性服务。可以通过安全令牌服务和令牌信任协议接入属性服务。

(5)联盟登出—联盟登出的目的是显示给一个参与者,这个特殊的联盟已经被中断了。可以清除这个缓存状态。

(6)Web (被动)请求—用于浏览器或者Web 服务客户端的联盟请求。支持 HTTP 1.1 机制 (GET, POST, redirects, and cookies).

3 在云环境中的应用

在微软云环境 Office 365中,我们引入了活动目录联盟服务器Active Directory Federation Server (ADFS)和在线目录同步服务器MS Online Directory Sync Server。他们实现了本地环境和云环境(Office 365)统一登陆和共同管理。

3.1 ADFS通过使用WS-Federation技术提供给用户统一登录体验。允许使用本地活动目录账号登录云端(Office 365)。在本地和云端分别ADFS服务器,实现统一登录。

比如:一个叫“小麦”的用户,我们只要使用本地账号就可以登陆本地和云端环境。具体原理图,如图3所示:

图3 ADFS原理图

3.2 Directory Synchronization (DirSync)Server[5][6]通过本地“活动域名用户和电脑工具(ADUC)”管理所有用户账号(云端和本地)。具体原理:Dirsync在微软云服务中具体的实现方法,通过安装DirSync服务器把本地账号同步到云端,如图4所示:

图4 DirSync原理图

(1)本地活动目录信息到DirSync服务器

(2)信息从DirSync服务器到云端服务器

4 ADFS2.0在微软云服务中具体的实现方法[7]

被动请求和重定向流程(用于Web-base的请求)

主动请求和重定向流程(用于客户端)

4.1.被动请求和重定向流程(用于Web-base的请求)

被动请求和重定向流程(是被WS-Federation定义的,用于支持网页方式请求。网页方式请求被认为是被动请求应为最早的请求是直接指向云端的. 被动请求和重定向流程是ADFS中最常用的情况,如图5所示:

图5 被动请求和重定向流程(用于Web-base的请求)

(1)客户端通过网页方式访问 Microsoft Online Service主页 Http://portal.microsoftonline.com. 这个网页会要求客户提供认证.

(2)客户端会被重定向到 Microsoft Federation Gateway(MFG)这是云端的联盟服务器。为了获得一个登录的认证,MFG 会重定向客户端到本地的联盟服务器AD FS 2.0 服务器。

(3)客户端连接到本地的AD FS 2.0服务器,客户被要求提供身份验证。

(4)ADFS 2.0 Server 在本地活动目录里,验证用户名和密码。如果通过验证,会把本地的账号和云端的客户做一个映射。

(5)本地活动目录把结果返回给AD FS 2.0服务器,同时确认用户身份。

(6)AD FS 2.0服务器返回一个登录认证给客户端。

(7)客户端把这个登录认证发给 MFG, MFG 解密这个认证,验证她,然后返回一个被签署的认证给客户端。

(8)客户端把这个认证发给云端。这个认证被一个公钥签发,只有Office 365有对应的私钥。

4.2. 主动请求和重定向流程(用于客户端)

主动请求可以自己获得认证。客户端会直接连到Microsoft Federation Gateway (MFG), 然后被重定向AD FS 2.0 服务器获得认证. 实现主动请求是通过在客户端电脑安装服务连接器实现的。主动和被动请求的主要不同在于智能化,不需要先到云端。之后的步骤和流程和被动请求时一样的,如图6所示:

图6 主动请求和重定向流程(用于客户端)

当客户用他的账号和密码登陆电脑,一个验证请求被发给Microsoft Federation Gateway(由于安装了在线登陆协助服务)。MFG 是云端的联盟服务器

(1)MFS检查用户是不是联盟用户。如果是,用户会被重定向到本地ADFS服务器。

(2)本地ADFS服务器请求客户的账号和密码,然后到本地AD里面验证。一旦验证成功,ADFS服务器确认用户需要的声明。同时,从属性仓库里面提取声明。

(3)属性仓库提取出声明值,同时,把他们打包到认证。

(4)这个认证被发送到用户。

(5)用户把认证发送给本地MFG。本地MFG会评估声明。决定哪个声明用户会接受到。然后把那些声明给用户的其他的认证。

(6)用户把这个认证用于和Office 365 环境沟通。比如:用户会打开Outlook客户端作为向Exchange Online Services的请求。

(7)Exchange Online Services 会查看是否这个用户是联盟用户,然后要求用户提供认证. 。

(8)用户提交认证。

5 云计算具体实施部署方案

实施的步骤包括了ADFS和DirSync两部分:具体实施部署图,如图7所示:

图7 实施部署图

5.1 1~9步是ADFS的安装步骤

5.2 10~13步是DirSync的安装步骤

5.1 ADFS:

1)把联盟域名加入O365环境:

(1)打开Internet Explorer, 访问

https://portal.MicrosoftOnline.com

(2)点管理, 然后点域名.

(3)点添加域名.

(4)输入域名abc.com

(5)点 确认域名

(6)按照要求添加TXT或者MX记录。

(7)通过后,点击确认。

2)添加一个 UPN suffix 在本地环境

(1)接入本地域控。

(2)点击开始>管理员工具>活动目录域和信。

(3)添加一个 UPN suffix, abc.com 。

3)选择abc.com作为用户domain

(1)接入本地域控。

(2)点击开始>管理员工具>活动目录用户和电脑。

(3)把用户的地址改为abc.com。

4)给ADFS服务器 添加A记录 .

(1)接入本地域控,点击开始>管理员工具>DNS.

(2)建立A记录,输入ADFS服务器匹配的URL和IP地址。

5)安装ADFS服务器

(1)安装一台新的加入域的机器。

(2)下载ADFS安装程序

(http://technet.microsoft.com/en-us/evalcenter/ee47659 7.aspx)安装AdfsSetup.exe.

6)申请新证书Create a new certificate.

(1)接入本地域控,点击开始>管理员工具>Internet Information Services (IIS)管理.

(2)点击 服务器证书,创建域证书给abc.com。

7)导入证书

(1)打开 IIS 管理, 选默认网站.

(2)点击Bindings,然后添加

(3)选https, 然后abc.com作为证书。

8)配置Active Directory Federated Services.

(1)接入本地域控,点击开始>管理员工具>AD FS 2.0 Management.

(2)点击 AD FS 2.0 Federation Server Configuration Wizard.

(3)选 Create a new Federation Service,然后选Stand-alone federation server

(4)确认SSL Certificate and Federation Service name是abc.com

9)添加联盟域名

(1)Microsoft Online Services Module Power Shell.(http://go.microsoft.com/fwlink/p/?linkid=236293)

(2)运行下面命令:

$cred = Get-Credential

(3)然后输入下面命令:

Convert-MSOLDomainToFederated—DomainNameabc.com

5.2 DirSync:

10)云端激活Active Directory Synchronization

(1)打开Internet Explorer, 访问

https://portal.MicrosoftOnline.com

(2)用管理员账号登陆.

(3)点 Activate (Active Directory Synchronization).

11)安装Dirsync服务器

(1)安装一台新的加入域的机器。

(2)在登陆 Office 365的界面后,点击 Set up Active Directory Synchronization

(3)选择下载选项,并安装.

12)设置 Microsoft Online Services Directory Synchronization

(1)开启>所有程序>Microsoft Online Services>Directory Synchronization>Directory Sync Configuration

(2)输入Office 365管理员和本地域管理员账号

(3)完成 Wizard

13)启动DirSync

(1)打开%programfiles%Microsoft Online Directory Sync.

(2)运行DirSyncConfigShell.psc1

(3)输入 Start-OnlineCoexistenceSync

6 结论

通过使用ADFS和DirSync服务器,实现了本地环境和云环境的统一身份验证。

[1]方国伟. 详解微软Windows Azure云计算平台[M]. 电子工业出版社, 2011-11-01: 10-18.

[2]朱明中.走进云计算:Windows Azure实战手记 [M]. 水利水电出版社.2011-04-01:25-40.

[3]From Wikipedia Single sign-on[DB/OL],http://en.wikipedia.org/wiki/Single_sign-on.

[4]MarcGoodner. Understanding WSFederation[DB/OL].May 28, 2007.http://msdn.microsoft.com/en-us/library/bb498017.aspx.

[5]From Microsoft. Directory integration services Help[DB/OL].2012-03-22.http://onlinehelp.microsoft.com/en-us/office365-enterpris es/ff637606.aspx.

[6]MIIS 2003 Overview[DB/OL]. August 14, 2006.http://technet.microsoft.com/en-us/library/cc708678(WS.10).aspx.

[7]From Microsoft. AD FS 2.0 Step-by-Step and How To Guides[DB/OL].June9,2010.http://technet.microsoft.com/en-us/library/adfs2-step-by-step-guides(v=ws.10).aspx.

猜你喜欢

重定向身份验证云端
四海心连·云端汇聚
云端之城
解决安卓文件夹乱象
重复压裂裂缝重定向的措施研究
4G伪基站的监测定位与规避协同分析
云端创意
人脸识别身份验证系统在养老保险生存核查中的应用
在云端
Endogenous neurotrophin-3 promotes neuronal sprouting from dorsal root ganglia
HID Global推动多层身份验证解决方案