對于目標應用服務器并沒有加入到企業網的活動目錄環境中,當目標應用服務器需要驗證用戶的身份時,其本身并不進行具體的驗證操作,而是將任務提交給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服務器上打開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角色安裝后,點擊“在此服務器上配置聯合身份驗證服務”,在向導界面(如圖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應用程序代理服務器之間無法建立信任關系而無法順利登錄。