2010-12-15 78 views
1

因此,在過去的幾天裏,我一直在抨擊我的頭,試圖瞭解WCF的安全體系結構如何工作。我腦海中有一個目標,我不確定我會朝着正確的方向前進。需要幫助瞭解WCF安全體系結構

的系統

我們使用Active Directory和數據庫的組合來管理我們的認證和授權。客戶端應用程序通常使用他們的Windows憑據進行身份驗證,並且應用程序會根據數據庫表進行檢查,以查看是否允許這些用戶進行身份驗證,以及他們是否有權使用他們請求的資源。當前的設置讓每個客戶端直接與數據庫進行通信來完成這些檢查。

我們想用一個安全令牌服務驗證客戶端,並提供頂級資源「高層」授權的目標。如果提供的SecurityToken有效,則提供數據或執行操作的服務將運行。此外,令牌(如果它不包含特定權限)將查詢令牌服務,以查看用戶是否擁有最初創建令牌時未加載的權限。 (我們已經在我們的數據庫超過300個權利,這可能會導致相當沉重的令牌與許多權限的用戶)

我不明白

1)我明白令牌創建過程,但我對客戶如何獲取,存儲並將令牌發送給它打算使用的服務有點遺憾。每個「工人」服務是否都需要一個唯一的標記(即對CalculatorService的調用需要一個版本的標記,並且SaveResultService需要生成一個新的標記?)我可以手動請求,保存和發送標記嗎?

2)在「worker」服務端,令牌被驗證的過程是什麼?我的「員工」服務是否必須聯繫令牌服務以驗證令牌?還是它只是讀取令牌並假設它是否正確簽名,令牌是否真實並從該角度進行操作?

3)是否可以手動加密我的令牌並將它們存儲在客戶端以供其在有效期間使用(從而避免每次服務調用時都會進行認證嘗試),以便Web客戶端可以在頁面加載之間保存令牌並在連續呼叫中重複使用它?

感謝您與我缺乏瞭解

回答

2

你應該去通過樣本Windows標識基礎幫助 - 它提供包,您可以使用或查詢權威性和AuthZ的索賠所需的類和實現。

http://msdn.microsoft.com/en-us/library/ee517291.aspx

你所尋找的是一個持久的令牌緩存。 - 令牌有生命週期並且通常需要續約,WIF在大多數情況下都會進行更新。

您可以手動請求並附加令牌,並使用WIF來共享代理。