ADFS是Windows Server 2008 操作系统中的一项新功能,它提供了一个统一的访问解决方案,用于解决基于浏览器的内外部用户的访问。这项新功能甚至可以实现完全不同的两个网络或者是组织之间的帐户以及应用程序之间的通讯。
要理解ADFS的工作原理,可以先考虑活动目录的工作原理。当用户通过活动目录进行认证时,域控制器检查用户的证书。当证明是合法用户后,用户就可以随意访问Windows网络的任何授权资源,而无需在每次访问不同服务器时重新认证。ADFS将同样的概念应用到Internet。我们都知道当Web应用需要访问位于数据库或其他类型后端资源上的后端数据时,对后端资源的安全认证问题往往比较复杂。现在可以使用的有很多不同的认证方法提供这样的认证。例如,用户可能通过RADIUS(远程拨入用户服务认证)服务器或者通过应用程序代码的一部分实现所有权认证机制。这些认证机制都可实现认证功能,但是也有一些不足之处。不足之一是账户管理。当应用仅被企业自己的员工访问时,账户管理并不是个大问题。但是,如果企业的供应商、客户都使用该应用时,就会突然发现用户需要为其他企业的员工建立新的用户账户。不足之二是维护问题。当其他企业的员工离职,雇佣新员工时,用户还需要删除旧的账户和创建新的账户。
ADFS能为您做什么?
如果用户将账户管理的任务转移到他们的客户、供应商或者其他使用Web应用的人那里会是什么样子哪? 设想一下, Web应用为其他企业提供服务,而用户再也不用为那些员工创建用户账户或者重设密码。如果这还不够,使用这一应用的用户也不再需要登录应用。那将是一件多么令人兴奋的事情。
ADFS需要什么?
当然,活动目录联合服务还需要其它的一些配置才能使用,用户需要一些服务器执行这些功能。最基本的是联合服务器,联合服务器上运行ADFS的联合服务组件。 联合服务器的主要作用是发送来自不同外部用户的请求,它还负责向通过认证的用户发放令牌。
另外在大多数情况下还需要联合代理。试想一下,如果外部网络要能够和用户内部网络建立联合协议,这就意味着用户的联合服务器要能通过Internet访问。但是活动目录联合并不很依赖于活动目录,因此直接将联合服务器暴露在Internet上将带来很大的风险。正因为这样,联合服务器不能直接和Internet相连,而是通过联合代理访问。联合代理向联合服务器中转来自外部的联合请求,联合服务器就不会直接暴露给外部。
另一ADFS的主要组件是ADFS Web代理。Web应用必须有对外部用户认证的机制。这些机制就是ADFS Web代理。 ADFS Web代理管理安全令牌和向Web 服务器发放的认证cookies。
在下面的文章中我们将带领大家通过一个模拟的试验环境来一起感受ADFS服务带给企业的全新感受,闲言少叙,我们下面就开始ADFS的配置试验。
第1步:预安装任务
要想完成下面的试验,用户在安装ADFS之前先要准备好至少四台计算机。
1)配置计算机的操作系统和网络环境
使用下表来配置试验的计算机系统以及网络环境。
2)安装 AD DS
用户使用Dcpromo工具为每个同盟服务器(FS)创建一个全新的活动目录森林,具体的名称可以参考下面的配置表。
3)创建用户帐户以及资源帐户
设置好两个森林后,用户就可以通过“用户帐户和计算机”(Active Directory Users and Computers )工具来创建一些帐户为下面的试验做好准备。下面的列表给出了一些例子,供用户参考:
4)将测试计算机加入到适当的域
按照下表将对应的计算机加入到适当的域中,需要注意的是将这些计算机加入域前,用户需要先将对应域控制器上的防火墙禁用掉。
第2步:安装 AD FS 角色服务,配置证书
现在我们已经配置好计算机并且将它们加入到域中,同时对于每台服务器我们也已经安装好了ADFS组件。
1)安装同盟服务
两台计算机上安装同盟服务,安装完成后,这两台计算机就变成了同盟服务器。下面的操作将会引导我们创建一个新的信任策略文件以及SSL和证书:
点击Start ,选择 Administrative Tools ,点击 Server Manager。右击 Manage Roles, 选中Add roles 启动添加角色向导。在Before You Begin 页面点击 Next。在 Select Server Roles 页选择 Active Directory Federation Services 点击Next 。在Select Role Services 选择 Federation Service 复选框,如果系统提示用户安装 Web Server (IIS) 或者 Windows Activation Service (WAS) 角色服务,那么点击 Add Required Role Services 添加它们,完成后点击 Next 。在 Choose a Certificate for SSL Encryption 页面点击 Create a self-signed certificate for SSL encryption, 点击 Next 继续,在 Choose Token-Signing Certificate 页面点击Create a self-signed token-signing certificate, 点击 Next. 接下来的Select Trust Policy 页面选择 Create a new trust policy,下一步进入 Select Role Services 页面点击 Next 来确认默认值。在 Confirm Installation Options 校验完信息后,就可以点击Install 开始安装了。
[Cut-Page]
2)将本地系统帐户分配到 ADFSAppPool identity
点击Start ,在 Administrative Tools中的 Internet Information Services (IIS) Manager中,双击ADFSRESOURCE 或者 ADFSACCOUNT ,选择 Application Pools ,在中心面板上右击ADFSAppPool ,选择Set Application Pool Defaults.在Identity Type, 点击 LocalSystem ,然后选择 OK。
3)安装 AD FS Web 代理
在 Administrative Tools中 Server Manager 右击 Manage Roles ,选择 Add roles ,根据向导在Select Server Roles 页面选择 Active Directory Federation Services.,点击Next 后在 Select Role Services 窗口中选择 Claims-aware Agent 复选框。如果向导提示用户安装 Web Server (IIS) 或者 Windows Activation Service (WAS) 角色服务,那么点击 Add Required Role Services 来完成安装。完成后在Select Role Services 页面,选择 Client Certificate Mapping Authentication 复选框(要想实现这步操作,IIS需要创建一个self-signed 服务认证。),验证完信息后,就可以开始安装了。
要想成功的设置Web服务器和同盟服务器,还有一个重要的环节就是证书的创建和导入导出。前面我们已经使用角色添加向导为同盟服务器之间创建了服务器授权认证,剩下要做的就是为adfsweb计算机创建对应的授权认证。由于篇幅有限在此就不作详细介绍,相关内容可以查询系列中证书相关的文章。
第3步: 配置 Web 服务器
在这个步骤中,我们主要要完成的有如何在一个Web 服务器上(adfsweb),设置一个claims-aware 应用程序。
首先我们来配制IIS,需要做的就是启用adfsweb默认网站的SSL设置,完成后我们在IIS的ADFSWEB 中双击 Web Sites, 右击 Default Web Site, 选择Add Application,在Add Application 对话框的 Alias 中键入 claimapp 点击… 按键, 新建一个文件夹命名为claimapp, 然后确定。需要注意的是命名新文件夹时最好不要使用大写字母,不然在后面使用时也要使用对应的大写字母。
第4步: 配置同盟服务器
现在我们已经安装好了ADFS服务,也已经配置好了访问claims-aware 应用程序的Web服务器,下面我们就来配置试验环境中两家公司(Trey Research 和 A. Datum Corporation )的同盟服务。
我们首先来配置信任策略,在Administrative Tools 中点击 Active Directory Federation Services 双击 Federation Service, 右击选择 Trust Policy, 选择其中的Properties。在 General 页签的Federation Service URI 选项中键入urn:federation:adatum 。然后在Federation Service endpoint URL 文本框中验证下面的网址是否正确https://adfsaccount.adatum.com/adfs/ls/ 最后在Display Name 页签的 Display name for this trust policy中键入 A. Datum 然后选择OK确定。完成后我们再次进入Active Directory Federation Services.双击Federation Service, Trust Policy, My Organization, 右击 Organization Claims, 点击 New, 然后点击 Organization Claim.在Create a New Organization Claim 对话框的Claim name中键入Trey ClaimApp Claim。确定 Group claim 选中后,点击 OK。另外一家公司的配置与上面的操作基本类似,再次不做累述。
第 5步: 通过客户计算机访问试验应用程序
配置adfsaccount 同盟服务的浏览器设置
使用alansh用户登录到adfsclient ,启动IE,在Tools 菜单中点击 Internet Options 在 Security 页签点击 Local intranet,然后点击 Sites.然后点击 Advanced.在 Add this Web site to the zone, 中键入https://adfsaccount.adatum.com, 点击 Add 。然后在IE浏览器中键入https://adfsweb.treyresearch.net/claimapp/.但提示home realm时,点击A. Datum 然后点击Submit 。这样Claims-aware Sample Application 出现在浏览器上,用户可以在SingleSignOnIdentity.SecurityPropertyCollection 中看到应用程序选定的声明。如果在访问时出现问题,那么用户可以运行iisreset 或者重启adfsweb计算机,然后再次尝试访问。
至此一个基本的ADFS试验模型已经搭建完成,当然ADFS依然是一个全面而复杂的新技术,在真正的生产环境中,我们还会有许多许多的操作和配置要做,不过,不管配置如何,正如上文所说的, ADFS将极大地扩充Web应用的能力,扩充企业外部业务的信息化程度,让我们拭目以待Windows Server 2008中ADFS技术在实际应用中使用情况吧。
[Cut-Page]2)将本地系统帐户分配到 ADFSAppPool identity
点击Start ,在 Administrative Tools中的 Internet Information Services (IIS) Manager中,双击ADFSRESOURCE 或者 ADFSACCOUNT ,选择 Application Pools ,在中心面板上右击ADFSAppPool ,选择Set Application Pool Defaults.在Identity Type, 点击 LocalSystem ,然后选择 OK。
3)安装 AD FS Web 代理
在 Administrative Tools中 Server Manager 右击 Manage Roles ,选择 Add roles ,根据向导在Select Server Roles 页面选择 Active Directory Federation Services.,点击Next 后在 Select Role Services 窗口中选择 Claims-aware Agent 复选框。如果向导提示用户安装 Web Server (IIS) 或者 Windows Activation Service (WAS) 角色服务,那么点击 Add Required Role Services 来完成安装。完成后在Select Role Services 页面,选择 Client Certificate Mapping Authentication 复选框(要想实现这步操作,IIS需要创建一个self-signed 服务认证。),验证完信息后,就可以开始安装了。
要想成功的设置Web服务器和同盟服务器,还有一个重要的环节就是证书的创建和导入导出。前面我们已经使用角色添加向导为同盟服务器之间创建了服务器授权认证,剩下要做的就是为adfsweb计算机创建对应的授权认证。由于篇幅有限在此就不作详细介绍,相关内容可以查询系列中证书相关的文章。
第3步: 配置 Web 服务器
在这个步骤中,我们主要要完成的有如何在一个Web 服务器上(adfsweb),设置一个claims-aware 应用程序。
首先我们来配制IIS,需要做的就是启用adfsweb默认网站的SSL设置,完成后我们在IIS的ADFSWEB 中双击 Web Sites, 右击 Default Web Site, 选择Add Application,在Add Application 对话框的 Alias 中键入 claimapp 点击… 按键, 新建一个文件夹命名为claimapp, 然后确定。需要注意的是命名新文件夹时最好不要使用大写字母,不然在后面使用时也要使用对应的大写字母。
第4步: 配置同盟服务器
现在我们已经安装好了ADFS服务,也已经配置好了访问claims-aware 应用程序的Web服务器,下面我们就来配置试验环境中两家公司(Trey Research 和 A. Datum Corporation )的同盟服务。
我们首先来配置信任策略,在Administrative Tools 中点击 Active Directory Federation Services 双击 Federation Service, 右击选择 Trust Policy, 选择其中的Properties。在 General 页签的Federation Service URI 选项中键入urn:federation:adatum 。然后在Federation Service endpoint URL 文本框中验证下面的网址是否正确https://adfsaccount.adatum.com/adfs/ls/ 最后在Display Name 页签的 Display name for this trust policy中键入 A. Datum 然后选择OK确定。完成后我们再次进入Active Directory Federation Services.双击Federation Service, Trust Policy, My Organization, 右击 Organization Claims, 点击 New, 然后点击 Organization Claim.在Create a New Organization Claim 对话框的Claim name中键入Trey ClaimApp Claim。确定 Group claim 选中后,点击 OK。另外一家公司的配置与上面的操作基本类似,再次不做累述。
第 5步: 通过客户计算机访问试验应用程序
配置adfsaccount 同盟服务的浏览器设置
使用alansh用户登录到adfsclient ,启动IE,在Tools 菜单中点击 Internet Options 在 Security 页签点击 Local intranet,然后点击 Sites.然后点击 Advanced.在 Add this Web site to the zone, 中键入https://adfsaccount.adatum.com, 点击 Add 。然后在IE浏览器中键入https://adfsweb.treyresearch.net/claimapp/.但提示home realm时,点击A. Datum 然后点击Submit 。这样Claims-aware Sample Application 出现在浏览器上,用户可以在SingleSignOnIdentity.SecurityPropertyCollection 中看到应用程序选定的声明。如果在访问时出现问题,那么用户可以运行iisreset 或者重启adfsweb计算机,然后再次尝试访问。
至此一个基本的ADFS试验模型已经搭建完成,当然ADFS依然是一个全面而复杂的新技术,在真正的生产环境中,我们还会有许多许多的操作和配置要做,不过,不管配置如何,正如上文所说的, ADFS将极大地扩充Web应用的能力,扩充企业外部业务的信息化程度,让我们拭目以待Windows Server 2008中ADFS技术在实际应用中使用情况吧。