2011-09-30 26 views
1

我正在構建一個將REST API(WCF WebAPI)向全球公開的社交網站,以便任何開發者都能夠爲該網站創建客戶端應用程序,將其與其他服務集成在一起等。使用Azure ACS和OAuth 2.0的Facebook式API訪問方案:如何實施應用程序授權?

我想實現API的Facebook/Twitter式訪問控制機制。因此,開發人員將在網站的開發人員部分註冊他們的應用程序,創建一個密鑰並在OAuth工作流程中使用該應用程序密鑰來訪問該API。

由於我在此項目中使用Azure,因此我考慮利用Azure ACS來促進OAuth進程。但是,我無法找到與ACS進行應用程序授權的任何代碼示例或手冊。

有人可以分享這樣的例子,或至少給我自己的研究方向嗎?如果我可以通過其他OAuth庫(例如DotNetOpenAuth)實現Facebook/Twitter行爲,那也會很酷。

預先感謝您。

回答

1

ACS是這類事情的好選擇。您的場景幾乎是ACS支持的OAuth委派。

你應該看看ACS與OAuth的2代表團樣本:

https://connect.microsoft.com/site1168/Downloads(這就是所謂的Wif的Oauth CTP版)

請注意,此示例中的自定義身份驗證用於autheticating用戶。由於ACS使用Idps提供單點登錄,因此您可以在此使用ACS(例如,使用Facebook)。

如果你走這條路,你可以找到關於如何在下面的示例中使用自定義主頁領域發現頁的詳細信息:

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

最後,你會neeed有一個網頁,您的客戶端應用程序將管理其設置。爲此,您將被要求使用ACS管理服務。你可以找到關於使用ACS管理服務的詳細信息:

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

+0

謝謝您的答覆。我已經審查了你指示給我的樣本。這有點相關,但無論如何它沒有什麼幫助。它包含了太多的編程代碼,特別是在WebClient部分,所以我想知道爲什麼我需要ACS(付費服務!)和WIF一起完成OAuth。它並沒有讓事情變得更簡單。 我真正需要的是簡單的基於URL的工作流程解釋在這個頁面http://developers.facebook.com/docs/reference/dialogs/oauth/我可以用ACS實現類似的方法嗎? –

+0

Alex您應該更專注於Authorization Server代碼而不是Web Client。 你的問題的答案是肯定的。但它不會只是在ACS門戶中進行一些設置。您需要編寫一半的OAuth授權服務器,並且您需要爲客戶編寫帳戶管理Web前端。 – Atacan

+0

是的,我明白我需要編寫一些代碼。我非常關心Web客戶端代碼的原因是我的目標是讓API訪問像在Facebook中一樣簡單:我只是將用戶重定向到Facebook上的用戶登錄和授權應用程序的頁面。當他/她完成時,我只收到令牌。沒有額外的往返服務器的授權碼。客戶端大小沒有複雜的邏輯。只需一個GET請求 - 我有令牌。我瀏覽了幾個ACS代碼示例,文檔和實驗,沒有人幫我弄清楚如何實現這樣一個簡單的場景。 –

相關問題