OAuth與SSO、REST有哪些區別與聯繫

    談到OAuth,不少人天然而然的就會想起SSO,還有些人會想起REST。其實,OAuth與SSO和REST並無太深的關係,它們分別有其不一樣的適用場景。接下來,咱們就看看它們之間的區別與聯繫是什麼?安全


    OAuth與SSO的區別?ide


    OAuth是一種受權協議,只是爲用戶資源的受權提供了一個安全的、開放而又簡易的標準。OAuth 2.0爲客戶端開發者開發Web應用,桌面端應用程序,移動應用及客廳設備提供特定的受權流程。網站


    SSO是在多個應用系統中,用戶只須要登陸一次就能夠訪問全部相互信任的應用系統。資源


    通俗的講,OAuth是爲解決不一樣公司的不一樣產品實現登錄的一種簡便受權方案,一般這些受權服務都是由大客戶網站提供的,如QQ,新浪微博,人人網等。而使用這些服務的客戶多是大客戶網站,也多是小客戶網站。使用OAuth受權的好處是,在爲用戶提供某些服務時,可減小或避免因用戶懶於註冊而致使的用戶流失問題。開發


    SSO一般處理的是一個公司的不一樣應用間的訪問登錄問題。如企業應用有不少業務子系統,只需登錄一個系統,就能夠實現不一樣子系統間的跳轉,而避免了登錄操做。產品


    OAuth與SSO的應用場景不一樣,雖然可使用OAuth實現SSO,但並不建議這麼作。不過,若是SSO和OAuth結合起來的話,理論上是能夠打通各個公司的各個不一樣應用間的登錄問題,但現實每每是殘酷的。it


    OAuth與REST的關係?微博


    談到REST的安全性問題時,不少人容易聯想到使用OAuth來解決這個難題。其實,REST與OAuth有着天壤之別。class


    OAuth爲網站(系統)用戶受權第三方應用(網站、系統)訪問本身在網站(系統)中的隱私數據提供的一種規範。登錄

    REST初期理念是「每一個不一樣的子資源都有一個絕對惟一且不重複的URI地址」。它僅僅是一個URI資源而已,並且是無狀態的,所以REST並不適合作須要受權的應用。偏偏相反的是,在使用OAuth受權時,一般會使用REST API來完成受權操做。