ADFS是Windows Server 2008 作業系統中的一項新功能,它提供了一個統一的存取解決方案,用於解決基於瀏覽器的內部和外部使用者的存取。這項新功能甚至可以實現完全不同的兩個網路或組織之間的帳戶以及應用程式之間的通訊。
要理解ADFS的工作原理,可以先考慮活動目錄的工作原理。當使用者通過活動目錄進行認證時,網域控制器會檢查使用者的憑證。當證明是合法使用者後,使用者就可以隨意存取Windows網路的任何授權資源,而無需在每次存取不同伺服器時重新認證。 ADFS將同樣的概念應用在Internet。我們都知道當Web應用程式需要存取位於資料庫或其他類型後端資源上的後端資料時,對後端資源的安全認證問題往往比較複雜。現在可以使用的有很多不同的認證方法提供這樣的認證。例如,使用者可能透過RADIUS(遠端撥入使用者服務認證)伺服器或透過應用程式程式碼的一部分實現所有權認證機制。這些認證機制都可實現認證功能,但也有一些缺點。不足之一是帳戶管理。當應用程式僅被企業自己的員工存取時,帳戶管理並不是個大問題。但是,如果企業的供應商、客戶都使用該應用程式時,就會突然發現使用者需要為其他企業的員工建立新的使用者帳戶。不足之二是維護問題。當其他企業的員工離職,僱用新員工時,使用者還需要刪除舊的帳戶和建立新的帳戶。
ADFS能為您做些什麼?
如果用戶將帳戶管理的任務轉移到他們的客戶、供應商或其他使用網路應用程式的人那裡會是什麼樣子哪? 設想一下, Web應用程式為其他企業提供服務,而用戶再也不用為那些員工創建用戶帳戶或重設密碼。如果這還不夠,使用這項應用程式的用戶也不再需要登入應用程式。那將是一件多麼令人興奮的事。
ADFS需要什麼?
當然,活動目錄聯合服務也需要其它的一些配置才能使用,使用者需要一些伺服器來執行這些功能。最基本的是聯合伺服器,在聯合伺服器上執行ADFS的聯合服務元件。 聯合伺服器的主要作用是發送來自不同外部使用者的請求,它也負責向通過認證的使用者發放令牌。
另外在大多數情況下還需要聯合代理。試想一下,如果外部網路要能夠和用戶內部網路建立聯合協議,這就意味著用戶的聯合伺服器要能透過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, 點擊 certificate, SelectNext.頁面選擇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, 右鍵點選ADFSAppPool ,選擇Set Application Pool Defaults.在Identity Type, 點選LocalSystem ,點選然後選擇。
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中鍵入 Claim.在Create a New Organization Claim 對話框的Claim name中鍵入 Cla確定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, 右鍵點選ADFSAppPool ,選擇Set Application Pool Defaults.在Identity Type, 點選LocalSystem ,點選然後選擇。
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中鍵入 Claim.在Create a New Organization Claim 對話框的Claim name中鍵入 Cla確定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技術在實際應用中使用情況吧。