我在http://oauth.net/閱讀一些關於它,它顯然是「發佈,並與受保護的數據進行交互的簡單方法」。任何人都可以解釋OAuth嗎?
我認爲這正是我需要提供通過REST Web服務從Android/iPhone應用程序訪問數據的安全方式,但我不能工作了它到底是什麼。
所以,簡單地說,究竟它有什麼作用以及是否有任何(真的)簡單的它在行動,我可以遵循,最好實現在C#中的東西,可以從智能手機的應用程序進行訪問的例子嗎?
我在http://oauth.net/閱讀一些關於它,它顯然是「發佈,並與受保護的數據進行交互的簡單方法」。任何人都可以解釋OAuth嗎?
我認爲這正是我需要提供通過REST Web服務從Android/iPhone應用程序訪問數據的安全方式,但我不能工作了它到底是什麼。
所以,簡單地說,究竟它有什麼作用以及是否有任何(真的)簡單的它在行動,我可以遵循,最好實現在C#中的東西,可以從智能手機的應用程序進行訪問的例子嗎?
由克雷格斯頓茨提供的鏈接:
開放ID爲您提供多個網站一個登錄。每次您需要登錄到Zooomr(一個使用Open ID的站點)時,您都將被重定向到您登錄的Open ID站點,然後返回到Zooomr。 OAuth允許您授權一個網站 - 消費者 - 從另一個網站 - 提供商訪問您的數據。例如,您想授權一家印刷提供商(稱爲Moo)從照片存儲庫中獲取照片 - 將其稱爲Flickr。 Moo會將你重定向到Flickr,它會問你,例如,「Moo想要下載你的Flickr照片。這很酷嗎?「,然後回到Moo打印你的照片。
DotNetOpenAuth是一個很好的開放標識和OAuth C#庫。
OAuth是針對應用程序保持登錄數據,而不必存儲在所有的真實數據的另一種方式。
當您登錄到某些頁面中,你通常有一個用戶名和個人密碼,或任何其他種類的登錄憑證。現在,如果您希望應用程序能夠通過該登錄名執行操作,則需要爲該應用程序提供原始登錄數據。這意味着您將用戶名和密碼輸入到應用程序中。這到目前爲止並不糟糕,但問題是,如果您想通過該應用程序保持登錄狀態,則需要存儲您的憑證。但爲了能夠將正確的登錄數據發送到實際頁面,它需要以原始形式存儲這些數據(只需使用一些加密或其他)。因此,如果有人知道數據如何存儲在應用程序中,他們可以提取您的原始登錄憑據。
這是一個安全問題,正是OAuth的用武之地。通過OAuth,每一個應用程序被消費者密鑰和消費者祕密標識。兩者對於客戶來說都是獨一無二的,通常沒有用戶會看到這些(尤其不是祕密)。現在,當您希望允許應用程序訪問該頁面時,您將啓動OAuth授權過程。您只需登錄該頁面,並明確允許特殊應用程序(由消費者密鑰標識)有權訪問。如果你這樣做,應用程序將收到另一個密鑰對,訪問令牌和訪問密鑰。該密鑰對僅適用於您的帳戶,並且只適用於確切應用程序(由消費者密鑰標識,並由消費者密鑰確保爲原始應用程序)使用。現在,所有應用程序需要存儲的都是該訪問密鑰對(與已存儲的使用者密鑰對一起),並且無需查看原始登錄數據即可訪問該頁面。
這樣,沒有人能夠獲得您的實際登錄詳細信息,而其他任何人(或其他應用程序)都無法使用生成的訪問憑據訪問該頁面。如果您不希望應用程序仍然可以訪問,則可以輕鬆地撤消訪問密鑰對,以便應用程序不再能夠使用它。
因此,OAuth只是一種保護您的真實登錄數據的方法。除此之外,它不會添加任何其他級別的安全措施或其他內容,只是爲了保護您的數據。
這是OAuth的精彩解說。我發現像我這樣的傻瓜的另一個好解釋是在https://blog.varonis.com/introduction-to-oauth/ – snark 2016-04-29 10:24:31
這就像OpenID,除了不同。這篇文章解釋得很好:http://softwareasas.com/oauth-openid-youre-barking-up-the-wrong-tree-if-you-think-theyre-the-same-thing – 2010-08-18 17:03:59
如果通話OAuth「簡單「他們應該嘗試HTTP基本認證。 – 2011-07-06 13:24:22