2012-05-31 279 views
2

當前有一個ASP.NET Web應用程序,我打算將其轉換爲Azure。每個客戶一個應用程序,一個SQL數據庫和會員服務用於身份驗證和授權。爲用戶管理員和用戶可以管理自己的用戶ID和密碼的頁面擔任角色。Azure身份驗證

在升級到Azure時,我計劃提供Web客戶端和WPF客戶端。 WPF客戶端將通過WCF連接到Web服務。

什麼是適當的安全模型?

不確定ACS是否是正確的工具。應用程序必須直接提供用戶ID和密碼認證以及角色並管理該數據。客戶管理員角色必須能夠重置密碼,以便外部身份提供者不適合。在ASP.NET級別,會員服務正在做我所需要的。我想通過WCF將該模型擴展到WPF客戶端。

客戶端非常非常健談。今天就有一個WPF客戶端版本,可以直接連接到SQL,用於有限數量的「可信」高容量客戶。需要擺脫這種模式併成爲高容量的服務模式。

着如何具有跨越ASP.NET和WPF/WCF一個共同的身份驗證和授權掙扎。我認爲WPF到WCF的通道級別認證是正確的方式,所以我不認證每個方法調用。

看起來WCF Authentication Service是做什麼我要尋找的工具。我沒有在Azure中找到具體的例子。我懷疑這個功能在Azure中,但可能有些細微的不同。 Deploy希望這說 - 它部署在Azure上。

在我開始嘗試之前,您可以免費試用。需要許可評估新技術。我可能要做的是在家開放Azure試用版。

我要嘗試的是使用TableStorage作爲提供的Azure成員資格。然後使用WCF Web服務和WS和userName憑據。將回報。

+0

你是什麼意思「的意思是該應用程序必須直接提供角色的用戶名和密碼認證?」你的意思是說,這是ACS的一項要求,你認爲它是不可接受的,或者你的意思是你希望你的客戶端應用程序直接處理用戶名和密碼以及角色? – dthorpe

+0

沒有ACS的要求。這是我的應用程序的要求。想知道我是否應該使用ACS,我認爲我學習的不是。 – Paparazzi

+0

執行密碼重置並不一定意味着您必須擁有密碼數據庫。這隻意味着你需要在你的應用和你的身份提供商之間建立良好的聯盟。 – dthorpe

回答

2

關於WPF,您只需選擇使用Web Interface,因爲Azure不支持WPF。有關這方面的更多信息,請參閱here

你的web應用程序將完全ASP.NET(MVC,如果你決定選擇),所以任何安全模型,你會選擇將在Windows Azure上運行。 Windows Azure不會強制或強制任何人選擇ASP.NET安全模式。作爲應用程序開發人員,您做出此決定。

ACS只是一個服務,利用它提供的應用程序訪問和身份驗證服務,所以它並沒有內置的供應商,即使是這樣,怎麼會是不同的,那麼任何基於OpenID身份驗證服務?

您確定可以使用會員供應商或根據您的選擇建立您自己的供應商。

取決於你正在談論什麼樣的證書在這裏,也有在需要以各種理由證書幾個地方。在某些地方,這不是一個「選項」,它是一種「必要性」,因此除非您具體說明您的意思是什麼類型的證書,否則無法共享。

關於你的問題的最後一行,你肯定可以使用PKI或證書爲基礎的方法不過正如我前面說上不支持Azure的WPF等都可能是斷章取義的保護基於WCF溝通。是的,您確定可以使用成員資格提供程序來保護WCF和ASP.NET應用程序之間的通信。

最後我不知道如果我理解你的設計中線路1描述你也問了很多的一個問題:)

+0

在界面上,我的意思是用戶界面。 WPF將通過WCF與Azure進行通信。知道ACS沒有內部的Indentity提供者將幫助我關注這個問題。謝謝 – Paparazzi

+0

這個WPF應用程序將運行在哪裏?內部部署? – AvkashChauhan

+0

WPF客戶端將在內部用於我們的數據管理員。它將被我們的客戶在WWW上使用。我們客戶的客戶通常使用ASP.NET用戶界面,因爲他們只是在使用數據。但是我希望WCF服務和ASP.NET應用程序共享一個通用的身份驗證和角色。 – Paparazzi