Window Azure Access Control Service介紹

Windows Azure Access Control Service是基於Token的一種驗證模式,旨在對你的應用程序設計好的驗證功能,比如在public的雲計算平臺上發佈你的應用程序和服務,如果不像所有的模塊的功能都會被匿名的用戶所訪問,這時候你的工作就是需要依賴於ACS來保護你的程序和數據了。

ACS工作原理是這樣的,首先Client將會被導向你的應用程序在雲端的地址,這時候應用程序會判斷你的權限,如果不符合驗證規則,ACS自動提供一個Identity Providers的功能,這個功能的作用是讓你設置你需要驗證的方式,比如Google賬號,FaceBook,ADFS,或者是自己定義的一套驗證功能(通過SQL Azure數據庫驗證用戶名和密碼),這個時候由這些providers來驗證你的賬戶,如果通過了這些驗證,那麼這些provider將會返回一個Identity Provider的Token給客戶端,然後再由客戶端將這個Token發給ACS(包含在HttpRequest header上),然後由ACS來判斷這些Token是不是受信任的provider發送過來的,如果是則通過驗證碼。

可能上面的步驟有些複雜,但是這種工作機制的確很好的解決的第三方驗證和雲端的驗證的結合,大大減輕了不同驗證手段的結合,比如你可以使用表單驗證,使用Window驗證,使用數據庫驗證,或者同時使用多種驗證,你的工作只是建立一個個對應的provider並且與ACS結合。

放一張圖片介紹下ACS的機制:

這裏我們簡單創建一個示例來介紹怎麼在你的Cloud程序中引入ACS驗證功能

首先創建好你的cloud application,功能這裏寫的非常簡單,有一個Content.aspx頁面(只能被驗證用戶訪問),然後再All文件夾下有個Default.aspx頁面,可以被所有用戶訪問(包含登錄功能)。這裏我們需要設置訪問權限,web.config中添加如下XML節點:

  <location path="All">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>


 

這裏表示All文件夾下的所有文件可被任何用戶訪問(包括匿名用戶)。接着你的工作是將你的應用程序發佈到IIS(也可以不發佈,但是指定好程序的端口),這一步很重要,因爲ACS需要通過你的IP和端口來確定目標應用程序。然後你需要進入ACS的Portal設置好Identity provider,這裏我建立一個普通的STS site (預先安裝WIF),ASP.NET Security Token Service Web Site, 這是一個基於WIF的自定義方式,你可以在這個site上面寫你的驗證邏輯(自定義)。

在你的ACS Portal上面建立這些identity provider (這裏寫的很詳細,如何配置及每個字段的意思。例如RealM就是你的程序地址:http://localhost:7777/Content.aspx),還有Token時長等一些設置,好了之後關聯這個providers到你的應用程序,這裏我們用了3個。Google,Windows Live和剛剛創建的WIF驗證。

參閱:http://msdn.microsoft.com/en-us/wazplatformtrainingcourse_introtoacs2_topic2#_Toc309123875

配置好之後,請右鍵點擊你的應用程序並且點擊“Add STS Reference”添加ACS作爲你的程序使用的STS,Application URI是你的應用程序地址,下一步選中“Use Existing STS”,並且從Azure Portal上複製下來你的ACS地址:

例如https://xxx.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml

後面繼續點擊Next即可。

 

發佈了27 篇原創文章 · 獲贊 283 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章