首先明確我們要實現的目標
:乙個雲端的使用者系統,這個雲平台上所有的第三方應用均借助這個使用者系統進行登入鑑權。
實現場景
:使用者在其中乙個第三方應用上授權登入完畢,那麼其他的第三方應用識別這個使用者已經登入,然後所有的第三方應用都可以呼叫
api來操作與這個使用者有關的受保護資源。
使用者在一台物理電腦上授權,在另外一台物理電腦上無法認為這個使用者已經登入。同台電腦換個瀏覽器也不能登入。
每個第三方應用都要有的資訊: 1
、客戶端
id(可公開) 2
、客戶端
secret_key
(不可公開) 3
、回跳url
(否則服務端會被作為免費公開的跳轉節點)
客戶端根據【客戶端
id和使用者的授權(使用者名稱密碼)】來獲取授權碼,這個授權碼有效期一般乙個小時,只能用一次。
客戶端用【客戶端
secret key
和授權碼】獲取
access_token
(說明:
方式帶著
secret key
請求),獲得的
access_token
不被別人盜取最好,即使被盜取了也沒事。用【
secert key+
呼叫api
時候的引數,字典排序後,做
md5(服務端有你的
secret key
,驗證計算量很小)】直接就可以用
進行呼叫,不需要
我們的實現:拿到
acces_token
是通過伺服器寫
cookie
的方式,這樣就不用多一步授權碼的過程。因為我們的目標是單點登入多點共用!
乙個問題,黑客得到乙個使用者的
access_token
,然後用其他電腦登入盜取資訊!
解決辦法:
secret key
加密api
單點登出在我們這個系統下,可以直接告訴伺服器把那個
access_token
當下失效(刪除)就可以。
什麼是OAuth授權?
一 什麼是oauth協議 oauth 開放授權 是乙個開放標準。允許第三方 在使用者授權的前提下訪問在使用者在服務商那裡儲存的各種資訊。而這種授權無需將使用者提供使用者名稱和密碼提供給該第三方 oauth允許使用者提供乙個令牌給第三方 乙個令牌對應乙個特定的第三方 同時該令牌只能在特定的時間內訪問特...
OAuth 2 0 認證的安全問題
參考文章 1 client指第三方應用 2 resource owner指使用者 3 authorization server是我們的授權伺服器 4 resource server是api伺服器 認證流程 整個過程分為 a f 六個步驟 a client向resource owner發出認證請求。b...
web安全學習筆記之 oauth簡介
oauth解決的問題場景例如 使用者要在把msn的好友匯入到人人網。如果人人網做這個功能需要收集使用者在msn的使用者名稱和密碼。這裡就存在乙個不安全的行為。oauth存在3個角色 1 消費方 2 服務提供方 3 使用者 client server resource owner 上面的例子中 人人網...