2012-09-19 74 views
6

我正在使用SSL將Windows 8保護到Windows Azure託管的WCF服務連接。我有興趣驗證用戶使用我的Windows 8應用程序,而不僅僅是使用Fiddler的一些「黑客」。在Windows 8上使用Microsoft帳戶的Azure ACS 2.0

我顯然不能在c#代碼中存儲用戶名和密碼,並且在這種情況下,我真的很想避免每次使用應用程序時都要求用戶輸入用戶名和密碼(或者對於這個問題) 。

我已經看過Azure ACS,但它看起來像只用於單一登錄,並且用戶每次都必須輸入用戶名和密碼。

反正有:

  • 使用默認的Microsoft帳戶(大多數用戶會進入時,他們開始安裝Windows 8)與ACS?
  • 加密並存儲用戶的登錄詳細信息,以防止用戶每次都輸入登錄詳細信息?

謝謝!

+1

由於您的應用程序在Windows 8上,並且您希望使用Microsoft帳戶,您是否考慮過直接使用Live SDK? Michael Crump在http://www.silverlightshow.net/items/Using-the-Live-SDK-in-Windows-8-XAML-C-Metro-Applications.aspx上有關於將Live SDK與WinRT應用程序集成的文章 –

回答

2

關於您的需求「我很想驗證用戶是否在使用我的Windows 8應用程序,而不僅僅是使用Fiddler的一些'黑客'。」,我不確定您會如何保護您的應用程序想要嘗試以不同的方式使用應用程序,該方法會找到自己的方式,如果您認爲使用ACS或LiveSDK可以增加任何安全性,我不這麼認爲。

ACS或LiveSDK服務是驗證特定用戶的方法,然後允許他們使用您的應用程序。一旦將認證令牌提供給您的應用程序有關特定用戶,並且您無法保存並再次驗證該信息,則在您的應用程序中使用基於ACS/LiveSDK的身份驗證或不擁有它們之間沒有區別。這些基於oAuth的服務只是對用戶進行身份驗證的一種方式,您仍然需要編寫額外的代碼層來提供用戶特定的服務。

如果您使用ACS/oAuth /或您自己的會員服務,則無關緊要,用戶必須輸入用戶名和密碼才能獲得經過身份驗證的時間。根據登錄時間和類型,您可以將用戶活動時間保持x秒,但會話將過期,用戶必須輸入用戶名和密碼。本地存儲用戶名和密碼以避免再次輸入憑據不是一個好的應用程序設計。

現在關於您的第一個問題,您應該使用LiveSDK(而不是Azure ACS)來驗證Live(Hotmail,Live,Skydrive和Outlook域)用戶,因爲在Windows 8中,大多數服務都使用這些ID,這些將幫助您的應用程序成爲同一生態系統的一部分。您可以使用this latest doc在您的應用程序中使用Live SDK。如果您將在Windows 8應用程序中使用Live SDK,並且用戶在Windows 8上爲其他應用程序使用相同的實時ID並在應用程序之前登錄,則應用程序已經擁有實時會話以使用它,具體取決於Live ID和應用程序設置。

關於第二個問題「加密並存儲用戶的登錄詳細信息以防止用戶每次都輸入登錄詳細信息?」我不確定你爲什麼需要它。首先沒有oAuth服務會爲您提供除用戶名以外的用戶登錄憑證,只有您可以保存才能驗證用戶,如果他再次訪問並且您可以使用它來確保它是合適的用戶。您必須將此信息存儲到雲中,然後一旦通過身份驗證,就可以做任何你想做的事情。

+0

所以基本上,我無法驗證有人使用我的應用程序,因爲在一天結束時,我的XAP軟件包可供任何需要它的人訪問。 Windows Phone和Windows 8應用程序包現在已加密,但看起來好像人們已經入侵它。 http://forum.mobilism.org/viewtopic.php?f=1073&t=386304。有沒有辦法驗證有人使用我的未修改的應用程序? – user1567095

+1

不幸的是,這不是一個討論此類場景的論壇。正如我所提到的,事實是,如果有人(1%或更少)想以其他方式使用您的應用程序,他們會找到一種方法,因此您需要決定您需要花費多少能源/資源。 – AvkashChauhan

+0

謝謝!我會看看我能做些什麼。你知道我可以討論這個的任何地方嗎? – user1567095

2

查看Windows 8現代風格應用程序的憑證存儲示例 - http://code.msdn.microsoft.com/windowsapps/PasswordVault-f01be74a。這不是Azure ACS - 但它應該有希望幫助你解決你的問題。 PasswordVault是一個新的API(Windows.Security.Credentials.PasswordVault),它基於我們在.NET 3中引入的識別功能。它允許您在操作系統,受保護的存儲區中安全地存儲遠程應用程序憑證,並在其中動態訪問你的申請。用戶仍可完全控制商店,並可根據需要使用控制面板刪除數據。 目前,這是大多數現代應用程序持久化數據的方式,例如用於遠程服務調用(如Twitter)的OAuth令牌。

這隻適用於第三方身份。如果您想要使用Microsoft帳戶,請按照上面的指導進行操作,並查看LiveSDK。

相關問題