2011-05-20 107 views
5

我想使用OpenID來驗證我的webapp上的用戶 - 類似於如何StackExchange它。我還想讓我的網站用戶使用我的桌面和移動應用程序使用相同的帳戶。我讀過這個需要OAuth(OpenID純粹是網站)。OpenID + OAuth的Web應用程序和桌面/移動應用程序身份驗證和授權

我不知道什麼是

  • 這是正確的做法?
  • 這將是什麼工作流程?
  • 我需要什麼數據在我的數據庫每個用戶/ OpenID?我是否存儲「帳戶」,然後在他們使用OpenID進行身份驗證時,我允許他們爲移動應用生成OAuth令牌?

在一個理想的世界,我就可以有類似那些在https://stackoverflow.com/users/login爲我的兩個Web應用程序,並在我的桌面和移動應用這將僅僅允許用戶與他們的谷歌或Facebook賬戶登錄,是按鈕那可能嗎?對用戶來說簡單是至關重要的,因爲我的用戶羣不會很好地處理任何複雜的事情。

我可以使用類似DotNetOpenAuth的東西來提供所有這些功能嗎?

更好的解決方案是打破這種情況,並允許用戶使用OpenID對我的網站進行身份驗證,然後爲我的桌面和移動客戶端提供我自己的OAuth計劃?

回答

0

這是我想出了工作流程,而且至今我認爲它運作良好。

用戶需要通過第三方OpenID/Facebook /等(移動友好網站可用)對網站進行身份驗證。然後,在他們的「個人資料」中,他們可以生成一個API「密鑰」,他們可以將其複製/粘貼到他們的客戶端軟件中。它對用戶來說不是100%透明,但非常好。

+0

您是否使用過OAuth或自定義代碼解決方案? – mcaaltuntas 2011-06-28 06:51:19

+0

是的,Facebook OAuth。 – Nate 2011-06-28 14:57:07

1

也許最簡單的機制是嵌入一個web視圖,只是注意導航到一個特定的回調頁面,並以這種方式獲取認證數據。你應該仍然可以使用OpenID。

+0

輝煌!如果您嵌入webview,則可以從您的網站獲取oauth標記並使用該標記完成身份驗證。如果你有一個工作的例子,我已經爲這個問題發佈了獎勵(50分)。 http://stackoverflow.com/questions/11741575/android-app-webserver-api-using-federated-login-or-openid-without-gae/11822030#11822030 – 2012-08-06 23:42:37

0

您應該看到的是Windows Identity Framework(WIF),它對於使用基於聲明的標識的Web或桌面應用程序的工作方式類似。您可以爲每個用戶存儲一個授權令牌(以及您需要的任何其他信息),並且您可以將其獲取到經過驗證的HTTP請求的授權標頭中。 oAuth是用於傳遞授權請求和響應的協議。 WIF是一個用於簡化這種交互的.NET工具包。

欲瞭解更多信息,請查看WIF主頁和下面的博客(不是我):

http://msdn.microsoft.com/en-us/security/aa570351

http://blogs.msdn.com/b/vbertocci/

+0

我完全失去了那些網頁:-)你確定它是值得的我找不到任何人使用WIF以OpenID方式驗證用戶的任何參考。 – Cilvic 2011-09-11 00:48:21

相關問題