APP下载

应用ADFS联合身份验证

2018-11-07

网络安全和信息化 2018年9期
关键词:代理服务器身份验证域名

ADFS验证服务工作原理

对于目标应用服务器并没有加入到企业网的活动目录环境中,当目标应用服务器需要验证用户的身份时,其本身并不进行具体的验证操作,而是将任务提交给ADFS联合身份验证服务器,这样客户端就可以寻找ADFS服务器,并完成所需的身份验证操作。ADFS服务器是和活动目录紧密集成的,因此用户就可以通过活动目录中的账户信息,来实现具体的身份验证任务。验证完成后,ADFS服务器返回给目标应用服务器的只是一些声明信息,包括用户名、所在部门等信息。当目标应用服务器接收到这些声明信息后,会据此分配操作权限。

根据以上分析可以看出,用户只需记住自己的域账户信息,就可以顺利访问外部应用程序服务器。ADFS服务实际上就是帮助外部应用程序服务器进行代理的验证,并且返回了相应的声明属性。对于Office 365来说,它是基于公有云技术运作的。ADFS服务器同样支持这类云计算平台。此外,ADFS还支持Azure中的AD,让用户在使用Office 365之类的云平台时,不仅可以输入账户名和密码,还可以接收相应的短信验证码,即可以通过短信验证码进行登录,来提高登录的安全性。

账户双向同步原理

Office 365是微软提供的在线服务,打开“https://portal.office.com”,输 入用户ID和密码,即可登录和使用在线Office服务。对于企业用户,希望将域中的账户和Office在线账户进行互导操作,提高使用灵活性。

企业用户使用的是基于域环境的网络,在DC的Active Directiry数据库中存在很多账户信息,利用Active Directiry同步服务,可以将AD中的账户信息同步到Office 365中。对于AD同步,是将企业内部的活动目录中的账户信息导入到Office 365中,使这些用户和Office 365建立基本的联系,使其可以正常登录Office 365。这就需要在活动目录和Office365之间设立AD同步服务器,和两者之间建立连接,并将AD中的账户信息导入到Office 365中。

使用常规的AD同步操作,虽然可以将域账户信息存储在Office 365中,但是登录名比较复杂,格式为“用户名@组织名称. partner.onmschina.cn”之类。在企业内部AD上,账户的名称就简单得多。使用ADFS联合身份验证,就无需将AD中的账户信息直接导入Office 365中,对用户的管理依然可以在AD内部完成。这样,用户就可以使用相同的ID登录系统和Office 365。

运作模式是,用户在登录Office 365时,输入账户ID(即域账号),登录页面检测到该企业域账号后,跳转到企业内部的Web应用程序代理服务器中,当使用者输入密码,点击登录按钮时,Web应用程序代理服务器会将登录凭据提交给企业内部的ADFS服务器,如果ADFS服务器缓存了相应的账户和密码信息,就可以通过验证。否则,ADFS服务器和企业AD服务器通讯进行身份验证,来检测合法性。

如果以上验证都通过,Web应用程序代理服务器就会给用户提交一个声明,由用户的浏览器将该声明传送给Office 365中,之后就可以顺利登录到Office 365之中。从网络架构上看,Office 365位于Internet上,Web应用程序代理服务器应该位于企业网中的DMZ区域,通过开设对应的端口,来和Office 365进行通讯。ADFS服务器以及AD服务器存在于企业内网中,可以和Web应用程序代理服务器进行联系。在实际配置时,Web应用程序代理服务器不需要加入域环境,其处于工作组模式,ADFS服务器需要加入到域中。

图1 安装ADFS联合身份验证服务

安装和管理ADFS角色

在ADFS服务器上打开Active Director由用户和计算机窗口,创建一个账户(例如“adfsuser”),因为作为服务账户来使用,所以需要选择“用户不能更改密码”和“密码永不过期”项。运行“luser.msc”程序,在账户管理窗口左侧选择“组”项,双击右侧的“Administrators”组。在属性窗口中点击“添加”按钮,将“adfsuser”账户添加本地管理员组中。运行“mmc”程序,在控制台中点击“Ctrl+M”键,在列表中选择“证书”项,点击“添加”按钮,选择“计算机账户”项,将其添加到控制台中。选择“个人→证书”项,在右侧窗口的右键菜单中点击“所有任务→导入”项,导入所需的证书。该公共可信的证书需要单独购买。

这里为了便于说明,使用企业内部的证书。这需要在DC上安装AD证书服务,证书名称中的域名需要和企业名称一致。使用证书是为了保证ADFS服务器和Web应用程序代理服务器之间通讯的安全性。在ADFS服务器上执行注销操作,之后以“adfsuser”账户登录。在服务器管理器中点击“添加角色和功能”,在角色列表中选择“Active Directory Federation Services”项(如图1),点击“安装”安装该角色。当然,不同的企业拥有的用户数量存在差异,对于用户数量巨大的企业,使用单台ADFS服务器,无法满足需求。为此,可以配置多台ADFS服务器,将其放置在同一个服务器场中。

