2012-12-06 148 views
6

我正在研究OAuth 2.0協議。適用於桌面和移動應用程序的OAuth 2.0

我遇到了無法在Web服務器上運行的桌面/移動應用程序生成持票人令牌的問題。

對於web應用程序來說,我很清楚OAuth 2.0協議流程。假設myapp.com想要代表用戶Alice訪問protectedresource.com,那麼Alice將被重定向到https://protectedresource.com/oauth?redirect_uri=https://myapp.com/oauth&[...],以便資源管理器在獲得同意後將Alice的瀏覽器重定向到將收集授權碼並使用它獲取不記名令牌的頁面。

這工作正常和安全,因爲protectedresource.com識別myapp.com域和釋放承載令牌只從myapp.com

未來如果我運行一個桌面應用程序的請求,即使有支持的瀏覽器(即嵌入HTML瀏覽器在Windows窗體或類似的東西)我應該在哪裏重定向艾麗斯同意後?

誰收集授權碼?控制流程如何改變?

有沒有人有在桌面或Android上運行的OAuth 2.0實現的例子?

回答

5

您可以使用的OAuth wiki lists numerous options,所有這些都有缺點。 最簡單的方法是運行一個可以向用戶顯示令牌的Web應用程序,然後用戶將令牌(也可能是刷新令牌)複製到您的桌面應用程序中。

如果您有足夠的時間,那麼您可以調查在桌面操作系統中註冊自定義URI,然後將其用作redirect_uri以自動從瀏覽器傳回您的應用。這具有最佳的用戶體驗。

在這些情況下,惡意應用程序可以輕鬆假裝爲您的桌面應用程序,並且安全性依賴於您的用戶不安裝惡意應用程序。

相關問題