为了便于与Web应用程序代理服务器通讯,可以为其指派一个统一的IP地址。在DC控制器中打开DNS管理器,在左侧选择“DNS→DC名称→正向查找区域→xxx.com域名”项,在右键菜单上点击“创建主机(A或AAAA)”项,在弹出窗口中输入其名称(例如“adfsz”),也即是 ADFS服务器场的名称,在“IP地址”栏中输入所需的IP,即ADFS服务器场的IP。ADFS中的证书名称必须与该域名(例 如“adfsz.xxx.com”)对应。之后点击“添加主机”按钮,创建该A记录。

使用ADFS实现账户双向互导

完成ADFS角色安装后,点击“在此服务器上配置联合身份验证服务”,在向导界面(如图2)中选择“在联合服务器场中创建第一个联合服务器”项,如果之后配置更多的ADFS服务器的话,需要选择“将联合服务器添加到联合服务器场中”项。点击“下一步→更改”按钮,在Windows安全窗口中输入域管理员账户和密码,连接到AD域服务。在下一步窗口中的“SSL证书”列表中选择准备好的证书,在“联合身份验证服务显示名称”栏中输入合适的名称,该名称将在登录Office 365时显示。

图2 配置ADFS联合身份验证服务

点击下一步,选择“使用现有的域用户账户或组托管服务账户→选择”按,选择上述“afdsuser”账户并输入密码。在下一步窗口中选择“在此服务器上使用Windows内部数据库创建数据库”,来创建所需的数据库,在其中缓存用户ID信息。如果用户的数量巨大,就需要使用SQL Server数据库加以应对。选择“指定SQL服务器数据库的位置”项,输入SQL Server主机名和实例名。之后可以查看选项信息,执行先决条件的检测操作,最后点击“配置”执行所需的配置操作。

Web应用程序代理服务器不需要加入到域,需要开启TCP 443端口。为了顺利访问该服务器,需要需要向Internet上的域名提供商申请一个域名。域名申请成功后,登录到后台管理界面,在域名管理中点击“新增解析”之类的按钮,增加一个A记录,来指向该Web应用程序代理服务器。为了保证安全通讯,需要为该机购买并配置证书,证书名称必须与外网域名一致。打开服务器管理器,点击“添加角色和功能”在角色列表中选择“远程访问”,在下一步窗口中的角色服务列表中选择“Web应用程序代理”项,之后完成安装。

点击“打开Web应用程序代理向导”链接,在向导界面点击下一步,在“联合身份验证服务名称”栏中输入其名称,即在上述DNS中添加的“adfsz.xxx.com”域名。输入本地管理员的账户名和密码,即上述ADFS服务账户,例如“xxx.comadfsuser”。 在下一 步窗口中选择所需的证书,点击“配置”按钮,完成配置操作。在外网的某台主机上打开浏览器,访问“https://adfsz.xxx.com/adfs/ls/ idpinitiatedsignon.html”,如 果出现登录界面,显示上述联合身份验证服务显示名称的话,而且当输入企业对应的域账户和密码后,点击“登录”按钮,显示“你已登录”的提示,就说明上述配置是成功的。

在ADFS服务器上打开Windows PowerShell的Windows Azure Active Directory模块,执行“Connect -MsolService”命令,在弹出的窗口中输入Office 365的全局管理员账户名和面,连接到Office 365中。执行“Convert-MsokDomainToFederated-DomainName xxx.com”命令,为Office 365指定跳转的目标域名。

当用户在Office 365登录界面中输入企业域名和密码后,点击登录操作,Office 365就跳转到上述Web程序代理服务器上,由其将登录凭据提交给ADFS服务器,ADFS服务器可以自身缓存进行验证或者将其提交给AD服务器进行验证。当验证通过后,将声明信息传送给Office 365登录页面,进而顺利登录到Office 365中。

注意,在实际使用时,上述证书必须是第三方提供的公用的可信的证书,否则因为Office 365和Web应用程序代理服务器之间无法建立信任关系而无法顺利登录。

猜你喜欢

代理服务器身份验证域名
地铁信号系统中代理服务器的设计与实现
IP地址隐藏器
如何购买WordPress网站域名及绑定域名
HID Global收购Arjo Systems扩大政府身份验证业务
腾讯八百万美元收购域名
更安全的双重密码保护
身份验证中基于主动外观模型的手形匹配
ASP.NET中的Forms身份验证的研究
顶级域名争夺战:ICANN放出1930个通用顶级域名,申请者有上千家
咱去国外买域名